TOMCAT报告此错误:INFO:字符解码失败

时间:2016-07-30 07:31:11

标签: javascript java json servlets character-encoding

我有一个WEB应用程序,包括一个客户端(主要是AngularJS,JQuery和Bootstrap),一个Servlet(TOMCAT)和一个数据库(MySQL)。

用户可以在多个位置输入文本(自由文本格式)。客户端准备一个JSON并将其发送到转发到DB的servlet,并将响应JSON一直返回给客户端。

当文本中包含特殊字符时,我发现处理不当(导致servlet中出现“字符解码失败”)。具体来说,我从MS-Word复制文本并将其粘贴到输入字段中,字符串中包含一些MS-Word自动替换的字符(例如,简单的引号标记为标题 - 如果您只是键入“我不知道”导致错误的'替换。

我尝试使用myString=myString.replace(/[\x00-\x1F\x7F-\x9F]/g, "")删除控制字符,但没有成功。

有人能建议正确处理这种情况的标准做法是什么?

感谢!!!

编辑:

以下是报告错误的行(JSON非常大,所以我只显示相关部分):

Jul 30, 2016 11:56:29 AM org.apache.tomcat.util.http.Parameters processParameters
INFO: Character decoding failed. Parameter [request] with value [{...,"Text":"I donֳ¢ֲ€ֲ™t know"..."I donֳ¢ֲ€ֲ™t know"...}] has been ignored. Note that the name and value quoted here may be corrupted due to the failed decoding. Use debug level logging to see the original, non-corrupted values.
 Note: further occurrences of Parameter errors will be logged at DEBUG level.

1 个答案:

答案 0 :(得分:1)

尝试更改Tomcat的编码。您可以在conf/server.xml中找到它,如下所示:

 <Connector port="8080" URIEncoding="UTF-8"/>