JSON输出重音问题
我一直在寻找3小时左右,我知道有很多这样的问题已经被问到,但我还没有find任何解决scheme,我的问题,当我试图输出重音字符在我的数据库上的SELECT查询的结果。
$itemsList = array(); while($row = mysql_fetch_assoc($res)){ $itemsList[Items][] = ($row); } echo json_encode($itemsList);
这将输出:
{"Items": [ {"user_name":"misterP", "comment":"\u00c3\u00a9t\u00c3\u00a9", "image_name":"403885300736874.jpg"}]}
但是我需要输出口音,像这样:
{"Items": [ {"user_name":"misterP", "comment":"été", "image_name":"403885300736874.jpg"}]}
- 我的数据库和表有utf8_general_ci interclassement
- 我的数据库中插入的数据是utf8_encoded
- 我的PHP脚本是在Unicode(UTF-8)
- 我做了“mysql_set_charset('utf8');”在我的数据库上的SELECT之前
- 如果这可以帮助某人:在y数据库中,“été”这个词是:“été”
所以我现在真的不知道该怎么做,我真的被这个口音卡住了,我无法工作。 提前致谢 !
这并不重要。 当json被解码时,它们又变成了字符。
如果您使用php 5.4> =,则可以将JSON_UNESCAPED_UNICODE
传递给json_encode
:
json_encode( $data, JSON_UNESCAPED_UNICODE )
但是,Unicode再一次逃脱工作,并使数据安全。
编辑:
它看起来像你的数据已经拧,甚至json_encode
之前。 你已经“双编码”它看起来像utf-8。
我的数据库中插入的数据是utf8_encoded
你使用的东西像utf8_encode
? 插入到数据库中时,不需要在代码中执行任何操作。 如果使用utf8_encode
将数据插入到数据库中,那么解释双重编码。 所有你需要的是数据是utf-8并且在插入之前有mysql_set_charset( 'utf8' )
。
有趣的是知道,如果你的json有非转义的unicode,即使你添加括号,如果json包含U+2028
或U+2029
,json 也不能作为javascript执行 。
- 我已经整合了谷歌加在我的IOS应用程序,但我无法获得当前login的用户的电子邮件ID
- 仅在IOS的前台App中获取Appcelerator Titanium推送通知
- 为AWS Device Farm构buildXCTest UItesting
- 将URL上的图像附加到AFNetworking 2.0请求?
- IOS无法正确解码json格式的emoji unicode,表情符号图标显示为正方形
- 如果快速刷卡,UIPageViewController didFinishAnimating不会被调用
- 使用带有getPicture和FILE_URI选项的Cordova / Phonegap API未显示相机图像
- iOS 7中文本字段的弹出/模态选择器
- NSData被保存为CoreData中的时间戳