最近、私は中国語、英語、さらにはいくつかの絵文字を含む混合言語のテキストを扱っています。
私はこの問題をかなり探してきましたが、私が見つけることができるのは、文字が半値か全角かを判断する方法を説明するのではなく、「全角文字を全角文字に置き換える」ことだけです。幅の単語。
だから、私の質問は:
単語が全角か全角かを見分けることはできますか?
最近、私は中国語、英語、さらにはいくつかの絵文字を含む混合言語のテキストを扱っています。
私はこの問題をかなり探してきましたが、私が見つけることができるのは、文字が半値か全角かを判断する方法を説明するのではなく、「全角文字を全角文字に置き換える」ことだけです。幅の単語。
だから、私の質問は:
単語が全角か全角かを見分けることはできますか?
Unicode 6.1には、ここにブロックHalfwidth and Fullwidth forms
pdfがあります。
このブロック内で、\uFF01-\uFF60
と\uFFE0-\uFFE6
は全幅、\uFF61-\uFFDC
と\uFFE8-\uFFEE
は半幅です。
全角文字とは何か、全角文字とは何かという明確な基準がない限り、これは答えるのが難しい質問だと思います。それを決定できる場合は、Unicode(または任意のエンコードスキーム)の特定の範囲に対して単語の文字をテストします。
UnicodeブロックのHalfwidthandFullwidth Formsは、どの文字が代替形式であるかを示すだけです。このブロックに含まれていないものについては、半幅と全幅を検討するものを決定する必要があります。
ほとんどの西洋の文字は半分の幅であり、ほとんどの東洋の文字は全幅であると想像しますが、両方に例外があります。このUnicodeレポートが強調しているように、あいまいさもあります。
この提案には、文字を全幅とあいまいな幅に分割しているように見えるコードが含まれています。これらのコードポイントを出発点として使用できます。
文字が全幅の場合、単語は全幅です。Unicode仕様を調べて、どの文字範囲が全幅であるかを確認してから、各文字をそれと照合する必要があります。