[问题] txt档案输出到另一个文字档有乱码

楼主: jayzhuang (Jay)   2019-08-14 11:23:00
开发平台(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
作者: moebear (萌熊)   2019-08-14 11:27:00
/a/
作者: nh60211as   2019-08-14 12:10:00
你的文件应该是utf-16格式的,不能用你那些读取方式参考这个解答 https://stackoverflow.com/a/10504278格式我不太了解可能有错,在Notepad++上是UCS-2 LE BOM
作者: eye5002003 (下一夜)   2019-08-14 12:55:00
英文字没有变乱码,所以先确认格式是big5还是utf-8吧也许单纯只是文字编辑器误把big5当unicode解读而已

Links booklink

Contact Us: admin [ a t ] ucptt.com