クライアント(主に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.
Nopeまだ同じ問題です。私はcatalina.outに次のように書いています。「私は知らない」の代わりに「知っている」とは言いません。 – FDavidov
さらにログメッセージを表示できますか? – Sky
これはあなたのために試してみてください:[http://stackoverflow.com/questions/17728077/utf-8-decoding-problems-in-java-tomcat7] – Sky