Nav*_*K N 36 c# unicode string-concatenation
我知道以下是在C#中使用unicode的方法
string unicodeString = "\u0D15";
Run Code Online (Sandbox Code Playgroud)
在我的情况下,我不会在编译时获得字符代码(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;
Run Code Online (Sandbox Code Playgroud)
我该如何处理这种情况?
任何帮助都会很棒!
aru*_*rul 54
您想使用char.ConvertFromUtf32函数.
string codePoint = "0D15";
int code = int.Parse(codePoint, System.Globalization.NumberStyles.HexNumber);
string unicodeString = char.ConvertFromUtf32(code);
// unicodeString = "?"
Run Code Online (Sandbox Code Playgroud)
这是一个 NUnit 测试,显示了 arul 和 Adrian 的解决方案 - 请注意,一个解决方案以字符串中的输入开头,而对于另一个解决方案,输入仅以字符开头。
[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]);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32787 次 |
| 最近记录: |