2016-07-30 139 views
0

クライアント(主にAngularJS、JQuery、Bootstrap)、サーブレット(TOMCAT)、データベース(MySQL)で構成されるWEBアプリケーションがあります。TOMCATがこのエラーを報告しました:INFO:文字のデコードに失敗しました

ユーザは、いくつかの場所(フリーテキスト形式の一種)にテキストを入力できます。クライアントはJSONを準備し、それをDBに転送するサーブレットに送信し、応答JSONがクライアントに向かって返されます。

テキストに特殊文字が含まれていると、誤った処理が発生しました(サーブレットで「文字の復号化に失敗しました」)。具体的には、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

は、エンコーディングを変更するようにしてくださいあなたのTomcatの。 conf/server.xmlには、次のような行があります。

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

Nopeまだ同じ問題です。私はcatalina.outに次のように書いています。「私は知らない」の代わりに「知っている」とは言いません。 – FDavidov

+0

さらにログメッセージを表示できますか? – Sky

+0

これはあなたのために試してみてください:[http://stackoverflow.com/questions/17728077/utf-8-decoding-problems-in-java-tomcat7] – Sky