我设法加载了csv,现在想要更改一些字符串然后再次保存。
第一个问题:他不想将文本更改为' 0。仅替换" 4"用" 0"有效,但从来没有我的字符串超过1个字符。
第二个问题:我删除了所有' 到""的最后一个问题。在编辑器中打开csv时,它会显示一些奇怪的亚洲字符,而不是什么。 (䈀攀稀甀最猀瀀爀)
我的csv中没有空格。 csv看起来像
.....&#34 ;;" ++ 49 然后更多的随机数字,依此类推。
这只是找到++ 49的部分。
相关代码:
Encoding ansi = Encoding.GetEncoding(1252);
foreach (string file in Directory.EnumerateFiles(@"path comes here, "*.csv"))
{
string text = File.ReadAllText(file, ansi);
text = text.Replace(@"++49", "'0");
text = text.Replace("+49", "'0");
text = text.Replace(@"""", "");
File.WriteAllText(file, text, ansi);
}
我做了一些根本错误的事情吗?
修改:它的外观:";"++49<morenumbers>";;
它应该是什么样的:;0<morenumbers>;;
答案 0 :(得分:0)
正如人们在评论中提到的,问题在于您的文件编码解码。所以在这种情况下你可以试试这个:
foreach(string file in Directory.EnumerateFiles(@"path comes here","*.csv"))
{
Encoding ansi;
using (var reader = new System.IO.StreamReader(file, true))
{
ansi = reader.CurrentEncoding; // please tell what you have here ! :)
}
string text = File.ReadAllText(file, ansi);
text = text.Replace(@"++49", "'0");
text = text.Replace(@"+49", "'0");
text = text.Replace(@"""", "");
File.WriteAllText(file, text, ansi);
}
对我而言,我能够设置的所有格式都可以正常工作。然后,您不必将编码设置为硬编码值