2011-08-09 4 views
0

誰かが、Java Web Appで望ましくないユニコード文字(つまりバックスペース)をエスケープする最良の方法を教えてください。Unicodeのバックスペース文字をエスケープするにはどうすればいいですか? TomcatログのJavaで

私はJava Webアプリケーションを使用しています。これは、アプリケーションから生成されたTomcatログ用です。私は、バックスペースがログを実際に表示していないという目的を求めています。単純な正規表現でバックスペースを取り出すよりも、より完全なソリューションにも興味があります。

私はStringEscapeUtils.escapeJava()を見ましたが、これは明らかにStringEscapeUtils.escapeLinux()ではありません。 私はバイトを調べることも見てきました。他のパッケージを使用しています(残念ですが忘れて捨ててしまいました)

StringEscapeUtils from Apache Commonsは今まで私が半分作業してきたソリューションです。より良い方法がありますか? 1つは、他のユニコード文字を含むように私のアプリに方法を見つけるか?

FYI:これらのユニコード文字はGETリクエストで受信しています。

+0

これは私が信じている交換の問題になっています。 GNU/Linuxでvimを使ってセッションを表示する標準のログファイルを壊してしまうすべての文字を取り出します。これらの文字は、もともと思っていたように実際にログを書き換えません! – Ross

答えて

1

あなたは、バックスラッシュを含むリテラルを検索したいと思っています。その場合、Pattern.quote(String)を使用します。

+0

提案に感謝しますが、残念ながらバックスペースの問題は解決しません。それは\ Qと\ Eを追加するので、Linuxのターミナルウィンドウで\ bと思っているか、ログファイルを消去していなくてもログが消費されます。実際にはバックスペースとしてファイルに格納されます。たぶん私はコンソールで翻訳されていないコードポイントの表現にそれらを変換するこれらを特に削除する必要があります。 – Ross

+0

不要なフィルタをフィルタリングして、ソース文字列の文字をループし、興味のある文字だけをStringBuilderにコピーしてみましょう。 –

+0

誰かが他の文字を注入しようとしているのを見たいので – Ross