Heim >Backend-Entwicklung >PHP-Tutorial > json编码的有关问题

json编码的有关问题

WBOY
WBOYOriginal
2016-06-13 13:09:58758Durchsuche

json编码的问题
现在在做一个接口给别人调用,开发文档说最终返回的数据是json文件格式,并且数据中Json格式对中文的处理必须是utf-8;
数据中不要出现中文和特殊字符,这些需要UTF8编码。
数据是保存在mssql中,在在最终返回的结果用下面的代码能够符合上面的要求吗?

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
header('Content-type: application/json;charset=utf-8');
echo json_encode($data);


还是说涉及到中文的字段都要用iconv函数把数据字段转换编码?

------解决方案--------------------
你加header前提是文件为utf-8无bom头,转不转换,看数据库是如何存的
你先测试操作,乱码了就用iconv转换,iconv也是需要知道原编码的,如数据库为gb2312或gbk等
string iconv ( string $in_charset , string $out_charset , string $str )

------解决方案--------------------
易入难出,这是编程的一贯原则,严格遵守对方的要求输出


------解决方案--------------------
mssql 没有提供动态改变语言集的指令
你需要在连接时提供所需的语言集声明(utf-8)
这样在之后取回的数据就已经是 utf-8 编码的了
当然,这需要在 sql server 2005 及以上才行

------解决方案--------------------
你只要输出你的json然后在前端能够正常的调用这个数据就行了,不行就有中文的地方都iconv吧,无它.
------解决方案--------------------
无论从什么地方获取数据,一定要知道源数据的编码,如果源编码非utf8的肯定要在json编码之前转码,如果确保源数据已经是utf8的话,那么json编码之前就不用处理!

只要保证在json编码之前数据已经是utf8,那么你这样用是没有问题的!
------解决方案--------------------
不行的……json_encode会转成UCS-2编码…………
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn