mysql数据库编码问题

WBOY
풀어 주다: 2016-06-23 13:06:04
원래의
932명이 탐색했습니다.

使用的是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 函数来转换编码

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿