【发布时间】:2017-01-08 05:30:07
【问题描述】:
我正在从节点中间层调用 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ý
我的问题涉及到哪里解决这个问题。 我找到了节点的thisutf8 编码器,并且正在考虑在将来调用我的Java 层之前将我的字符串编码为utf8。 这是正确的方法还是我应该在 Java 中做些什么?
注意,这是我的相关请求标头的样子:
{
...
accept: 'application/json, text/plain, */*',
'accept-encoding': 'gzip, deflate, sdch',
'accept-language': 'en-US,en;q=0.8,el;q=0.6',
...
}
【问题讨论】:
-
如果 Java 端给你这个错误,那么输入很可能没有以 UTF-8 正确编码,所以你必须看看为什么 Node 端没有正确编码。没有更多细节(你的代码是什么样的?)很难给出更详细的答案。
-
@Jesper,谢谢!我在问题中添加了详细信息,显示了我的请求选项。
-
需要有关您的 url(和潜在的请求标头)的更多详细信息。您可以捕获请求标头并将其添加到您的问题中吗?
-
@JoakimErdfelt 我在我的问题中添加了相关的请求标头。
-
@bruceceng,添加了更多细节,即我提出的
GET请求。
标签: javascript java node.js utf-8 jetty