Home  >  Article  >  Backend Development  >  mysql数据库编码问题

mysql数据库编码问题

WBOY
WBOYOriginal
2016-06-23 13:06:04934browse

使用的是mysql数据库,数据库中有两种编码,一是gbk_chinese_ci 另一种是utf_8general_ci 我网站是使用gbk的编码,现在我查询数据库用print_r()能看到正常的值,但是当我用json_encode($data)转成json时,就无法正常显示,我想对一个中文字段转码,请问我应该如何操作?
代码如下:

	$sql ="select * from raffle"; 	$result =mysql_query($sql);//执行SQL    $results = array();    while ($row = mysql_fetch_assoc($result)) {        $results[] = $row;    }


回复讨论(解决方案)

php5.4.0以后
json_encode($data, JSON_UNESCAPED_UNICODE);

php5.4.0以后
json_encode($data, JSON_UNESCAPED_UNICODE);


可惜了,我是用的php 5.3 哪以前的版本用什么方式编码呢?

首先 json_encode 只接受utf-8编码的数据。
其次你说的无法正常显示是指什么,截个图看看。

1、json_XXXX 函数只能处理 utf-8 字符集
2、json_encode($data,  JSON_UNESCAPED_UNICODE) 的 JSON_UNESCAPED_UNICODE 参数只是不把中文字符转换成 unicode 编码形式。与你的需求不符,无需惋惜
3、由于输出 json 串的页面不会输出其他内容,所以你只需在连接数据库后执行  set names utf8 指令,就可从数据库中读取 utf-8 字符集的数据,正好被 json_encode 所使用

我用php中iconv 函数来转换编码

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
Previous article:PHP RedisSingletonNext article:PHP api方法总结