在delphi中用copy截取字符时出现乱码,应怎样解决?(50分)

  • 主题发起人 yangbaigang
  • 开始时间
Y

yangbaigang

Unregistered / Unconfirmed
GUEST, unregistred user!
[?]在delphi中用copy截取字符时出现乱码,应怎样解决?(注:所截取的字符串中有中文与英文)
 
这种情况是由于你把中文分成一半了,注意中文占两个长度。
 
截前用ByteType判断一下起始和结束位置是不是半个汉字, 如果是, 则调整一下再截。
if bytetype(s,begpos) = mbTrailByte then inc(begpos);
if bytetype(s, begpos+len-1)=mbLeadByte then dec(len);
result := copy(s, begpos, len);
 
一次截取两个长度的字符,这样就不会出现将中文分成一半。
 
多人接受答案了。
 
顶部