【发布时间】:2015-09-29 20:48:53
【问题描述】:
当存在特殊字符时,我对如何在 C# 中读取和写入文本文件有点迷茫。我正在编写一个简单的脚本,对包含“¦”字符作为分隔符的 .txt 数据文件进行一些清理。
foreach (string file in Directory.EnumerateFiles(@"path\raw txt","*.txt"))
{
string contents = File.ReadAllText(file);
contents = contents.Replace("¦", ",");
File.WriteAllText(file.Replace("raw txt", "txt"), contents);
}
但是,当我在 Notepad++ 中打开 txt 文件时,分隔符现在是 �。到底发生了什么?这个字符(¦)编码甚至是什么/我将如何确定?我尝试添加如下内容:
string contents = File.ReadAllText(file, Encoding.UTF8);
File.WriteAllText(file.Replace("raw txt", "txt"), contents, Encoding.UTF8);
【问题讨论】:
-
我相信 Notepad++ 会显示大多数这样的特殊字符。
-
@James_Parsons 在运行脚本之前,分隔符在 Notepad++ 中显示得很好
-
文件从何而来?基本上,您需要知道它的编码并确保正确阅读它。
-
为什么有人反对这个?对于不需要处理字符编码的人(很多人)来说,这是一个非常好的问题。可以帮助其他在类似问题上苦苦挣扎的人。所以,+1
标签: c#