4

OracleDBを使用してJavaEEアプリケーションに取り組んでいます。現在、Webページの一部のコンテンツには特殊文字が含まれているため、それらをエスケープする必要があります。キャラクターは以下のように登場します:

€˜T’ ! “One Chase.†$ % & ( ) ' / : ? ` — – _ ‚ " Test 

これがどの文字エンコードであるかを誰かが知っていますか?どうすればそれらをエスケープできますか?それらをエスケープして、ブランクに置き換える必要があります。

4

2 に答える 2

1

これらの文字は、エンコーディングを正しく処理しないコードの副作用です(UTF-8がISO-8859-1であると想定している、またはその逆)-現時点ではジャンクです。それらを正しくレンダリングするには、アプリを修正する必要があります。それらをブランクに置き換えたり、フィルタリングを行ったりする必要はありません。

この記事http://www.joelonsoftware.com/articles/Unicode.htmlを読んでから、データベースの相互作用、JSPおよびアプリケーションサーバーの設定を確認してください。

于 2012-04-25T15:16:13.943 に答える
0

文字列をパターン一致させて、無効な文字のブラック リストを作成するか、有効な文字のホワイト リストを作成することができます。次のようなものです。

 Pattern p = Pattern.compile(blackList); // or reverse with a white list
 Matcher m = p.matcher(unsafeInputString);
 if (m.matches())
{
    // Invalid input: reject it, or remove/change the offending characters.
}
else
{
   // Valid input.
}
于 2012-04-25T13:45:26.847 に答える