读取乱码文件
wzyxs 2021-04-19 07:56:37 问题是这样的:
一个gb2312编码的文本文件,每对双引号包含一个字符串值,在内容有乱码的情况下怎么正确识别双引号位置?
我开始是这么读的:
File.ReadAllLines(filePath, Encoding.GetEncoding(encoding));
出现意外的是下面这种情况:
比如前10个字节都能在ascii字符集或gb字符集里找到对应字符,其中第一个字节是前双引号,到这里一切正常,而第11个字节并非ascii字符、也不是gb字符的第一字节,这时由于gb2312编码每字符占两字节,ReadAllLines函数会把第11和12字节当作一个字符处理,返回一个'?'字符,如果第12字符恰好是后双引号,这个双引号就会被吞掉,请问有什么文件读取方式可以避免这种情况吗?(不想以byte去读文件一字节一字节的去识别.....
我觉得会有解决办法的原因,是因为用vs code以gb2312打开这个文件的话,只有第11字符会变'?',第12字符的双引号会被保留,所以想跟大家取个经,怎么才能达到vs code的效果