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

问题描述 投票:0回答:1

此程序是一个翻译程序,它接受一些符号并将其转换为普通字母。问题是,当我尝试放置一些符号时: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

             }
          }
       }
    }

有人知道一种编码无法识别的转义序列的方法吗?谢谢!

c# utf-16
1个回答
4
投票

您需要使用verbatim identifier@

表示要逐字解释字符串文字。@在这种情况下,字符定义逐字字符串文字。简单转义序列(例如反斜杠的"\\"),十六进制转义序列(例如大写字母A的"\x0041")和Unicode转义序列(例如大写字母A的"\u0041")被解释从字面上看。仅解释引号转义序列("")字面上它产生一个单引号。另外,以防万一逐字插入的字符串大括号转义序列({{}})没有字面解释;他们产生大括号字符。

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

或转义反斜线

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

其他资源

© www.soinside.com 2019 - 2024. All rights reserved.