这是我到目前为止尝试的,通过修改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);
答案 0 :(得分:1)
在phpMyAdmin中查看php配置中的连接参数。连接到数据库时,可以指定连接的编码(以及所有其他位置)。这可能是不同步的,导致你出现问题。
答案 1 :(得分:0)
请更具体地说明您的问题。发布导致问题的代码,并说明它“如何工作”。没有代码,我们无法解决您的问题。
那就是说,确保你的phpMyAdmin字符集设置得当。我想你试图说它在phpMyAdmin中看起来不对,在这种情况下,这很可能是你的问题所在。
编辑: 目前还不清楚“更糟糕的是,从MySQL读取并在页面上显示之后,数据再次变得正常!”装置
你对其他答案的评论并没有真正证明什么。仅仅因为它在phpMyAdmin中看起来正确并不意味着它同意数据库中的内容。您的php字符集需要匹配您的数据库字符集需要以匹配您的phpMyAdmin字符集。如果他们中的任何一个都错了,你会得到这个问题。其中一个不匹配!
答案 2 :(得分:0)
确保HTTP内容类型为utf-8。这是一个棘手的问题。