Php utf8不适用于mysql
当我回显阿拉伯字符时,它们看起来很好,但如果我从数据库回显它们,它们会显示为问号。以下是我迄今为止所做的工作,但它仍然不起作用: 字符集设置现在是:Php utf8不适用于mysql,php,mysql,unicode,utf-8,Php,Mysql,Unicode,Utf 8,当我回显阿拉伯字符时,它们看起来很好,但如果我从数据库回显它们,它们会显示为问号。以下是我迄今为止所做的工作,但它仍然不起作用: 字符集设置现在是: | Variable_name | Value | | character_set_client | utf8 | | character_set_connection | utf8 | |
| Variable_name | Value |
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
| Variable_name | Value |
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
现在的排序规则设置为:
| Variable_name | Value |
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
| Variable_name | Value |
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
在我使用的PHP代码中:
header('Content-Type: text/html; charset=utf-8');
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
mysql_query("set character_set_server='utf-8'");
mysql_query("set_names 'utf8'");
更多信息:
我从数据库中回显它们,它们显示为问号
你怎么回应他们?你要回显的对象的编码是什么?如果您要回显HTML,请确保HTML页面以UTF8格式解释。可能重复我不知道您做了什么,但您没有运行集合名称UTF8;运行set_names'utf8'时请注意下划线。请注意,MySQL与其他所有人的语言不同。当MySQL说utf8时,它真的意味着UTF-8的一些奇怪的延迟变体,它被限制在三个字节之内,天知道是什么可笑的原因。如果你真的想要UTF-8,你应该告诉MySQL你想要这个MySQL喜欢称之为的奇怪的东西。@R.MartinhoFernandes哈哈哈,真是个好笑话。那个真有趣。你为什么那样看着我?哦那是。。。不是开玩笑吧?哦…@R.MartinhoFernandes当然是个笑话。当我提到MySQL时,我认为这是显而易见的。谢谢你的回复!是的,我只是在HTML标记中回显它们。类似于echo“”的东西$行['title']。' /;该行不应该将其编码为utf8:header'Content-Type:text/html;字符集=utf-8';如果不是,我如何确保HTML被解释为UTF-8?同样在同一页中,我直接回显阿拉伯字符,它们看起来很好。您也可以添加,但我认为浏览器应该尊重内容类型字符集标题。您可以检查浏览器已应用的编码。对于Chrome,它的选项>工具>Encoding@MohamedGamalAbdalkaderheader/meta字符集不编码任何内容,它会宣布您正在使用的编码。因此,如果您宣布UTF-8,并看到问号,您的数据没有编码为UTF-8。我将数据库和代码转移到另一台服务器,一切正常!我猜mysql安装有问题!无论如何谢谢你的帮助!