gpt4 book ai didi

javascript - 在从 Node 到 Java 的调用中强制执行 utf8 编码

转载 作者:IT老高 更新时间:2023-10-28 23:27:19 28 4
gpt4 key购买 nike

我正在从 Node 中间层调用 Java 后端并将字符串作为查询参数传递。在使用非英文字母字符之前,一切都很好(例如:ř,ý)。当 Java 接收到这些字符时,它会抛出:

parse exception: org.eclipse.jetty.util.Utf8Appendable$NotUtf8Exception: Not valid UTF8!

此调用完美运行:

GET http://localhost:8000/server/name?name=smith

此调用失败并出现上述错误:

GET http://localhost:8000/server/name?name=sořovský

我的问题涉及到哪里解决这个问题。我找到了this Node 的 utf8 编码器,并且正在考虑在将来调用我的 Java 层之前将我的字符串编码为 utf8。这是正确的方法还是我应该在 Java 中做些什么?

注意,这是我的相关请求 header 的样子:

{
...
accept: 'application/json, text/plain, */*',
'accept-encoding': 'gzip, deflate, sdch',
'accept-language': 'en-US,en;q=0.8,el;q=0.6',
...
}

最佳答案

将您的 javascript 文件保存为 utf8。

var name = "sořovský",
param1 = encodeURIComponent(name);

var url = "http://localhost:8000/server/name?name=" + param1;

console.log(url);
// http://localhost:8000/server/name?name=so%C5%99ovsk%C3%BD

您可以使用 GET http://localhost:8000/server/name?name=sořovský 查看日志:

{
"args": {
"name": "sořovský"
},
"headers": {
"Accept": "application/json, text/plain, */*",
"Accept-encoding": "gzip, deflate, sdch",
"Accept-language": "en-US,en;q=0.8,el;q=0.6",
//...
},
"url": "http://localhost:8000/server/name?name=sořovský"
}

关于javascript - 在从 Node 到 Java 的调用中强制执行 utf8 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39252745/

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