Halcon视觉之家 - 51Halcon专注于机器视觉技术

 找回密码
 会员注册

QQ登录

只需一步,快速开始

扫一扫,微信登录

查看: 4818|回复: 20

[资料] C#写csv文本文件含有中文出现乱码?

[复制链接]
  • TA的每日心情
    开心
    前天 22:01
  • 签到天数: 876 天

    连续签到: 3 天

    [LV.10]以坛为家III

    190

    主题

    940

    帖子

    5684

    积分

    Rank: 9

    积分
    5684

    热心会员突出贡献切换助手验证会员最佳新人

    发表于 2018-9-1 18:15:31 | 显示全部楼层 |阅读模式

    51Halcon诚邀您的加入,专注于机器视觉开发与应用技术,我们一直都在努力!

    您需要 登录 才可以下载或查看,没有帐号?会员注册

    x
    利用StreamWriter写文件到文件中,中文全部变成了乱码:
    TIM截图20180901175956.png

    怎么解决呢???
    利用UE查看文件编码情况:
    TIM截图20180901180102.png
    去查查我们的第一个字符的所有编码对比下:
    TIM截图20180901180448.png
    TIM截图20180901180428.png
    发现好像是UTF-8编码的?

    查询MSDN看看:
    TIM截图20180901180702.png

    确实默认是UTF-8编码,汉字一般三个字节存储,在我们的电脑上(默认是本地的GBK编码)打开,肯定乱码了!

    而且,我的字符串中除了中文还有英文的逗号,也就是说汉字占两个字节,但是英文必须是一个字节,那设置GBK或者GB2312不就好了么?
    结果发现Encoding里面没有这个编码,查看了ASCII和Unicode、UTF系列编码,都不符合当前的情况?至于为什么不符合我们慢慢谈论就可以了。

    那就只有默认编码了,这个默认编码就是指跟随我们的系统的编码,还好我们都是中文编码,所以这个应该就可以!
    写流对象设置文件流属性为:StreamWriter sw = new StreamWriter(fs,Encoding.Default); 默认编码;

    编译过后,写一个文件看看
    TIM截图20180901181220.png
    发现中文的第一个字的编码已经变成2个字节了(D0 F2正好是我们第一个字的GBK编码),也就是默认的GBK生效了!
    TIM截图20180901181202.png
    至此,文件编码就修正过来了!
    当然,为了全球通用的话,改成UTF8最好不过!
  • TA的每日心情

    2018-9-2 10:26
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    0

    主题

    10

    帖子

    25

    积分

    Rank: 1

    积分
    25

    切换助手验证会员

    发表于 2018-9-2 09:46:18 | 显示全部楼层
    编码格式utf-8设置一下
  • TA的每日心情

    2018-10-13 18:07
  • 签到天数: 24 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    7

    主题

    52

    帖子

    145

    积分

    Rank: 6Rank: 6

    积分
    145
    发表于 2018-9-2 09:54:23 | 显示全部楼层
    写文本文件含有中文出现乱码?
  • TA的每日心情

    2019-1-2 10:57
  • 签到天数: 18 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    0

    主题

    33

    帖子

    83

    积分

    Rank: 6Rank: 6

    积分
    83
    发表于 2018-9-2 10:17:25 | 显示全部楼层
    学习一下
  • TA的每日心情

    2020-1-8 11:34
  • 签到天数: 59 天

    连续签到: 1 天

    [LV.5]常住居民I

    0

    主题

    31

    帖子

    102

    积分

    Rank: 1

    积分
    102
    发表于 2018-9-2 10:23:32 | 显示全部楼层
    乱码.png
    加上Ecoding.UTF8就可以了,否则会出现乱码
  • TA的每日心情

    2018-10-13 18:07
  • 签到天数: 24 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    7

    主题

    52

    帖子

    145

    积分

    Rank: 6Rank: 6

    积分
    145
    发表于 2018-9-2 12:10:57 | 显示全部楼层
    本帖最后由 芜湖小肖 于 2018-9-2 12:12 编辑

    补充:1、在学员使用的Tools类里面,2、Log方法后面,true后加, Encoding.UTF8即可。3、换成题主的方式也可以,即在我们学员使用的Tools方法里面找到log方法添加, Encoding.Default亲测可以(StreamWriter SW1 = new StreamWriter(strPath,true, Encoding.Default);)。原理方面参看题主。
  • TA的每日心情
    无聊
    5 天前
  • 签到天数: 765 天

    连续签到: 1 天

    [LV.10]以坛为家III

    33

    主题

    226

    帖子

    1579

    积分

    Rank: 7Rank: 7Rank: 7

    积分
    1579

    活跃会员优秀版主切换助手验证会员

    发表于 2018-9-3 08:45:05 | 显示全部楼层
    改变一下编码格式即可
  • TA的每日心情

    2019-3-30 18:28
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    1

    主题

    24

    帖子

    45

    积分

    Rank: 1

    积分
    45
    发表于 2018-10-28 16:47:16 | 显示全部楼层
    编码不对吧
  • TA的每日心情

    2021-4-8 13:29
  • 签到天数: 33 天

    连续签到: 1 天

    [LV.5]常住居民I

    1

    主题

    46

    帖子

    541

    积分

    Rank: 6Rank: 6

    积分
    541
    发表于 2018-11-19 07:47:36 | 显示全部楼层
    学习学恶习
    您需要登录后才可以回帖 登录 | 会员注册

    本版积分规则

    视觉培训招生
    大恒图像X

    建议您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流浏览器浏览本网站

    51Halcon会员技术交流会员技术交流 | 51Halcon官方客服咨询官方客服咨询 | Halcon切换助手使用反馈切换助手使用

    算子查询| 申请友链| 小黑屋| 手机版| Archiver|

    © 2015-2021 51Halcon机器视觉  X3.4  粤ICP备15095995号 粤公网安备44030602000670号

    快速回复 返回顶部 返回列表