作者FT6034 (耐心等待)
看板C_Sharp
标题Re: [问题] Big5 转 UTF-8
时间Wed Jun 17 10:46:54 2015
※ 引述《FT6034 (耐心等待)》之铭言:
: → soup514: 没做Encoding.Convert 06/14 16:04
: → fo40225: var newByt = Encoding.Convert(Encoding. 06/14 22:58
: → fo40225: GetEncoding(950), Encoding.UTF8, byt); 06/14 22:58
: → fo40225: var utf8Str = Encoding.GetEncoding(65001).GetString( 06/14 22:59
: → fo40225: newByt); 06/14 22:59
: 推 leicheong: Console的Unicode支援有问题的. 写进档案再开来看吧. 06/15 20:57
------------------------------------------------------------------------------
byte[] byt = Encoding.GetEncoding(950).GetBytes(args.Message);
var newByt = Encoding.Convert(Encoding.GetEncoding(950), Encoding.UTF8, byt);
var utf8Str = Encoding.GetEncoding(65001).GetString(newByt);
stream.WriteLine("[" + Utils.FormatTime(Game.ClockTime) + "]" +
" sender: " + args.Sender.Name + " says: " + utf8Str);
stream.Close();
------------------------------------------------------------------------------
输入:「测试」 -> 抓到:「皜祈岫」
文字档记录:[04:01] sender: User says: 皜祈岫
@@"a
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.160.61.142
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1434509217.A.AE0.html
1F:推 leicheong: 你的args在.NET runtime抓进来时已经变成UTF16-LE了... 06/17 21:59
2F:推 HwangTW: 你试试看逐步执行,应该可以看到文字编码 06/18 10:07
3F:→ ssccg: 老实说看不懂你在转什麽,args.Message type是string的话 06/18 11:41
4F:→ ssccg: 本来就没有编码问题根本不用转 06/18 11:42
5F:→ ssccg: 有编码的是binary资料(byte[]),不是string 06/18 11:44