-
-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Connect to database with collation/character other than UTF8 #46
Comments
There are some short codes sometimes used for emojis |
https://github.com/crystal-lang/crystal-mysql/blob/master/src/mysql/packets.cr#L75 |
When a database is created, the 'Encoding' and 'Collation' are set. The driver should probably detect this and set it to be the same, instead of being hard coded. I'll have a quick look to see how this can be read. |
Something like this give us the correct settings for the database.
We just then need to convert the names to the correct bytes. |
The full list for the connected database can be found with |
It look like this info may already be retrieved during the handshake - https://github.com/crystal-lang/crystal-mysql/blob/master/src/mysql/packets.cr#L20 however I've done some manual testing and the handshake seems to return 33 / utf8_general_ci even if the database is utf8mb4_general_ci. |
BTW: https://medium.com/@adamhooper/in-mysql-never-use-utf8-use-utf8mb4-11761243e434 |
Do we have any updates in this? |
@kazzkiq I don't think this is an issue with this repo, setting the collation is db specific https://stackoverflow.com/questions/38949115/how-to-change-the-connection-collation-of-mysql |
In some cases other collations are needed in order to accept Emojis and/or non-latin characters.
It seems that as of today, this project do not provide a way to connect to MySQL database with any other option than UTF8, which leads to database errors when trying to add those "special" new characters.
With the wide use of smartphones, its basically impossible to build any application that do not support emojis. Its used anywhere, and its popularizing even more each year, so I believe the project should support some way to handle this.
The text was updated successfully, but these errors were encountered: