我有以下数据:Trollhättan
如果我打印出来并将标题设置为
utf-8
,那么这就是浏览器中的输出。如果我没有
utf-8
在标题中设置,Trollhättan
. 但是,当我将数据存储在数据库中并进行检查时phpmyadmin
,我得到以下字符串:Trollhättan。当我将标头设置为 时
utf-8
,我得到了这个字符串:Trollhättan
在这个旁边Trollhättan
。
既然是表latin1_swedish_ci
,我一定要在表中使用UTF-8
吗?
您需要确保当您“将数据存储在数据库中”时,您使用的客户端使用的是utf8。然后将 http 标头设置为 utf8 完成往返。
令人惊讶的是,数据库中使用什么字符集并不重要(尽管使用 utf8 可能也很方便)。
这是UTF-8下的排序规则列表
latin1_swedish_ci
属于 latin1与您的归类最接近的 utf8 是 ID 200
警告
您可能需要尝试使用 latin1,更改表中单个列的字符集和排序规则,或者两者都可能。至少,在 phpmyadmin 中使用 latin1 进行显示。
您可以调整并尝试使用ALTER DATABASE使整个数据库成为特定的字符集和排序规则。
确保备份数据库并将其加载到开发/暂存数据库中,然后针对开发/暂存运行 ALTER DATABASE。