[問題] txt檔案輸出到另一個文字檔有亂碼

看板C_and_CPP (C/C++)作者 (Jay)時間5年前 (2019/08/14 11:23), 5年前編輯推噓-1(015)
留言6則, 3人參與, 5年前最新討論串1/1
開發平台(Platform): (Ex: Win10, Linux, ...) Windows10 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) VS2019 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 我透過指令顯示關於群組原則的細項設定,轉當出來是一個文字檔案 但要把此資料輸出到另一個新文字檔的時候,卻有亂碼產生 餵入的資料(Input): 這是透過指令 secedit轉出的 本機群組原則-安全性設定的內容: 檔名自訂:Pwdword.txt https://imgur.com/VEuyEQN
預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 原本我只想要轉述上圖紅色框框內容就好,但保險起見,我先一次輸出全部的內容 到檔名:Pwd.txt 結果變成每隔一行就是亂碼: https://imgur.com/Wvtv7Tw
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) ofstream Write_Pwd_Txt(GetFilePath() + "Pwd.txt", ios::app); //自動新增Pwd.txt ifstream Read_Pwd_Txt(GetFilePath() + "Pwdword.txt"); //讀取轉檔解析出來的安全性設定文字檔 string Pwd_Txt; //一行一行讀取,並寫入到Pwd.txt while (!Read_Pwd_Txt.eof()) { getline(Read_Pwd_Txt,Pwd_Txt); Write_Pwd_Txt << Pwd_Txt << endl; } Read_Pwd_Txt.close(); //讀取完要關閉 補充說明(Supplement): 有試過遠端Debug(只有Windows專業版以上才有本機群組原則),但觀察看內容, 它好像是跳過下一行該顯示的文字內容(亂碼原本的文字),完全沒有出現過 一開始的顯示: https://imgur.com/32XSw4G
第一行顯示:[Unicode] ,有出現 https://imgur.com/k8MeLB9
https://imgur.com/bKC3gZR
第二行本來有輸出:Unicode=yes,但她不知道為什麼變成亂碼 https://imgur.com/9YFg6st
然後就到第三行:[System Access] 又正常了..... https://imgur.com/fVdi8bx
https://imgur.com/5xjNBVR
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.102.123 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1565752984.A.8E3.html

08/14 11:27, 5年前 , 1F
/a/
08/14 11:27, 1F
※ 編輯: jayzhuang (218.161.102.123 臺灣), 08/14/2019 12:07:18 Sorry,我用得太急! 已更正! ※ 編輯: jayzhuang (218.161.102.123 臺灣), 08/14/2019 12:08:23

08/14 12:10, 5年前 , 2F
你的文件應該是utf-16格式的,不能用你那些讀取方式
08/14 12:10, 2F

08/14 12:10, 5年前 , 3F
08/14 12:10, 3F

08/14 12:15, 5年前 , 4F
格式我不太了解可能有錯,在Notepad++上是UCS-2 LE BOM
08/14 12:15, 4F

08/14 12:55, 5年前 , 5F
英文字沒有變亂碼,所以先確認格式是big5還是utf-8吧
08/14 12:55, 5F

08/14 12:56, 5年前 , 6F
也許單純只是文字編輯器誤把big5當unicode解讀而已
08/14 12:56, 6F
謝謝各位大大,已修改問題! 是我原本指令執行出來的安全性設定文字檔案真的編碼為ucs-2的關係 我轉檔之後再重新讀一遍,確認可行。 ※ 編輯: jayzhuang (218.161.102.123 臺灣), 08/15/2019 10:22:15
文章代碼(AID): #1TKtwOZZ (C_and_CPP)
文章代碼(AID): #1TKtwOZZ (C_and_CPP)