3

以下はバグです: http://java.net/jira/browse/JAXB-614

上記のバグについては、次のリンクに記載されている解決策を使用することをお勧めします: http://blog.lesc.se/2009/03/escape-illegal-characters-with-jaxb-xml.html

解決リスト 31 コード:

final String escapeString = "\u0000\u0001\u0002\u0003\u0004\u0005" +                
    "\u0006\u0007\u0008\u000B\u000C\u000E\u000F\u0010\u0011\u0012" +            
    "\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C" +               
    "\u001D\u001E\u001F\uFFFE\uFFFF";

さて、私の質問は、上記のコードの実際の文字を ASCII で取得できますか?

4

5 に答える 5

1

これらの文字はどれも印刷できません。

その文字列を Javascript コンソールに貼り付けると、"�".

于 2012-05-13T12:14:00.787 に答える
1

バイナリ データを XML で保存する場合は、たとえば Base64 エンコーディングを使用するのが理にかなっています。それらを同じ「無効な」文字に置き換えることが最善の方法だとは思いません。

于 2012-05-13T12:16:31.907 に答える
1

List<Character>無効な XML 文字をすべて含むを返すメソッドを作成しました。これは、これらの文字を削除する正規表現の単体テストに役立ちました。あらすじはこちらからご覧いただけます

上記のリンクが機能しなくなった場合のコードは次のとおりです。

return IntStream.rangeClosed(0, 65536).filter(XMLChar::isInvalid).mapToObj(c -> new Character((char) c))
            .collect(Collectors.toList());
于 2016-11-04T04:56:40.673 に答える
0

アスキー?いいえ、ASCII は 255 までです。エンティティ 0x1F 以下はすべて制御文字です。

http://www.utf8-chartable.de/

于 2012-05-13T12:15:57.973 に答える
0

「Java Unicode」をグーグルで検索します。結果の例は次のとおりです。

http://www.ssec.wisc.edu/~tomw/java/unicode.html

Unicode は、すべての文字セットをカバーするように設計されています。元の「アスキー」は北米向けのみでした。Java自体にはUnicodeサポートが組み込まれていますが、発見すべき文字エンコーディングの「落とし穴」がまだたくさんあります:-)

于 2012-05-13T12:21:02.260 に答える