C# 如何检测新行字符?

C# 如何检测新行字符?,c#,unicode,character-encoding,newline,C#,Unicode,Character Encoding,Newline,我有一个.txt文件,其中的文本分为若干行。但是,在我使用C#循环之后,所有字符都通过下面的代码 public static void printChars(string text) { char[] myChars = text.ToCharArray(); foreach (char ch in myChars) { System.Console.Write(ch + @" - \u" + ((int)ch).ToString("X4") + ", "

我有一个.txt文件,其中的文本分为若干行。但是,在我使用C#循环之后,所有字符都通过下面的代码

public static void printChars(string text)
{
    char[] myChars = text.ToCharArray();
    foreach (char ch in myChars)
    {
        System.Console.Write(ch + @" - \u" + ((int)ch).ToString("X4") + ", ");
    }
    System.Console.WriteLine();
}

问题是我看不到任何新行字符(例如,u000A)或其他东西,因为有很多文本以新行(例如,u000D)开头。如何检测这种unicode字符?

最明显的解释是您正确编写了代码,并使用StreamReader读取了文本文件。它的ReadLine()方法返回文件中的一行文本,不带行终止符。非常重要的是,它是这样工作的,线路终端没有很好的标准化

它不是转换文件内容的唯一方式,它的编码也很重要。另一个没有很好标准化的细节,仍然有很多文本文件没有使用utf-8


如果要查看文件中的原始字节,则必须使用FileStream。字节[]而不是字符串。

这与您的问题无关,但您可以直接迭代
字符串文本
变量,而无需创建相应的
char[]
调用
tocharray()
foreach(char ch in text)
产生与代码相同的结果问题是我看不到任何新行字符或其他什么东西这意味着什么?什么事情没有发生,而你认为应该发生?请澄清您的问题。我不太明白您需要从代码中获得什么。您是否试图识别Unicode中可用的每种“新行”?如果是这样的话,我可以期望检测到所有隐藏字符,如“u000A”。