[問題] 有關UTF8編碼

看板C_and_CPP作者 (咖哩獸)時間11年前 (2014/12/11 21:18), 編輯推噓0(008)
留言8則, 4人參與, 最新討論串1/2 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 爬了一下版上大多是轉換編碼 可是我的問題有點不同 我會先用A.exe讀一個UTF8的txt 然後將其中三個字串作為變數 執行另一個B.exe(也就是這次想問的) 這個B.exe是想將這三個字串寫入一個新的txt 並同樣以UTF8編碼 也就是說 我一開始讀進來的字串本身就是以UTF8編碼 我是以為 既然我讀的就是UTF8 我只要用BOM讓新建的txt是UTF8 應該就可以了 (我有看到UTF8不須BOM 但是給他BOM應該也沒關係吧) 但結果部分中文可以正常顯示 部分卻是亂碼 有點不明白為何 餵入的資料(Input): UTF8字串: 82 宜蘭 蘭陽橋 預期的正確結果(Expected Output): 82 宜蘭 蘭陽橋 錯誤結果(Wrong Output): 82 宜蘭 (亂碼)陽(亂碼) 程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/66aQqPwJ 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.241.202 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1418303894.A.0DE.html

12/12 02:11, , 1F
其實照 UTF8 規格是「不能」給 BOM
12/12 02:11, 1F

12/12 02:13, , 2F
比對兩份文字檔的 binary code
12/12 02:13, 2F

12/12 02:16, , 3F
重看之後發現好像其實沒有禁止 BOM... sorry (有點離題)
12/12 02:16, 3F

12/12 13:19, , 4F
你的程式碼我在linux下用utf8的環境執行是正常的,不過
12/12 13:19, 4F

12/12 13:23, , 5F
windows的cmd環境應該沒支援utf8,我想應該是字串被當成
12/12 13:23, 5F

12/12 13:24, , 6F
還有個可能是 CRLF 問題
12/12 13:24, 6F

12/12 13:24, , 7F
系統語系處理(big5之類的)出的問題
12/12 13:24, 7F

12/13 10:04, , 8F
原來是OS 感謝~
12/13 10:04, 8F
文章代碼(AID): #1KYPcM3U (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1KYPcM3U (C_and_CPP)