gpt4 book ai didi

java转换UTF-8字符(è)问题

转载 作者:行者123 更新时间:2023-12-01 17:53:48 24 4
gpt4 key购买 nike

嗨,我遇到了 java 问题...json 正确到达字符串数组,但字符 (is) 是 A ...有人可以帮助我转换为 UTF-8 和字符串

谢谢

private static void loadProperties() throws Exception {
String properties = null;
HttpsURLConnection con = (HttpsURLConnection) new URL(getEndpoint()).openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer res = new StringBuffer();
while((inputLine = in.readLine()) != null) {
res.append(inputLine);
}
in.close();
JsonObject jsonObject = new JsonParser().parse(res.toString()).getAsJsonObject();
if(jsonObject.has("error")) {
JsonObject error = jsonObject.get("error").getAsJsonObject();
if(error.has("errorCode") && "1000".equals(error.get("errorCode").getAsString()) && jsonObject.has("data")) {
properties = jsonObject.get("data").getAsJsonArray().toString();
log("PropertiesUtils.loadProperties: Properties = %s", properties);
setProperties(properties);
} else {
throw new Exception("PropertiesUtils.loadProperties: Error while calling properties endpoint");
}
} else {
throw new Exception("PropertiesUtils.loadProperties: Error while calling properties endpoint");
}
}

最佳答案

您的错误在这里:

new InputStreamReader(con.getInputStream())

这需要 InputStream 传输 HTTP 响应(即纯字节流),并使用默认编码将其重新解释为文本(因为您没有指定编码)。

默认编码完全取决于您的计算机、操作系统和设置,并且与远程服务器可能向您发送数据的编码完全无关。

您需要使用con.getContentEncoding()获取服务器通知您的编码:

new InputStreamReader(con.getInputStream(), con.getContentEncoding());

关于java转换UTF-8字符(è)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60753595/

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