Widestring 与 string 转换的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 METALLEE
  • 开始时间 开始时间
M

METALLEE

Unregistered / Unconfirmed
GUEST, unregistred user!
代码如下

var
aList: TStringList;
aWidestring: WideString;
begin
aList := TStringList.Create;
try
aList.LoadFromFile('c:/1.xml');
aWidestring := WideString(aList.Text);
aList.Clear;
aList.Text := String(aWidestring);
aList.SaveToFile('C:/2.xml');
finally
aList.Free;
end;
end;
文件1.xml中字符有好几千行,中英文混和,经过一系列转换后再存为2.xml之后两个文件就不一样了。用记事本打开文字都一样,但是2.xml无法解析。通过UltraEdit比较发现两个文件在描述中文字符的部分不一样,(中文是偶数的时候没事,奇数的时候就不一样了)。折腾了2小时,没搞定,高手请支招
 
代码如下

var
aList: TStringList;
aWidestring: WideString;
begin
aList := TStringList.Create;
try
aList.LoadFromFile('c:/1.xml');
aWidestring := WideString(aList.Text);
aList.Clear;
aList.Text := String(aWidestring);
aList.SaveToFile('C:/2.xml');
finally
aList.Free;
end;
end;
文件1.xml中字符有好几千行,中英文混和,经过一系列转换后再存为2.xml之后两个文件就不一样了。用记事本打开文字都一样,但是2.xml无法解析。通过UltraEdit比较发现两个文件在描述中文字符的部分不一样,(中文是偶数的时候没事,奇数的时候就不一样了)。折腾了2小时,没搞定,高手请支招
 
不太清楚
可能是String函数那里有问题

有一套控件叫TntControl 或 tntUnicodeControl 里面有比较健全的Unicode2ASCII ASCII2Unicode函数
 
试过不用类型强制转换吗?
 
汗,直接转换啊,还有,你用TListString写xml?Delphi有
TXMLDocument组建啊,直接读写xml的!方便多了。
 
还有TStringList本身之支持string,你的变量就算是widestring赋值给TStringList后,也会被编译器转换成String保存的。所以别这样写了,用TXMLDocumnet组建吧。在Internet面板上。
 
我知道楼上说的意思,我这只是做个试验,最终是通过Webservice传输的。原本打算通过文本形式传过来,后来发现对一些XML这种方法不行,看来只能传输XML数据流了。结帖
 

Similar threads

回复
0
查看
1K
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
825
DelphiTeacher的专栏
D
后退
顶部