0

org.apache.commons.lang.StringEscapeUtilsクラスでいくつかの実験をしようとしていますが、いくつかの問題を見つけています。

私のコードには次のような状況があります。

String notNormalized = "c'è";

System.out.println("NOT NORMALIZED: " + notNormalized);
System.out.println("NORMALIZED: " + StringEscapeUtils.escapeJava(notNormalized));

最初に、 'で表されるアポストロフィ文字とèで表されるアクセント付き母音( è文字である必要があります)を含む正規化されていない文字列を (少なくとも頭の中で) 表す必要があるnotNormalizedフィールドを宣言しました。

次に、正規化せずに印刷しようとすると、c'è文字列とその正規化されたバージョンが印刷されると考えられ、c'è正規化\変換された文字列が取得されることを期待しています。

しかし、問題は、私がまだ同じ出力を取得していることです。実際、これはコンソールで出力として取得したものです。

NOT NORMALIZED: c'è
NORMALIZED: c'è

なんで?私は何が欠けていますか?なにが問題ですか?このテストを実行し、文字を含む文字列を&aposとして正しく変換するにはどうすればよいですか?

4

1 に答える 1

0

あなたがしようとしていることはunescapeHtml4.

そう

System.out.println("NORMALIZED: " + StringEscapeUtils.unescapeHtml4(notNormalized));

印刷する

NORMALIZED: c'è

残念ながら、&aposは HTML 4 エンティティではないため、このツールでエスケープ解除することはできません。には使用できますunescapeXmlが、 には使用でき&aposません&egrave。混ぜて合わせる必要があります。

于 2015-03-17T17:23:55.457 に答える