L
lb3141
Unregistered / Unconfirmed
GUEST, unregistred user!
这个问题我提过2次,没人回答出正确答案,现在从提,解决问题的送200分,不够在加!
读取.reg文件的问题,如果reg文件中有中文,就出现乱码,如果全是字母,则正确,不知道是怎么回事?(*文件一定要从注册表导出,如果手工建,这虽然内容一样,但其内在格式不一样。导出的文件若没有汉字,你可以随意加几个汉字,那读出的结果就不同了,有乱码。手工创建的reg文件就是好的)
导出的.reg文件如下:(我把导出文件手动添加了汉字)
++++++++++++++++++++++++++++++++++++++++++++++
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE/SOFTWARE/ODBC/AAA]
"Translator"="C://WINDOWS//system32//AAA32.dll"
"Setup"="C://WINDOWS//system32//BBB32.dll"
"UsageCount"="这是汉字,读出后有乱码"
"KEY"="ABC"
++++++++++++++++++++++++++++++++++++++++++++++
以下是用Delphi实现的读取代码:
(用FileStream,File of Byte,stringlist我都试过,都不行)
var
s1,s2: textFile;
i: integer;
ch: char;
chs: array [0..2048] of char;
begin
AssignFile(s1,'aaa.reg'); Reset(s1);
//跳过文件格式 FFFE
read(s1,ch); read(s1,ch);
i :=0;
FillChar(chs,sizeof(chs),#0);
while not eof(s1) do
begin
read(s1,ch);
if ch <> #0 then
begin
chs :=ch;
inc(i);
end;
if ch = #13 then
begin
i :=0;
Memo1.Lines.Add(Trim(chs));
FillChar(chs,sizeof(chs),#0);
end;
end;
CloseFile(s1);
读出有汉字的地方出现乱码,其他地方都正常。
我想原因在于导出的注册表文件开头有FFFE标志,被认为是UTF-8编码,所以形成了乱码。
所以请教各位大虾不吝赐教!如何能读出正确的内容???
读取.reg文件的问题,如果reg文件中有中文,就出现乱码,如果全是字母,则正确,不知道是怎么回事?(*文件一定要从注册表导出,如果手工建,这虽然内容一样,但其内在格式不一样。导出的文件若没有汉字,你可以随意加几个汉字,那读出的结果就不同了,有乱码。手工创建的reg文件就是好的)
导出的.reg文件如下:(我把导出文件手动添加了汉字)
++++++++++++++++++++++++++++++++++++++++++++++
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE/SOFTWARE/ODBC/AAA]
"Translator"="C://WINDOWS//system32//AAA32.dll"
"Setup"="C://WINDOWS//system32//BBB32.dll"
"UsageCount"="这是汉字,读出后有乱码"
"KEY"="ABC"
++++++++++++++++++++++++++++++++++++++++++++++
以下是用Delphi实现的读取代码:
(用FileStream,File of Byte,stringlist我都试过,都不行)
var
s1,s2: textFile;
i: integer;
ch: char;
chs: array [0..2048] of char;
begin
AssignFile(s1,'aaa.reg'); Reset(s1);
//跳过文件格式 FFFE
read(s1,ch); read(s1,ch);
i :=0;
FillChar(chs,sizeof(chs),#0);
while not eof(s1) do
begin
read(s1,ch);
if ch <> #0 then
begin
chs :=ch;
inc(i);
end;
if ch = #13 then
begin
i :=0;
Memo1.Lines.Add(Trim(chs));
FillChar(chs,sizeof(chs),#0);
end;
end;
CloseFile(s1);
读出有汉字的地方出现乱码,其他地方都正常。
我想原因在于导出的注册表文件开头有FFFE标志,被认为是UTF-8编码,所以形成了乱码。
所以请教各位大虾不吝赐教!如何能读出正确的内容???