我正在尝试学习网站的内部化,所以我篡改了MySQL配置文件、字段排序规则和HTML头字符集类型。我基本上有一个表单,我在文本字段中键入一些unicode字符,将其存储在数据库中,然后将其输出回浏览器。第一个场景: HTML=>utf8 MySQL=>UTF8,工作正常。但是,当我从PhPMyAdmin查看数据库时,字段中有奇怪的字符。第二个场景:我通过选择swedish_ci排序规则将数据库中的VARCHAR值配置为Latin1。超文本标记语言仍然是utf8。我在表单中输入了unicode字符串。但是,浏览器仍然显示我输入的正确字符!
为了让我更难理解,我下载了mysql world数据库,它是世界上所有国家和城市的数据库。这些表是Latin1编码的。当我尝试在utf8 html中显示它们时,它为非英语字符显示奇怪的字符。当我的html字符集是ISO-8591-1时,它工作正常
发布于 2011-01-07 00:05:01
如果您使用的是utf-8,您应该始终使用utf-8作为HTML,在MySQL中使用utf8字符集,并使用utf8_general_ci或utf8_unicode_ci进行MySQL排序。并且你的php文档必须保存为utf-8格式而不带BOM。
https://stackoverflow.com/questions/4620320
复制相似问题