2017-08-28 6 views

答えて

3

charには変換できません。そのコードポイントは、単一の16ビット要素としてUTF-16で表現できる範囲外です。代わりに代理ペア、2つのchar要素で表されます。 Delphiでは、それは文字列として表現されるだろう、このページから見分けることができるよう

#$D83D#$DCDB 

:文字列リテラル内で、実際にはhttp://www.fileformat.info/info/unicode/char/1f4db/index.htm

が、私はあなたのソースコードに文字を貼り付けする方が簡単だと思いますソースコードをUTF-8としてエンコードして保存することができます。 IDEは自動的にそうするよう指示します。それはあなたがそれを明確に、フォームの任意のテキストをU + XXXX解析したいことを確認コメントの中で

'' 

としてそれを表しています。数値を抽出し、整数に変換します。その後、TCharHelper.ConvertFromUtf32に渡します。

+0

デビッド、ありがとう、ありがとう。でも、u + xxxをユニコード文字(または文字列)に変換するにはどうすればよいですか?私は変換する必要がある文字列リテラルu + xxxxだけを持っています – andrey

+1

utf-16 specの仕様を読んでください。コードポイント値を整数に解析します。単一の文字として表現できる場合は単純です。そうでない場合は代理ペアの規則に従います。 –

+0

私は見つかった、それはTcharacter.ConvertFromUtf32 :)文字列を返します – andrey

関連する問題