这是我到目前为止尝试过的,通过修改 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 配置中的连接参数。当您连接到数据库时,您可以指定连接的编码(以及所有其他位置)。这可能会不同步,从而给您带来问题。
关于php - PHP和MySQL的utf-8编码的字符串问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1370915/