我想在我的代码中使用Unicode 。我的 Unicode 值为 0100,我正在将我的 Unicode 字符串\u
与我的值相加。当我使用 stringmyVal="\u0100"
时,它正在工作,但是当我像下面这样使用时,它不起作用。该值看起来像"\\u1000";
。我该如何解决这个问题?
我想像下面这样使用它,因为 Unicode 值有时可能会有所不同。
string uStr=@"\u" + "0100";
我想在我的代码中使用Unicode 。我的 Unicode 值为 0100,我正在将我的 Unicode 字符串\u
与我的值相加。当我使用 stringmyVal="\u0100"
时,它正在工作,但是当我像下面这样使用时,它不起作用。该值看起来像"\\u1000";
。我该如何解决这个问题?
我想像下面这样使用它,因为 Unicode 值有时可能会有所不同。
string uStr=@"\u" + "0100";
这里有几个问题。一种是@"\u" 实际上是文字字符串"\u"(也可以表示为"\u")。
另一个问题是你不能以你描述的方式构造一个字符串,因为“\u”本身不是一个有效的字符串。编译器期望一个值跟随“\u”(如“\u0100”)来确定编码值应该是什么。
您需要记住,.NET中的字符串是不可变的,这意味着当您使用串联示例 (`@"\u"+"0100") 查看幕后发生的事情时,实际上是这样的发生:
所以你在内存中有三个字符串。为了实现这一点,所有字符串都必须有效。
处理这些值时想到的第一个选项是将它们实际解析为整数,然后将它们转换为字符。就像是:
var unicodeValue = (char)int.Parse("0100",System.Globalization.NumberStyles.AllowHexSpecifier);
这将为您提供单个 Unicode 字符值。从那里,您可以将其添加到字符串中,或使用ToString()
.