UTF-16错误,如何解决无法识别的转义序列



这个程序是一个转换器程序,它接受一些符号并将它们转换为普通字母。问题是,当我尝试放一些符号时,比如:allAlphabets.Add("[]/[]"(;或:allAlphabets.Add("//"(,我得到一个关于UTF-16 的错误

static void Main(string[] args)
{
string input = ""; // string input
List<string> allAlphabets = new List<string>(); // storing to a list
input = Console.ReadLine();
char[] word = input.ToCharArray();
for (int i = 0; i < word.Length; i++)
{
switch (word[i]) // switch casce
{
normal letters
case 'm':
allAlphabets.Add("[]/[]"); // represents text as a sequence of utf-16 code units 
break;
case 'n':
allAlphabets.Add("[][]"); // represents text as a sequence of utf-16 code units
case 'v':
allAlphabets.Add("/"); // represents text as a sequence of utf-16 code units
break;
case 'w':
allAlphabets.Add("//"); // represents text as a sequence of utf-16 code units
}
}
}
}

有人知道编码无法识别的转义序列的方法吗?非常感谢。

您需要使用逐字标识符(@(

表示字符串文字将被逐字解释。@此实例中的字符定义了一个逐字逐句的字符串文字。易于理解的转义序列(例如反斜杠的"\"(、十六进制转义序列(例如大写字母A的"x0041"(和Unicode转义序列(例如大写字母A的"u0041"(被解释字面上只有引号转义序列(""(不被解释字面上它只产生一个引号。此外,如果逐字插入字符串大括号转义序列({{}}(的并非字面解释;它们产生单括号字符。

allAlphabets.Add(@"[]/[]");

或转义反斜杠

allAlphabets.Add("[]\/[]")

其他资源

  • 字符串(C#编程指南(

  • 正则和逐字字符串文字

  • 字符串转义序列

最新更新