本帖最后由 诗仙·1957 于 2023-11-24 15:29 编辑
直接C#测试读取文本内容:
中文现在没有乱码正常的
然后活字格测试
相同的代码,:
public static string ReadTextFile(string filePath)
{
string encodingtype = DetectEncoding(filePath);
if (encodingtype.ToLower().Contains("utf"))
{
using (StreamReader sr = new StreamReader(filePath, Encoding.Default))
{
byte[] bytes = Encoding.Default.GetBytes(sr.ReadToEnd());
return Encoding.UTF8.GetString(bytes);
}
}
else
{
StringBuilder sb = new StringBuilder();
string[] lines = File.ReadAllLines(filePath, Encoding.GetEncoding("GB2312"));
foreach (string line in lines)
{
sb.AppendLine(line);
}
return sb.ToString();
}
}
初步测试发现活字格系统支持的编码格式十分有限:
在vs2022 windows系统中获取支持的编码发现非常的多。且包含GB2312,GB18030,所以上面测试的结果是本地能读取windows记事本保存的文本内容
用同样的代码在活字格运行测试结果是:
没有gb2312 以及gb18030所以一旦当使用这个
StringBuilder sb = new StringBuilder();
string[] lines = File.ReadAllLines(filePath, Encoding.GetEncoding("GB2312"));
foreach (string line in lines)
{
sb.AppendLine(line);
}
return sb.ToString();
代码去读取,直接就提示
GB2312' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method. (Parameter 'name')
何解????这个似乎需要官方出手了???
|