Re: [問題] Big5 轉 UTF-8

看板C_Sharp (C#)作者 (耐心等待)時間10年前 (2015/06/17 10:46), 編輯推噓2(203)
留言5則, 3人參與, 最新討論串2/5 (看更多)
※ 引述《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

06/17 21:59, , 1F
你的args在.NET runtime抓進來時已經變成UTF16-LE了...
06/17 21:59, 1F

06/18 10:07, , 2F
你試試看逐步執行,應該可以看到文字編碼
06/18 10:07, 2F

06/18 11:41, , 3F
老實說看不懂你在轉什麼,args.Message type是string的話
06/18 11:41, 3F

06/18 11:42, , 4F
本來就沒有編碼問題根本不用轉
06/18 11:42, 4F

06/18 11:44, , 5F
有編碼的是binary資料(byte[]),不是string
06/18 11:44, 5F
文章代碼(AID): #1LWD-XhW (C_Sharp)
討論串 (同標題文章)
本文引述了以下文章的的內容:
1
6
以下文章回應了本文
完整討論串 (本文為第 2 之 5 篇):
1
6
文章代碼(AID): #1LWD-XhW (C_Sharp)