Re: [问题] Big5 转 UTF-8

楼主: fo40225   2015-06-19 21:54:17
※ 引述《FT6034 (耐心等待)》之铭言:
: 事情是这样发展的...
: 主程式是外国人针对某游戏写的,透过API取得聊天室讯息
: 原程式储存资讯至 txt 档,编码是 UTF-8
: 输入 "测试" , txt 档里头记录 "皜祈岫" ,所以我猜测 args.Message 是 BIG5
问题很简单 原来的程式没有问题 是因为那个txt没有BOM所以记事本把档案当作Big5读取
现在你有两种做法
1. 档头加上BOM 其他程式码不变 通通不要带编码 这样.NET默认使用UTF-8写入档案
var stream = new StreamWriter(_path, true);
var stream = new StreamWriter(_path, true, Encoding.UTF8);
这两行是一样的
2. 指定使用Big5输出
var stream = new StreamWriter(_path, true, Encoding.GetEncoding(950));
这样该档案可以使用记事本正常读取
作者: FT6034 (耐心等待)   2015-06-20 09:36:00
谢谢指教,“UTF-16怎么输出”我再研究看看@@"
楼主: fo40225   2015-06-20 11:23:00
不要管UTF-16 那不是你该管的 你要做的是用最一开始会乱码的原始码 加上第二种解法就行了

Links booklink

Contact Us: admin [ a t ] ucptt.com