※ 引述《FT6034 (耐心等待)》之铭言:
: byte[] b = Encoding.GetEncoding("UTF16-LE").GetBytes(args.Message);
: byte[] c = Encoding.Convert(Encoding.GetEncoding("UTF16-LE"),
: Encoding.UTF8, b);
: string utf8Str = Encoding.UTF8.GetString(c);
你在这一行把他还原成UTF16LE了...
不要转String, 直接把byte array写下去吧.
另外要在notepad可以正常辨认UTF8你得先把UTF8的BOM (0xEFBBBF)写进stream
的开始位置.
如果不写用web browser或Notepad++那类软件开也可以自动辨认到.
: stream.WriteLine("[" + Utils.FormatTime(Game.ClockTime) + "]" +
: " sender: " + args.Sender.Name + " says: " + utf8Str);
: stream.Close();
: