2

以前の質問 ( ANTLRWorks 1.4.3 は拡張 ASCII 文字を適切に読み取ることができません) に対する新たな展開として、16 進エディターを使用して単純なテキスト ファイルを作成しました。

' ' '£' '°' 'ç'

または16進数で:

27 A0 27 20 27 A3 27 20 27 B0 27 20 27 E7 27

結果のファイルは、Notepad++ で問題なく読み取れます。ANTLRWorks 1.4.3 で開くと、(拡張) ASCII 文字が四角いボックスとして表示されます。行末にスペースを追加および削除してファイルを保存すると、16 進数のファイル ビューは次のようになります。

27 3F 20 27 A3 27 20 27 B0 27 20 27 3F

何らかの理由で、アポストロフィ間の最初のスペース (20) がクエスチョン マーク (3F) に切り捨てられ、セディラ文字 (E7) を含む特殊な c とそれに続くアポストロフィの両方がクエスチョン マークに置き換えられました。

拡張 ASCII 文字が存在すると、何らかの形で事態がひどく悪化するようです。この問題を再現したり、考えられる理由と解決策を提供したりできる人はいますか?

前もって感謝します。

4

1 に答える 1

2

代わりに Unicode エスケープを使用できます。たとえば、英語のポンド記号に一致させたい場合は、次のようにします。

PoundSign : '\u00A3';

それ以外の:

PoundSign : '£';

それらは両方とも同じ文字に一致する (はずである) ので、最初の文字は壊れない可能性が非常に高いです。

于 2011-12-07T20:46:07.577 に答える