看板 C_Sharp 關於我們 聯絡資訊
※ 引述《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://www.ptt.cc/bbs/C_Sharp/M.1434509217.A.AE0.html
leicheong: 你的args在.NET runtime抓進來時已經變成UTF16-LE了... 06/17 21:59
HwangTW: 你試試看逐步執行,應該可以看到文字編碼 06/18 10:07
ssccg: 老實說看不懂你在轉什麼,args.Message type是string的話 06/18 11:41
ssccg: 本來就沒有編碼問題根本不用轉 06/18 11:42
ssccg: 有編碼的是binary資料(byte[]),不是string 06/18 11:44