Json 问号(“??????”)而不是希伯来字符

Posted

技术标签:

【中文标题】Json 问号(“??????”)而不是希伯来字符【英文标题】:Json question marks ("??????") instead of Hebrew chars 【发布时间】:2013-11-26 14:11:51 【问题描述】:

我正在从我的数据库中获取包含希伯来语单词的数据。然后我从ResultSet 获取这些数据,将其放入字符串,然后将其放入JSONObject

代码如下:

response.setContentType(application/json);
...
String str = rs.getString['name'];
...
JSONObject obj = new JSONObj();
obj.put("name", str);
...
response.getWriter().write(obj.toString());

注意:

我使用 java 作为后端,我的数据库是 mysql。数据库配置为 UTF-8

结果:

"name":"??????"

【问题讨论】:

你使用的是什么字符集? 一切都使用 UTF8 吗?也就是说:所有脚本都保存在 UTF8 中(文件本身!),所有网络请求都使用 utf8,SQL 事务使用 UTF8,最后但并非最不重要的是,您的数据库排序规则是 UTF8? 你在哪里看到这个输出?前端应用程序、控制台等……可能不是 d/b 问题;可能是显示问题(或 JSON 库的问题)。 浏览器真的显示UTF8吗? HTTP 响应中的 content-type heder 是什么? 很高兴我能帮上忙。 :) 把答案归功于自己,我真的只是指出了方向。 【参考方案1】:

在@Johannes H 的帮助下解决了这个问题。已添加response.setCharacterEncoding("utf-8");

【讨论】:

以上是关于Json 问号(“??????”)而不是希伯来字符的主要内容,如果未能解决你的问题,请参考以下文章

在VS上用C#读取和写入希伯来字符串

序列化为保留希伯来字符的 JSON

在android中显示希伯来语字符

发送邮件后带有问号的php菱形

客户编码在utf8而不是unicode

php输入数据库,显示为问号,而不是应该的中文?