問題描述
如何在 C# 中獲取 unicode 字符的數值?
例如,如果泰米爾語字符 ?
(
和Java基本一樣.如果您將它作為 char
獲得,則可以隱式轉換為 int
:
char c = 'u0b85';//隱式轉換:char 基本上是一個 16 位無符號整數詮釋 x = c;Console.WriteLine(x);//打印 2949
如果您將它作為字符串的一部分,請先獲取該單個字符:
string text = GetText();int x = 文本[2];//管他呢...
請注意,不在基本多語言平面中的字符將表示為兩個 UTF-16 代碼單元. .NET 支持查找完整的 Unicode 代碼點,但它并不簡單.
How do i get the numeric value of a unicode character in C#?
For example if tamil character ?
(U+0B85) given, output should be 2949
(i.e. 0x0B85
)
See also
- C++: How to get decimal value of a unicode character in c++
- Java: How can I get a Unicode character's code?
Multi code-point characters
Some characters require multiple code points. In this example, UTF-16, each code unit is still in the Basic Multilingual Plane:
- (i.e.
U+0072
U+0327
U+030C
) - (i.e.
U+0072
U+0338
U+0327
U+0316
U+0317
U+0300
U+0301
U+0302
U+0308
U+0360
)
The larger point being that one "character" can require more than 1 UTF-16 code unit, it can require more than 2 UTF-16 code units, it can require more than 3 UTF-16 code units.
The larger point being that one "character" can require dozens of unicode code points. In UTF-16 in C# that means more than 1 char
. One character can require 17 char
.
My question was about converting char
into a UTF-16 encoding value. Even if an entire string of 17 char
only represents one "character", i still want to know how to convert each UTF-16 unit into a numeric value.
e.g.
String s = "?";
int i = Unicode(s[0]);
Where Unicode
returns the integer value, as defined by the Unicode standard, for the first character of the input expression.
It's basically the same as Java. If you've got it as a char
, you can just convert to int
implicitly:
char c = 'u0b85';
// Implicit conversion: char is basically a 16-bit unsigned integer
int x = c;
Console.WriteLine(x); // Prints 2949
If you've got it as part of a string, just get that single character first:
string text = GetText();
int x = text[2]; // Or whatever...
Note that characters not in the basic multilingual plane will be represented as two UTF-16 code units. There is support in .NET for finding the full Unicode code point, but it's not simple.
這篇關于如何在 C# 中獲取 unicode 字符的十進制值?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!