【发布时间】:2017-08-10 17:52:32
【问题描述】:
我正在开发一个多语言网站。我使用数据库和表格来获取不同单词和句子的翻译。
例如,在我的菜单中,我有一个名为“翻译”的元素。因此,当以德语访问该网站时......该元素将被称为“Übersetzungen”
现在问题来了。对于其余的特殊字符,这个问题不会发生。它似乎只发生在像“Ü”这样的大写特殊字符。
在数据库表中,值为“Ãbersetzungen”,在 HTML 中打印应为“Übersetzungen”。
在其他情况下,例如“Länder”(德语中的国家/地区),翻译返回“Länder”。 (包含小写特殊字符)。
在表头中设置了 UT8,数据正确插入到表中,并且在所有包含 UT8 特殊字符的情况下都可以正常工作,除了特殊的大写字符。
我正在使用 WAMP 来构建我的网站,并且 php.ini 默认使用 utf8。
可能是什么问题?
【问题讨论】:
-
有许多元素需要指定到特定的字符集。还有一些特殊的多字节函数,例如
strtoupper()具有用于多字节字符的mb_strtoupper()。 php.net/manual/en/function.mb-strtoupper.php -
我不想将字符串转换为大写。我只是想知道为什么大写字符没有像“Übersetzungen”这个词那样正确显示。在数据库表中,值为“Ãbersetzungen”,在 HTML 中打印应为“Übersetzungen”。对于其余情况,不会发生此问题。
-
哦,那我看错了问题。好吧,无论如何,它是一个编码问题。我之前写过要检查的内容的answer with a little list,它涵盖了大部分 PHP/MySQL 的关于字符集的检查。