看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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
moebear: /a/ 08/14 11:27
※ 編輯: jayzhuang (218.161.102.123 臺灣), 08/14/2019 12:07:18 Sorry,我用得太急! 已更正! ※ 編輯: jayzhuang (218.161.102.123 臺灣), 08/14/2019 12:08:23
nh60211as: 你的文件應該是utf-16格式的,不能用你那些讀取方式 08/14 12:10
nh60211as: 參考這個解答 https://stackoverflow.com/a/10504278 08/14 12:10
nh60211as: 格式我不太了解可能有錯,在Notepad++上是UCS-2 LE BOM 08/14 12:15
eye5002003: 英文字沒有變亂碼,所以先確認格式是big5還是utf-8吧 08/14 12:55
eye5002003: 也許單純只是文字編輯器誤把big5當unicode解讀而已 08/14 12:56
謝謝各位大大,已修改問題! 是我原本指令執行出來的安全性設定文字檔案真的編碼為ucs-2的關係 我轉檔之後再重新讀一遍,確認可行。 ※ 編輯: jayzhuang (218.161.102.123 臺灣), 08/15/2019 10:22:15