英语作文,做c
首先是问题。 使用C#分析文本文件时,出现了乱码,但不是中文乱码。 大致如下。
原文:
乍一看没关系。 让我们来看看分析。
横线乱码了! 有一部分数据和中文,但中文没有乱码。
我是这样写的。 放上图片吧。 放上错误代码也没有意义:
解决流程1、在网上查询后发现,都是在new StreamReader的时候添加代码,Encoding.Default。 使用系统的默认编码格式就可以了。 芊,骗人鬼。 也许是大家面临的问题不同。
2、分析了文件的编码格式。 我用系统文本编辑器打开,另存为并查看了默认的编码格式。
ANSI? 什么,不重要。 我用这个格式读不就行了吗,我暗自高兴。
streamreader Sr=new streamreader (realpath,Encoding.AN? )
不能点击。 在代码库中找不到此代码。
3、为了解决问题,我先保存文件,另存为UTF-8后,一切正常了。
4、有时间的话,我想解决这个问题。
我用UTF-8、Unicode、GBK……解码失败了。 特别是GBK,让我抓住了异常:
然后我去解决了GBK不支持的问题,o(_) o哈哈~
感谢一位叫WebEnh的朋友的报道。 NET Core使用GBK GB2312代码报告错误。
我没有用其中的方法解决我的问题,但间接地解决了我的问题。 因为我编写并测试了C#的控制台APP应用程序。
执行文件导入之前,请注册代码库,然后使用GBK进行导入。
encoding.register provider (codepagesencodingprovider.instance; streamreader Sr=new streamreader (realpath,encoding.getencoding('gbk ' ) ); 问题解决了。
然后,我进行了四种代码格式的读取测试:
解决问题!
在下面贴上我的调试代码:
如果class program { staticvoidmain (string [ ] args ) /路径是相对路径,则不上载文件。 各位可以自己写几个编码格式的文件来测试string realpath=@ '.(第四次测量- ANSI.dat ) newmethod(realpath; realPath=@'.\第一次测量- Unicode.dat '; 新方法(realpath; realPath=@'.\第二次测量- GB2312.dat '; 新方法(realpath; realPath=@'.\第二次测量- UTF_8.dat '; 新方法(realpath; } privatestaticvoidnewmethod (string realpath ) try ) /文件名intstart=realpath.lastindexof (() ); int end=realPath.Length - 1; console.writeline (realpath.substring ) start,end - start 1; //encoding.register provider (codepagesencodingprovider.instance )进行乱码处理; streamreader Sr=new streamreader (realpath,encoding.getencoding ) (gbk ) ) { string line; while((line=Sr.readline ) )!=null}{console.writeline(line ); }}catch(exceptione ) thrownewexception ) dat示例文件分析异常(e.Message ); ((谢谢您的浏览) ((((() )