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;