Ответ 1
Вы хотите использовать функцию char.ConvertFromUtf32.
string codePoint = "0D15";
int code = int.Parse(codePoint, System.Globalization.NumberStyles.HexNumber);
string unicodeString = char.ConvertFromUtf32(code);
// unicodeString = "ക"
Я знаю, что следующий способ использования unicode в С#
string unicodeString = "\u0D15";
В моей ситуации я не получу код символа (0D15) во время компиляции. Я получаю это из XML файла во время выполнения. Интересно, как мне преобразовать этот код в строку unicode? Я попробовал следующее
// will not compile as unrecognized escape sequence
string unicodeString = "\u" + codeFromXML;
// will compile, but just concatenates u with the string got from XML file.
string unicodeString = "\\u" + codeFromXML;
Как мне справиться с этой ситуацией?
Любая помощь будет замечательной!
Вы хотите использовать функцию char.ConvertFromUtf32.
string codePoint = "0D15";
int code = int.Parse(codePoint, System.Globalization.NumberStyles.HexNumber);
string unicodeString = char.ConvertFromUtf32(code);
// unicodeString = "ക"
Здесь тест NUnit, показывающий решение arul и Adrian - обратите внимание, что одно решение начинается с ввода в строку, а с другим решением вход начинается только с char.
[Test]
public void testConvertFromUnicode()
{
char myValue = Char.Parse("\u0D15");
Assert.AreEqual(3349, myValue);
char unicodeChar = '\u0D15';
string unicodeString = Char.ConvertFromUtf32(unicodeChar);
Assert.AreEqual(1, unicodeString.Length);
char[] charsInString = unicodeString.ToCharArray();
Assert.AreEqual(1, charsInString.Count());
Assert.AreEqual((int) '\u0D15', charsInString[0]);
}
Сбросьте символ в xml с помощью символьной ссылки:
<Config value="ക" />
Он будет корректно прочитан парсером С# xml (по крайней мере, XElement.Load()).