C中字符串到Unicode的转换#

C中字符串到Unicode的转换#,unicode,c#-3.0,unicode-string,Unicode,C# 3.0,Unicode String,我想在我的代码中使用。我的Unicode值是0100,我正在用我的值添加我的Unicode字符串\u。当我使用stringmyVal=“\u0100”时,它工作了,但当我像下面这样使用时,它不工作了。该值看起来像“\\u1000”。我如何解决这个问题 我想像下面一样使用它,因为Unicode值有时可能会变化 string uStr=@"\u" + "0100"; 这里有几个问题。一是@“\u”实际上是文本字符串“\u”(也可以表示为“\u”) 另一个问题是,您无法按照描述的方式构造字符串,因为

我想在我的代码中使用。我的Unicode值是0100,我正在用我的值添加我的Unicode字符串
\u
。当我使用string
myVal=“\u0100”
时,它工作了,但当我像下面这样使用时,它不工作了。该值看起来像
“\\u1000”。我如何解决这个问题

我想像下面一样使用它,因为Unicode值有时可能会变化

string uStr=@"\u" + "0100";

这里有几个问题。一是@“\u”实际上是文本字符串“\u”(也可以表示为“\u”)

另一个问题是,您无法按照描述的方式构造字符串,因为“\u”本身不是有效字符串。编译器希望在“\u”(如“\u0100”)后面有一个值,以确定编码的值应该是什么

您需要记住,中的字符串是不可变的,这意味着当您使用连接的示例(`@“\u”+“0100”)查看幕后发生的情况时,实际发生的情况如下:

  • 创建字符串“\u”
  • 创建字符串“0100”
  • 创建字符串“\u0100”
  • 内存中有三个字符串。为了实现这一点,所有字符串都必须有效

    处理这些值的第一个选项是将它们实际解析为整数,然后将它们转换为字符。比如:

    var unicodeValue = (char)int.Parse("0100",System.Globalization.NumberStyles.AllowHexSpecifier);
    

    这将为您提供单个Unicode字符值。从那里,您可以将其添加到字符串中,或者使用
    ToString()

    将其转换为字符串这里有几个问题。一是@“\u”实际上是文本字符串“\u”(也可以表示为“\u”)

    另一个问题是,您无法按照描述的方式构造字符串,因为“\u”本身不是有效字符串。编译器希望在“\u”(如“\u0100”)后面有一个值,以确定编码的值应该是什么

    您需要记住,中的字符串是不可变的,这意味着当您使用连接的示例(`@“\u”+“0100”)查看幕后发生的情况时,实际发生的情况如下:

  • 创建字符串“\u”
  • 创建字符串“0100”
  • 创建字符串“\u0100”
  • 内存中有三个字符串。为了实现这一点,所有字符串都必须有效

    处理这些值的第一个选项是将它们实际解析为整数,然后将它们转换为字符。比如:

    var unicodeValue = (char)int.Parse("0100",System.Globalization.NumberStyles.AllowHexSpecifier);
    

    这将为您提供单个Unicode字符值。从那里,您可以将其添加到字符串中,或者使用
    ToString()

    将其转换为字符串。谢谢,我只想将值\u0100分配给我的字符串变量,就是它。但我的unicode值存储为字符串,如01000200,我只想通过添加\u将其更改为unicode,并需要将其分配给字符串变量,如\u0100。我该怎么做呢?非常感谢,很有效,但是你能解释一下吗。在不指定\u的情况下,如何将值0100作为unicode???谢谢@Robert@很深,所有的数字都隐藏在封面下…恰好通过给定unicode字符的十六进制值来指定unicode字符。谢谢,我只想将值\u0100赋给我的字符串变量,就是这样。但我的unicode值存储为字符串,如01000200,我只想通过添加\u将其更改为unicode,并需要将其分配给字符串变量,如\u0100。我该怎么做呢?非常感谢,很有效,但是你能解释一下吗。在不指定\u的情况下,如何将值0100作为unicode???谢谢@Robert@深度:所有数字都隐藏在封面下……恰好通过给定unicode字符的十六进制值来指定unicode字符。