C#では、エスケープシーケンス\xn
および\unnnn
を使うことで文字のUnicodeコードポイントを16進数で指定してリテラルを記述できます。 \unnnn
は常に4桁でコードポイントを指定する必要がありますが、\xn
の場合桁数は可変です。 そのため、\xn
に続けて数値を記述しようとする場合、意図しないエスケープとならないよう注意する必要があります。
エスケープシーケンス\xと\uを使ってコードポイントを指定して文字を記述する
using System;
class Sample {
static void Main()
{
Console.WriteLine("\x61"); // 0x61(U+0061) 'a' が表示される
Console.WriteLine("\x6100"); // 0x6011(U+6100) '愀' が表示される
Console.WriteLine("\x061"); // 0x61(U+0061) 'a' が表示される
Console.WriteLine("\x0061"); // 0x61(U+0061) 'a' が表示される
Console.WriteLine("\x006100"); // 0x61(U+0061) 'a' と '00'が表示される
Console.WriteLine();
Console.WriteLine("\u0061"); // 0x61(U+0061) 'a' が表示される
Console.WriteLine("\u6100"); // 0x6011(U+6100) '愀' が表示される
Console.WriteLine("\u006100"); // 0x61(U+0061) 'a' と '00'が表示される
}
}
実行結果
a 愀 a a a00 a 愀 a00
VBには\xn
や\unnnn
のような文字列中でコードポイントを記述するエスケープシーケンスはありません。 代わりに、ChrW関数を使うことによりUnicodeコードポイントから文字を取得することができます。
Imports System
Class Sample
Shared Sub Main()
Console.WriteLine(ChrW(&H61)) ' "a" が表示される
End Sub
End Class