C#读txt文件部分字符是乱码

qq_20849853 2016-07-20 05:07:11
同一个文件用php读取,却是正常的,怎么破?
...全文
766 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
superflyingpigg 2017-12-28
  • 打赏
  • 举报
回复
可能跟你读取时设置的 byte数组长度有关系,只是猜测 试试2048
lanserzhao 2016-07-21
  • 打赏
  • 举报
回复
public static bool FileExistsFullPath(string fileFullPath) { fileFullPath= fileFullPath.Replace("/", "\\").Replace("///", "\\").Replace("\\\\", "\\"); if (File.Exists(fileFullPath)) return true; else return false; }
lanserzhao 2016-07-21
  • 打赏
  • 举报
回复
public static string ReadFileFullPath(string file) { string rec = ""; if (FileExistsFullPath(file)) { try { System.IO.StreamReader sr = new System.IO.StreamReader(file, System.Text.Encoding.Default); rec = sr.ReadToEnd(); sr.Close(); } catch (Exception ex) { IOUtil.LogErr( "方法:ReadFileFullPath" + ex.Message.ToString()); } } return rec; }
qq_20849853 2016-07-21
  • 打赏
  • 举报
回复
引用 23 楼 sp1234 的回复:
lz 几乎发帖从不贴代码吗?发贴不贴代码的人,发的帖子有其共性。都是拿一个简单问题考大家,然后即使有多个代码(包括 File.ReadAllLines ) 都是基于 UTF8 的,仍然“无效”。 以后发帖,先贴自己的代码,可以省去许多事儿。
他们写的代码,我都试了,存在同样的问题
qq_20849853 2016-07-21
  • 打赏
  • 举报
回复
引用 22 楼 xuzuning 的回复:
            var fn = @"D:\我的文档\Downloads\8764.txt";
            var d = File.ReadAllLines(fn);
            for (int i = 75; i < 85; i++)
            {
                Console.WriteLine("{0} {1}", i, d[i]);
            }
没有任何问题!
搞不懂了,和什么底层的东西有关嘛
黑娃 2016-07-21
  • 打赏
  • 举报
回复
我一般是用Encoding.Default,都是对的
事理 2016-07-21
  • 打赏
  • 举报
回复
使用默认编码Encoding.Default或Encoding.UTF-8试试
  • 打赏
  • 举报
回复
lz 几乎发帖从不贴代码吗?发贴不贴代码的人,发的帖子有其共性。都是拿一个简单问题考大家,然后即使有多个代码(包括 File.ReadAllLines ) 都是基于 UTF8 的,仍然“无效”。 以后发帖,先贴自己的代码,可以省去许多事儿。
xuzuning 2016-07-21
  • 打赏
  • 举报
回复
            var fn = @"D:\我的文档\Downloads\8764.txt";
var d = File.ReadAllLines(fn);
for (int i = 75; i < 85; i++)
{
Console.WriteLine("{0} {1}", i, d[i]);
}

没有任何问题!
lanserzhao 2016-07-21
  • 打赏
  • 举报
回复
恩。你再研究研究,记得结贴给分
qq_20849853 2016-07-21
  • 打赏
  • 举报
回复
引用 19 楼 lanserzhao 的回复:
ReadFile 我上面已经发了 System.IO.StreamReader sr = new System.IO.StreamReader(file, System.Text.Encoding.UTF8); rec = sr.ReadToEnd(); sr.Close(); 用的utf8
之前你发代码的时候,我确实运行过,有乱码的
引用 19 楼 lanserzhao 的回复:
ReadFile 我上面已经发了 System.IO.StreamReader sr = new System.IO.StreamReader(file, System.Text.Encoding.UTF8); rec = sr.ReadToEnd(); sr.Close(); 用的utf8
搞不懂了,同样的代码在我这运行,就是不行呀
lanserzhao 2016-07-21
  • 打赏
  • 举报
回复
ReadFile 我上面已经发了 System.IO.StreamReader sr = new System.IO.StreamReader(file, System.Text.Encoding.UTF8); rec = sr.ReadToEnd(); sr.Close(); 用的utf8
lanserzhao 2016-07-21
  • 打赏
  • 举报
回复
第11次循环,也是对的
qq_20849853 2016-07-21
  • 打赏
  • 举报
回复
引用 16 楼 lanserzhao 的回复:
你的txt,我用utf8,无任何乱码
IOUtil.ReadFile可否看看怎么写的
lanserzhao 2016-07-21
  • 打赏
  • 举报
回复
你的txt,我用utf8,无任何乱码
qq_20849853 2016-07-21
  • 打赏
  • 举报
回复
引用 14 楼 xuzuning 的回复:
怎么解决尚不知道,你或许可以把文件放到网盘上,以供分析 乱码出现在 外部监控测试, 的 控 字处,但几乎每一行都有这几个字,别处怎么就不乱码呢?
可以看看这个文件,http://pan.baidu.com/s/1kVGYjTd
xuzuning 2016-07-21
  • 打赏
  • 举报
回复
怎么解决尚不知道,你或许可以把文件放到网盘上,以供分析 乱码出现在 外部监控测试, 的 控 字处,但几乎每一行都有这几个字,别处怎么就不乱码呢?
qq_20849853 2016-07-21
  • 打赏
  • 举报
回复
unicode,default都是乱码
qq_20849853 2016-07-21
  • 打赏
  • 举报
回复
引用 6 楼 xuzuning 的回复:
为什么会丢了一个字节呢 从你截图上看,是 gbk 的 控 丢了第一个字节
怎么解决呢?
大地主刘发财 2016-07-20
  • 打赏
  • 举报
回复
引用 3 楼 qq_20849853 的回复:
从文本文件读出的话是不是用的Unicode编码?好多用记事本保存的文本文件都会变成Unicode
加载更多回复(6)

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧