Home  >  Article  >  Backend Development  >  php和mysql乱码问题

php和mysql乱码问题

WBOY
WBOYOriginal
2016-06-06 20:36:15883browse

php文件里全部使用了utf-8编码,然后数据库里也改成了utf8编码,在浏览器能文字输出正常,但是数据库里面查看却发现了中文乱码,要怎么解决?

回复内容:

php文件里全部使用了utf-8编码,然后数据库里也改成了utf8编码,在浏览器能文字输出正常,但是数据库里面查看却发现了中文乱码,要怎么解决?

mysql> SHOW VARIABLES LIKE 'character%';
+————————–+—————————-+
| 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/ |
+————————–+—————————-+
如果有不是utf8的更改my.ini 或my.cnf
[client]中添加
default-character-set=utf8

[mysqld]中添加
character-set-server=utf8
init_connect='SET NAMES utf8'

[mysql]中添加
default-character-set=utf8

然后重启mysql

如果需要临时生效, set 字段 = utf8 例如
set character_set_client = utf8

没用过老式的...下面两种你看看

如果用mysqli:

<code>mysqli::set_charset ( "utf8" );

</code>

如果用PDO,(推荐):

<code>$pdo = new PDO("mysql:host=localhost;dbname=test;charset=utf8", 'username', 'password');
</code>

<code>mysql_query("SET NAMES 'UTF8'"); 
</code>

try....

仅仅发现在数据库里面查看却发现了中文乱码,解决的办法有两步。
1、set names utf-8;
然后在select,看看是否已经正常,如果不正常,看第二步。
2、如果你是用secret CRT链接上服务器查看的话,那么设置一下当前配置字符集。【可选】

把mysql数据库的编码和php文件同时设置为相同的编码格式就可以了,一般用utf-8

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn