Rubyの文字列リテラルはバックスラッシュ記法を用いてUnicode文字をコードポイントから表示することが出来ます。
(\uXXXXの形式)
>> puts "\u3042"
>> あ
しかし、コードポイントが5桁の場合、この書き方だとうまくエスケープされません。
(前半4桁と最後の1桁の2文字扱いになる)
>> puts "\u20e95"
>> ⃩5
この場合、以下の様にコードポイント部分を{}で囲むと期待通りにエスケープされます。
(\u{XXXX}の形式)
>> puts "\u{20e95}"
>> 𠺕
>> ⃩5
この場合、以下の様にコードポイント部分を{}で囲むと期待通りにエスケープされます。
(\u{XXXX}の形式)
>> puts "\u{20e95}"
>> 𠺕
また、この形式ならば、スペースで区切ることで複数コードを一度にエスケープできます
>> puts "\u{20e95 3042}"
0 件のコメント:
コメントを投稿