gpt4 book ai didi

Java UTF-8 编码不工作 HttpURLConnection

转载 作者:太空狗 更新时间:2023-10-29 22:49:01 28 4
gpt4 key购买 nike

我尝试进行后调用并使用此值传递输入 - “ä€爱لآहที่”我收到错误消息

{"error":{"code":"","message":{"lang":"en-US","value":{"type":"ODataInputError","message":"Bad Input: Invalid JSON format"}}}}

这是我的代码

    conn.setRequestMethod(ConnectionMethod.POST.toString());
conn.setRequestProperty(CONTENT_LENGTH, Integer.toString(content.getBytes().length));
conn.setRequestProperty("Accept-Charset", "UTF-8");
conn.setUseCaches(false);
conn.setDoInput(true);
conn.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
wr.writeBytes(content);
wr.flush();
wr.close();
InputStream resultContentIS;
String resultContent;
try {
resultContentIS = conn.getInputStream();

BufferedReader reader = new BufferedReader(new InputStreamReader(resultContentIS));
StringBuilder sb = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
sb.append(line);
}

它在 conn.getInputStream() 上失败了;

内容的值(value)在于

{ "input" : "ä€愛لآहที่" }

它在输入为字符串或整数的情况下工作

当我添加语句时

   conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); 

我收到了不同的消息

 {"error":{"code":"","message":{"lang":"en-US","value":{"type":"Error","message":"Internal server error"}}}}

最佳答案

请尝试下面的代码:

DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(wr, "UTF-8"));
writer.write(content);
writer.close();
wr.close();

你应该使用 JSONObject 来传递参数

输入,请尝试

BufferedReader reader = new BufferedReader(new InputStreamReader(resultContentIS, "UTF-8"));

如果输出是:????????,不用担心,因为你的输出控制台不支持UTF-8

关于Java UTF-8 编码不工作 HttpURLConnection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18759199/

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