【发布时间】:2012-01-04 11:45:24
【问题描述】:
嗯... Html 页面和 mysql 表包含西里尔文字。 为了显示我使用的西里尔文字Барысаў2000
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
在网页上。 为了将该单词存储在 MySQL 表中,使用 utf8_unicode_ci 排序规则(我已经阅读了一些主题,据我了解,建议使用 utf8_unicode_ci 存储西里尔符号)。 但是,我使用 phpMyAdmin 实际看到的,文本 Барысаў2000 在数据库中存储为 Áàðûñà¢2000,这就是我希望解决的问题。 (POST方法+转义危险符号用于将用户的文本保存到数据库中)。 但是,当您选择该数据并将其显示在 html 页面上时,它看起来很好:Барысаў2000。
phpMyAdmin 如何为我显示它的问题直到今天才困扰我。今天我已经尝试解决了。
我猜我必须到处使用 utf-8,所以我从
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
到
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
现在我的页面显示问题而不是西里尔符号,并且在我的数据库中显示西里尔文本的问题没有得到解决。 谁能告诉我是什么问题? 附言我可以毫无问题地阅读塞尔维亚语和白俄罗斯语(西里尔语)网站,并且可以在本地主机上输入西里尔语文本。
谢谢。
【问题讨论】:
-
您必须在任何地方使用 utf-8 - db 表排序规则、html 字符集。我通常对表格使用 utf8_general_ci 而不是 utf8_unicode_ci。以防万一您可能指定 mysqli_set_charset($connection, 'utf8');设置连接变量后 - php.net/manual/en/mysqli.set-charset.php。您显然从一开始就错了,并且您的数据库中的数据未正确编码,因此它不会正确显示在页面上。还要确保您的 php 文件保存为 'UTF-8 without BOM'
标签: mysql utf-8 character-encoding internationalization cp1251