java - org.json 字符编码/解码问题

标签 java json

所以我有一个网络服务调用返回一个 JSON 字符串。我已请求响应发送回 UTF-8 编码的内容。当我检查返回的值时,一切看起来都很好。当我创建一个新的 JSONObject 并将 JSON 文本传递到构造函数时,事情开始出现问题。

具体来说: Web 服务在响应中返回一个 EM DASH (http://www.fileformat.info/info/unicode/char/2014/index.htm) 字符 - "format":"On Demand Event—All Sessions"

在 JSONObject 收到字符串后,它将此字符转换为此字符的 java 表示形式 - "format":"On Demand Event\u2014All Sessions"

我正在使用 org.json 库来执行我的命令,并且正在考虑在必要时转向不同的实现。以下是我运行节目的内容:

HttpClient client = new HttpClient();
GetMethod getDownloads = new GetMethod("http://localhost:8080/ecommerce-ws/service/account/downloads");

getDownloads.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
getDownloads.setRequestHeader("Accept", "application/json");

client.executeMethod(getDownloads);

String httpResponse = getDownloads.getResponseBodyAsString();

JSONObject downloadsJSON = new JSONObject(httpResponse);

有什么方法可以在解析字符串时在 JSONObject 上设置字符编码?我环顾四周,但几乎没有发现任何帮助。

预先感谢您的协助。

最佳答案

好问题。

JSON 规范似乎允许转义所有 unicode 字符

http://www.ietf.org/rfc/rfc4627.txt

但是当我测试时,GSON 似乎并没有逃脱 EM DASH

http://code.google.com/p/google-gson/

关于java - org.json 字符编码/解码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4108489/

相关文章:

javascript - 通过ajax提交包含多个字段的表单 - 如何将数据格式化为JSON?

python - 将元组和 int 键字典写入文件

java - 强制 spring RestTemplate 将纯文本处理为 JSON?

java - 在 Android 应用程序中实现 AdWords 的最佳方式是什么?

java - 为什么 thread.stop() 不起作用?

java - 使用 ContextConfiguration 注释时无法加载 ApplicationContext

java - 从 JodaTime 获取友好、口语化的字符串

java - JavaFX 中的 svg 到 -fx-shape

json - 将 JSON 文件导入 MS Access 表

php - Swift JSON 序列化错误