C# 字符文字编译错误

C# 字符文字编译错误,c#,C#,我下载了一个库来处理RTF。它不会编译。它在字符文本上失败,我无法理解它是什么 消息来源发布在。问题出现在RtfNodeGroup.cs中,它位于以下代码的末尾myStr.Append('¨C') 当我使用od查看字符序列时,它是ASCII“250C” 我知道文本中有两个字符。这就是代码在SourceForge上发布的方式。上面讨论的代码块也失败了,但我用文本替换emdash,如下所示: if( node.Keyword == "emdash") { AddStr

我下载了一个库来处理RTF。它不会编译。它在字符文本上失败,我无法理解它是什么

消息来源发布在。问题出现在RtfNodeGroup.cs中,它位于以下代码的末尾<代码>myStr.Append('¨C')

当我使用od查看字符序列时,它是ASCII“250C”

我知道文本中有两个字符。这就是代码在SourceForge上发布的方式。上面讨论的代码块也失败了,但我用文本替换emdash,如下所示:

    if( node.Keyword == "emdash")
    {
        AddString( myStr , buffer );
        myStr.Append( '\u2014');
        continue ;
    }
你认为是什么

else if( node.Type == RTFNodeType.Control || node.Type == RTFNodeType.Keyword )
{
    if( node.Keyword == "tab" )
    {
        AddString( myStr , buffer );
        myStr.Append( '\t' );
        continue ;
    }

    if( node.Keyword == "emdash")
    {
        AddString( myStr , buffer );
        myStr.Append( '¡ª');
        continue ;
    }

    if( node.Keyword == "" )
    {
        AddString( myStr , buffer );
        myStr.Append( '¨C' );
        continue ;
    }
}

我相信你用错误的编码打开了文件。当您以某种形式的ASCII+打开它时,它似乎保存在UTF-8中。尝试将代码文件强制为UTF-8,在IMO中应该可以正常工作

编辑:好的,我实际上下载了源代码并进行了检查,我相信它可能是意外地被双重编码的。如果这些是唯一的问题,只需使用正确的字符替换字符串内容(理想情况下使用
\u2014
表示法,它不依赖ASCII以外的代码文件编码)


最终编辑:作者的名字向我透露了消息。该文件实际上是用中文(大陆)编码(
windows-936
),而不是UTF-8。将文件转换为UTF-8,您应该会没事的。在正确的编码中,
-
变成
-
等。第二个实际上是
-

如果你能说出你的实际目标会更好吗?这听起来像是一个单引号,至少有2个字符。我的实际目标是确定作者的意思,并替换适当的字符文字以使代码能够编译。正如@HamletHakobyan所说,尝试将每个字符替换为“.”表示字符,“表示字符串”。如果这是来自实际的源代码,我可能会找一个不同的图书馆。如果您在编译后遇到其他更痛苦的问题,我不会感到惊讶。谢谢Luaan。当我这样做时,emdash被编码为“?”,第二个文本被编码为“?C”。搜索这些字符不会产生任何结果。我已经完成了emdash(\u2014),但没有提示其他字符可能是什么。空字符串?谢谢你花时间看这个,Luaan。@user1268144检查我的最新编辑,这个文件实际上是用中文编码保存的。谜团解开:)我不能确定,但第二个字符是破折号还是连字符?@user1268114我不知道,我只是照着原样复制了这个字符。您可以用同样的方法将其复制到代码文件中。或者,正如我所建议的,使用一些文件编码工具将文件从
windows-936
转换为
utf-8