因此,我试图将土耳其语字符保存到我的数据库中,该数据库通常在网站上以Juan,Dela Cruz
Maria,Magdalena
Mario,Santos
和UTF-8运行。但是由于该项目来自“土耳其”,我似乎无法成功地将用户在其网站上输入的字符保存到我们的数据库中。
当前保存如下:
KÄá±rÄ ±kkale
ÃÂÃâ¢stanbul
在保存到数据库之前,我用来在php中转换字符的代码是:
Juan,Dela Cruz
,Maria,Magdalena
,Mario,Santos
在网站标题中,我使用:
,
答案 0 :(得分:0)
假设您以虚线大写字母I开始,然后将其Mojibake 3次,则可以得到Ä°stanbul
。
İ --> Ä° --> Ä° -> Ä°
以十六进制表示(对于utf8),即
C4B0 --> C384C2B0 --> C383E2809EC382C2B0 --> C383C692C3A2E282ACC5BEC383E2809AC382C2B0
For example, C4 B0 is the single character `İ` in utf8, but the 2 characters `Ä°` in latin1.
当一只手认为编码是utf8而另一只手认为编码是latin1时,就会发生Mojibake。
对于土耳其语,您需要使用UTF-8(MySQL将其称为utf8或utf8mb4)
CONVERT(BINARY(CONVERT(
CONVERT(BINARY(CONVERT('Ä°' USING latin1)) USING utf8mb4)
USING latin1)) USING utf8mb4)
会将Ä°
改回İ
。第三次迭代将消除您的混乱情况。