gpt4 book ai didi

java - HttpClient 忽略编码,在一台计算机上

转载 作者:搜寻专家 更新时间:2023-10-31 19:33:17 24 4
gpt4 key购买 nike

我在几台不同(但显然相同)的计算机上使用 HttpClient(版本 3.1)从 URL 读取 UTF-8 编码的 JSON 数据。

在所有的机器上,除了一台,它工作正常。我有一些西类牙语单词,它们带有完整的口音和波浪号。

一台电脑顽固地拒绝合作。它显然将数据视为 ISO-8859-1,尽管有 Content-Type: application/json;charset=utf-8 header 。

如果我使用 curl 从那台计算机访问该 URL,它会正常工作。在所有其他计算机上,curl 和我的基于 HttpClient 的程序都可以正常工作。

我对每台机器上的 common-httpclient.jar 文件做了一个 md5sum:相同。

在 Linux 的深处是否有一些设置可能会有所不同并且会干扰我?还有其他理论,甚至是值得一看的地方吗?

编辑:有些人要求提供更多详细信息。

最初我在复杂的 Tomcat 应用程序的内部遇到了问题,但我稍微调整了一下 the sample只是检索有问题的 URL,并且(幸运的是)遇到了同样的问题。

这些是运行 jdk1.7.0_45 的 Linux 2.6 机器。

env 命令会产生一堆变量。唯一看起来很准确的是 LANG=en_US.UTF-8

最佳答案

如何从HttpClient获取json响应数据?

如果您以二进制形式取回它(例如通过 getResponseBodyAsStream()),然后在不指定字符集的情况下将其转换为字符串,那么结果取决于您的 JVM 的默认字符集。

您可以通过以下方式检查 JVM 默认字符集的值:

Charset.defaultCharset().name()

这可能会在所有机器上给出“UTF-8”,但失败的机器除外。

关于java - HttpClient 忽略编码,在一台计算机上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23670904/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com