pBlueG / SA-MP-MySQL

MySQL plugin for San Andreas Multiplayer
BSD 3-Clause "New" or "Revised" License
198 stars 79 forks source link

UTF-8 Characters saving as question mark #254

Closed Berke-Alp closed 3 years ago

Berke-Alp commented 3 years ago

Hello I'm using this plugin and trying to save turkish characters to my database but it saves them as question marks (?) I tried setting my field charsets to utf8, utf8mb4, latin1 with different encodings (general_ci, turkish_ci, swedish_ci, unicode_ci) But nothing works. Can you help me please?

My INSERT code:

new query[512];
format(query, sizeof(query), "INSERT INTO characters VALUES(DEFAULT,'%s','%s','%s','%s','%s','%s',%d,%d,%d,DEFAULT,DEFAULT,DEFAULT,%f,%f,%f,%f,DEFAULT,DEFAULT,%d,%d,'%s',DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,%f,%f)",
    PlayerData[playerid][pCitizenID], PlayerData[playerid][pFullname], PlayerData[playerid][pPassword], PlayerData[playerid][pBirthCountry], PlayerData[playerid][pNationality], PlayerData[playerid][pRace], PlayerData[playerid][pSex], PlayerData[playerid][pSkin], PlayerData[playerid][pAge], PlayerData[playerid][pCordX], PlayerData[playerid][pCordY],
    PlayerData[playerid][pCordZ], PlayerData[playerid][pFacingAngle], PlayerData[playerid][pRegisterDate], PlayerData[playerid][pLastLogin], PlayerData[playerid][pLastIPAddress], PlayerData[playerid][pHealth], PlayerData[playerid][pArmor]);
    mysql_query(con, query, false);

(I also tried the function mysql_set_charset("utf8", con) [and utf8mb4])

The output:

Berke-Alp commented 3 years ago

I solved this issue with setting my database names to latin5, setting collation to latin5_bin and after connecting to database I used this function:

mysql_set_charset("latin5", con);