4

いくつかのUnicodeテキスト文字列を解析しようとしているときに、定義が見つからない非表示の文字をヒットしています。テキストエディタに貼り付けて非表示を表示すると、箇条書き(•alt-8)のように見え、コピーして貼り付けると、スペースやタブのような効果があることがわかります。しかし、それはそれらのどれでもありません。

私はそれをテストする必要があります、のようなもの...

 if(uniChar == L'\t') 

しかしもちろん、私はそれに合うものを提供する必要があります。

UTF-8ではバイト0xc20xa0があります。

誰も定義を持っていない場合、私が定義できないものをテストするための不正な方法はありますか?

(私はたまたまObjective-C、OSX、XcodeでNSStringsを使用していますが、それは何の関係もないと思います。)

4

1 に答える 1

9

UTF-8のバイトC2A0は、 U + 00A0ɴᴏ-ʙʀᴇᴀᴋ sᴘᴀᴄᴇをエンコードします。これは、たとえば、結合マークを分離して表示するために使用できます。これは 、名前付きHTMLエンティティとしてのものです。U + 0020sᴘᴀᴄᴇとほぼ同じですが、前後の改行を防ぎ、双方向レイアウトの数値区切り文字として機能する点が異なります。

テキストエディタに非表示を表示するように要求したときに表示されるドットは、テキストエディタがスペースを表示するために選択したグリフです。問題のキャラクターがU+00B7ᴍɪᴅᴅʟᴇᴅᴏᴛであるという意味ではありません。これは間違いなく目に見えません。

コードでは、それをとして持っている場合、それunicharをと比較することができますL'\x00A0'

于 2013-03-01T10:38:14.887 に答える