为什么text[i]取出的字符串中若有中文就会有乱码?(40分)

  • 主题发起人 主题发起人 froggorf
  • 开始时间 开始时间
F

froggorf

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么text取出的字符串中若有中文就会有乱码?
英文则没有此问题?难道就是因为Delphi是english?
 
我的理解,可能是因为text方式每次取出的是一个字节.
 
赋到widestring就可以了
 
具体说说如何赋到widestring
 
s:widestring;
s:=memo.text;
s
 
朋友~一个汉字占两个字节阿
 
就是楼上说的用widestring就行。
 
就是,一个汉字占两个字节,text只取了其中的一半,当然出现乱码。
 
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
dest:pwidechar;
destsize:integer;
begin
s:='ab我向三剑客c';
destsize:=length(s);
dest:=AllocMem(destsize);
StringToWideChar(s,dest,destsize);
caption:=dest[6];
FreeMem(dest,destsize);
end;
 
l来晚了,555
 
ugvanxk 的方法是正解,这个问题可以结束了
 
嘻嘻,我也认为那是正解
procedure TForm1.Button1Click(Sender: TObject);
var
s:widestring;
text:string;
begin
text:='a我是男的bc' ;
s:=text;
caption:=s[3];
end;
结果,CAPTION为“是”
 
var
s:widestring;
text:string;
begin
text:='a我是男的bc' ;
s:=text[4]; //愚蠢,我在这里搞错了,sorry
caption:=s;
end;
 
多人接受答案了。
 
后退
顶部