Unicodeのコード番号からStringを取得する

VclとFireMonkey共通。

“80CC”等、コードポイント(番号)の文字列をStringに変換するには、基本的には以下でOK。

ただし実際にはサロゲートペア用に割り当てられた番号(D800~DFFF)に配慮する必要がある。Androidで、サロゲートペア用の番号を指定するとアプリが落ちる場合もある(Android4.4.2で確認)
そこに配慮した関数。

サロゲートペア文字も取得するには、もう一手間が必要。
サロゲートペア用の番号は”20B9F”など5桁になる。
少し汎用にstd::wstringを使った関数。(注:C++Builderはwchar_tが2byte)

(注:C++Builder Berlin Update2では、Androidではwstring版の”wcstol”がバグっているようなので、さらに一手間かけてstring版の”strtol”を使う必要がある)

念のため、Stringに変換するには以下のように呼び出す。

(なおC++Builder BerlinではStringはUnicodeStringのtypedef)

C++Builder Berlin Update2 / Windows7(Sp1)で確認。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です