Как мне получить числовое значение символа Юникода в C #?
Например, если задан тамильский символ அ
( U + 0B85 ), вывод должен быть 2949
(т.е. 0x0B85
)
Для некоторых символов требуется несколько кодовых точек. В этом примере UTF-16 каждая кодовая единица все еще находится в базовой многоязычной плоскости:
U + 0072
U + 0327
U + 030C
) U + 0072
U + 0338
U + 0327
U + 0316
U + 0317
U + 0300
U + 0301
U + 0302
U + 0308
U + 0360
) Более крупная точка в том, что «символ» может потребовать более 1 единицы кода UTF-16, для него может потребоваться более 2 единиц кода UTF-16, для этого может потребоваться более 3 единиц кода UTF-16.
Важнее то, что для одного «символа» могут потребоваться десятки кодовых точек Юникода. В UTF-16 на C # это означает более 1 char
. Для одного символа может потребоваться 17 char
.
Мой вопрос касался преобразования char
в значение кодировки UTF-16. Даже если вся строка из 17 char
представляет только один «символ», я все равно хочу знать, как преобразовать каждую единицу UTF-16 в числовое значение.
например.
String s = "அ";
int i = Unicode(s[0]);