Descriptive Problem Summary:
It seems like in 513 Byond still works with DB through latin1 charset.
Because of this data saved in DD is not real UTF-8, and Byond can't parse any real UTF-8 from DB (looks like ????).
Numbered Steps to Reproduce Problem:
* Setup MySQL/MariaDB database with charset=utf8mb4 collate=utf8mb4_unicode_ci
* Byond 513 with Dantom.DB for example
* Make from game insert request to DB with some UTF-8 Cyrillic text
* Check table in DB: text not readable
* Byond still can work with it, any requested data will be converted again in UTF-8 in game
* But if you request from game data with real UTF-8, Byond replace all text with ????
Also sorry I'm so late on this "Test 513" train...
ID:2598966
![]() Aug 4 2020, 1:01 am
|
|||||||||||||
| |||||||||||||
![]() Aug 6 2020, 3:01 pm
|
|
Update! I was told that there is seems to be a workaround with "SET NAMES" at the start of the connection. But I don't have time to test it yet.
|
If that doesn't work for you we have a third party dll/so connector we use with ss13
https://github.com/tgstation/rust-g This has a bunch of features, but mainly it has an async http and mariadb clients. You could look at things like https://github.com/tgstation/tgstation/blob/master/code/ controllers/subsystem/dbcore.dm to get an idea of how we use it on the BYOND side via polling call() |