繁体   English   中英

PHP和MySQL的utf-8编码的字符串问题?

[英]string issue of utf-8 encoding with PHP and MySQL?

到目前为止,这是我通过修改php.ini进行的尝试:default_charset =“ utf-8”

这是配置MySQL的方式:

mysql> show variables like '%char%';
+--------------------------+-----------------------------------------------+
| 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       | f:\wamp\bin\mysql\mysql5.0.45\share\charsets\ |
+--------------------------+-----------------------------------------------+
8 rows in set (0.00 sec)

但这是行不通的。

我已经转储了数据,在PHP处理之前和之后它都是utf-8格式。

但是在通过PHP插入MySQL之后,

它变得一团糟(通过phpmyadmin),

插入数据库后,数据变为如下所示:

江è‹çœæ±Ÿé〜´å¸,山观镇西è‹'æ–°æ'

更糟糕的是,从MySQL读取并显示在页面上之后,数据又恢复了正常!

有人可以指出这里的真正问题是什么?

代码都是这样的:

$dml = "insert into profiles(accountId,name,thumbnail,sex,homeAddr,livingAddr,peoples,married,politicalStatus,qq,mobilePhone,telephone,homePage) 
            value($accountId,'{$_POST['name']}',{$_POST['thumbnail']},{$_POST['sex']},'{$_POST['homeAddr']}','{$_POST['livingAddr']}','{$_POST['peoples']}',{$_POST['married']},'{$_POST['politicalStatus']}',{$_POST['qq']},{$_POST['mobilePhone']},{$_POST['telephone']},{$_POST['homePage']})";
mysql_query($dml,$con);

查看phpMyAdmin中php配置中的连接参数。 连接数据库时,可以指定连接的编码(以及所有其他位置)。 这可能不同步,从而导致您遇到问题。

请更具体地说明您的问题。 张贴导致问题的代码,并说说它“不起作用”的方式。 没有代码,我们将无法解决您的问题。

也就是说,请确保正确设置了phpMyAdmin字符集。 认为您试图说的是phpMyAdmin中的错误,在这种情况下,很可能就是您的问题所在。

编辑:目前尚不清楚“更糟糕的是,从MySQL读取数据并显示在页面上之后,数据再次恢复正常!” 手段。

您对其他答案的评论并不能真正证明任何事情。 仅仅因为它在phpMyAdmin中看起来正确并不意味着它与数据库中的内容一致。 您的php字符集需要匹配您的数据库字符集,需要匹配您的phpMyAdmin字符集。 如果它们中的任何一个是错误的,您都将确切地遇到此问题。 其中之一不匹配!

确保您的HTTP内容类型为utf-8。 这是一个棘手的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM