Как получить десятичное значение символа Юникода в C #?

Как мне получить числовое значение символа Юникода в C #?

Например, если задан тамильский символ ( U + 0B85 ), вывод должен быть 2949 (т.е. 0x0B85 )

См. Также

Многокодовые символы

Для некоторых символов требуется несколько кодовых точек. В этом примере UTF-16 каждая кодовая единица все еще находится в базовой многоязычной плоскости:

  • enter image description here (т. Е. U + 0072 U + 0327 U + 030C )
  • enter image description here (т.е. 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]);

Где Unicode возвращает целочисленное значение, как определено стандартом Unicode, для первого символа входного выражения.

13
задан Community 23 May 2017 в 12:16
поделиться