gpt4 book ai didi

C# File.ReadallText 做奇怪的事情

转载 作者:行者123 更新时间:2023-11-30 13:34:45 51 4
gpt4 key购买 nike

我正在尝试做的是读取文件中的所有文本,如果它包含单词“Share”,则执行正则表达式。这是代码:

DirectoryInfo dinfo = new DirectoryInfo(@"C:\Documents and Settings\g\Desktop\123");
FileInfo[] Files = dinfo.GetFiles("*.txt");
foreach (FileInfo filex in Files)
{
string contents = File.ReadAllText(filex.FullName);
string matchingcontants = "Share";
if (contents.Contains(matchingcontants))
{
string sharename = Regex.Match(contents, @"\+(\S*)(.)(.*)(.)").Groups[3].Value;
File.AppendAllText(@"C:\sharename.txt", sharename + @"\r\n");
}

}

当我调试时,我得到...内容 = "\r\0\n\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0 =\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0=\0\r\0\n\0+\0S\0h\0a\0r\0e\0\0\\0\\0j\05\02\0\\0w\0w\0w\0_\0O\0n\0t\

\0S\0h\0a\0r\0e\

不分享。有什么提示吗?提示或建议?

最佳答案

看起来您有一个保存为 UTF-16 的文件(即 Encoding.Unicode)。使用正确的编码读取文件,应该一切正常。

幸运的是有一个 File.ReadAllText 的重载,它需要一个编码:

string contents = File.ReadAllText(filex.FullName, Encoding.Unicode);

不幸的是,这将对 不是 UTF-16 的文件做错误的事情。虽然有猜测编码的启发式方法,但理想情况下,您应该在打开文件之前知道编码。

关于C# File.ReadallText 做奇怪的事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2239968/

51 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com