MySQL中的拉丁1_瑞典_ci编码

MySQL中的拉丁1_瑞典_ci编码,mysql,utf-8,character-encoding,Mysql,Utf 8,Character Encoding,我正在我的网站上使用UTF-8编码。最近,我一直在我的MySQL表中存储中文/西班牙文/俄文名称,然后用PHP在UTF-8字符集生成的页面上打印它们。这一页很好,我能正确地看到所有的字母。然而,我刚刚意识到我的表是用latin1\u swedish\u cicharset设置的。即使我用latin1\u swedish\u cicharset存储了这些名称,但在我的站点上使用UTF-8提供这些名称时,它们仍能正确显示,这怎么可能呢 谢谢 Joel因为mysql连接仍在使用latin1, 您应该在

我正在我的网站上使用
UTF-8
编码。最近,我一直在我的MySQL表中存储中文/西班牙文/俄文名称,然后用PHP在UTF-8字符集生成的页面上打印它们。这一页很好,我能正确地看到所有的字母。然而,我刚刚意识到我的表是用
latin1\u swedish\u ci
charset设置的。即使我用
latin1\u swedish\u ci
charset存储了这些名称,但在我的站点上使用UTF-8提供这些名称时,它们仍能正确显示,这怎么可能呢

谢谢


Joel

因为mysql连接仍在使用
latin1

您应该在UTF-8中处理这些数据,但将其存储在latin1环境中

因此,为了证明这一点

show variables like '%char%';
以上应返回大部分设置为拉丁文1

申请


你会看到所有的UTF-8都被双重编码(乱码)

你会对线程感兴趣:

他们在那里处理修复你做过的同样事情的方法

请注意,在主键中使用时,utf8中编码的varchar的大小计数为三倍,因此单个主键列的最大长度为varchar(333)

set names utf8;