Wie bekomme ich den dezimalen Wert eines unicode-Zeichens in C#?

Wie bekomme ich den numerischen Wert eines unicode-Zeichen in C#?

Zum Beispiel, wenn tamil Charakter (U+0B85) gegeben, die Ausgabe sollte 2949 (d.h. 0x0B85)

Siehe auch

Multi-code-Punkt-Zeichen

Einige Zeichen erfordern mehrere code-Punkte. In diesem Beispiel, UTF-16, jeder code-Einheit ist immer noch in der Basic Multilingual Plane:

  • Wie bekomme ich den dezimalen Wert eines unicode-Zeichens in C#? (d.h. U+0072 U+0327 U+030C)
  • Wie bekomme ich den dezimalen Wert eines unicode-Zeichens in C#? (d.h. U+0072 U+0338 U+0327 U+0316 U+0317 U+0300 U+0301 U+0302 U+0308 U+0360)

Den größeren Punkt, dass man "Zeichen" können benötigen mehr als 1 UTF-16-code-unit, kann es erforderlich sein, mehr als 2 UTF-16 code-Einheiten, kann es erforderlich sein, mehr als 3 UTF-16 code-Einheiten.

Den größeren Punkt, dass man "Charakter" können, erfordern Dutzende von unicode-Codepunkten. In UTF-16-in C# - das bedeutet mehr als 1 char. Eine Charakter können, benötigen 17 char.

Meine Frage war, über die Konvertierung char in eine UTF-16-Codierung Wert. Auch wenn eine gesamte Zeichenfolge von 17 char stellt nur einen "Charakter", ich will immer noch wissen, wie zu konvertieren jeder UTF-16-Einheit in einen Zahlenwert.

z.B.

String s = "அ";

int i = Unicode(s[0]);

Wobei Unicode liefert den integer-Wert, wie im Unicode-standard definiert, nach dem ersten Zeichen der Eingabe Ausdruck.

Was ist Ihr input? Ein string, der ein einzelnes Zeichen?
char (oder MyString[3], das ist ein char)
Im Grunde war ich auf der Suche für die C# - Entsprechung der SQL Server Unicode - Funktion (msdn.microsoft.com/en-us/library/ms180059.aspx)

InformationsquelleAutor Ian Boyd | 2011-10-19

Schreibe einen Kommentar