C# 使用转义时出现编译错误\U
当使用unicode文本时,我遇到一个编译错误“unrecognized escape sequence”,我的程序有什么问题吗C# 使用转义时出现编译错误\U,c#,.net,C#,.net,当使用unicode文本时,我遇到一个编译错误“unrecognized escape sequence”,我的程序有什么问题吗 public class TestProject { static void Main(string[] args) { string s1 = "\UD800DC09"; Console.WriteLine(s1); } } 使用小写的u string s1 = "\uD800DC09"; 看看这个。它说:“不支持代码点高于0x10FFFF的Uni
public class TestProject
{
static void Main(string[] args)
{
string s1 = "\UD800DC09";
Console.WriteLine(s1);
}
}
使用小写的
u
string s1 = "\uD800DC09";
看看这个。它说:“不支持代码点高于0x10FFFF的Unicode字符。”
编辑:
也许你想要的是:
string s1 = "\uD800\uDC09";
但它仍然是一个坏字符。从技术上讲,没有代码点大于10FFFF的Unicode字符,因为Unicode是21位代码。@Olivier Jacot Descombes,MSDN文章说大写的U'\U'后面可以跟一个8位数字作为有效的Unicode转义序列,如果是这样,我怎么会得到编译错误?是的,但只有高达10ffff的值才有效。您正在使用的值d800dc09实际上看起来像一个代理项对。我以前见过微软的编译器把ffff上面的代码点弄乱并像那样显示出来。您可能想要的是\u00009,它是具有代理表示D800 DC09的代码点。@bames53,我已经尝试过了\u00009,这正是我想要的。因此它意味着\U后面的8位数字是代码点,而不是UTF-16编码。谢谢!不客气。另外,由于您是StackOverflow的新手,我想通知您,您可以通过勾选答案旁边的勾号来接受对您帮助最大的答案。