首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 用StreamReader如何正确编码读取文本文件并以正常格式显示
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-19 17:52:39 楼主
    现有一报表,以文本格式存在,其行与列均用 ¦(竖杠)和_(下划线)作为分隔符,小弟想将其转换为网页,用数据流读出,但是使用StreamReader Reader = new StreamReader("d://BFAMRTP.txt", System.Text.GetEncoding("GB2312"));读取后,虽然能显示,但是格式混乱,但是如果直接用IE打开该文本就显示的很好没问题,如果转为ACSII编码,格式对了,但是汉字有显示为乱码,请高手帮助小弟一下啊
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • gomoku
    • 等级:
    发表于:2008-05-19 18:00:561楼 得分:0
    显示的时候,用等宽字体(比如宋体)?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-19 18:19:582楼 得分:0
    不是字体的问题,我把网页保存成文本,在ultraedit用UTF-8转ASCII就显示正常,现在不知道如何写在程序里
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-19 18:25:343楼 得分:0
    编码问题

    StreamReader Reader = new StreamReader("d://BFAMRTP.txt", System.Text.GetEncoding("GB2312"));


    这里的gb2312要和网站输出的编码一致

    不过涉及到中文的一般只有utf8 gb2312 unicode  gbk(繁体)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-19 18:35:034楼 得分:0
    和网站是一致的,但是格式有些不对,用UTF-8是乱码
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-19 18:36:055楼 得分:0
    使用重载构造函数,
    public StreamReader(
    string path,
    bool detectEncodingFromByteOrderMarks
    )
    path
    类型:System.String

    要读取的完整文件路径。

    detectEncodingFromByteOrderMarks
    类型:System..Boolean

    指示是否在文件头查找字节顺序标记。

    可以尝试下面构造
    StreamReader Reader = new StreamReader("d://BFAMRTP.txt",true); 

    或者使用一下方式
    StreamReader Reader = new StreamReader("", System.Text.Encoding.Default);

    通过以上方式一般都能解决,不过如果解决不了,就需要指定具体的编码了,
    关于编码的相关内容,建议参考下面的文章,
    character set,character encoding和xml encoding declaration
    http://blog.csdn.net/hansoft/archive/2005/08/29/467772.aspx
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-19 20:18:136楼 得分:0
    关注
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-19 20:42:087楼 得分:0
    streamreader sr=new streamreader("这里是你的文件",system.text.encoding.default);
    richtextbox.text=sr.readtoend();
    sr.close
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zswang
    • 等级:
    发表于:2008-05-19 20:53:498楼 得分:0
    试试先
    C# code
    StreamReader Reader = new StreamReader("d://BFAMRTP.txt", Encoding.UTF8);

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-19 20:56:439楼 得分:0
    严重关注
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-19 21:32:3510楼 得分:0
    StreamReader Reader = new StreamReader("d://BFAMRTP.txt", Encoding.UTF8);--乱码
    StreamReader Reader = new StreamReader("d://BFAMRTP.txt", Encoding.default); --格式不对啊
    各位大哥汉字和英文混在一起的文本是不是读起来有问题啊,如果以ASCII读,格式正确,单无法显示汉字,如果以默认或GB2312读,可以正常显示,但是格式不正确的,还有那个文件用UE看就是正常的,用写字板看格式就变了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-19 21:38:1911楼 得分:0
    readline
    一行一行的读取
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • beblue
    • 等级:
    发表于:2008-05-19 21:50:5212楼 得分:0
    StreamReader Reader = new StreamReader("d://BFAMRTP.txt",true); 
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved