※ 引述《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));
这样该档案可以使用记事本正常读取