汉字字符串分割,出现外码,怎么处理.(50)

  • 主题发起人 主题发起人 lingmao3
  • 开始时间 开始时间
L

lingmao3

Unregistered / Unconfirmed
GUEST, unregistred user!
edit1.text:='1中英对照'; memo1.text:=copy(edit1.text,1,4);memo2.text:=copy(edit1.text,5,1000);结果是,memo1.text:='1中',memo1.text:='⒍哉'是因为对汉字进行了分割,才出现乱码的.问如何判断当前分割处是汉字?
 
var iByteType: TMbcsByteType;begin // ... iByteType := ByteType(AStr, i); case iByteType of mbLeadByte: // 表示 AStr 在索引 i 处是多字节的首位 mbTrailByte: // 表示 AStr 在索引 i 处是多字节的尾位 mbSingleByte: // 表示 AStr 在索引 i 处是单字节字符 end; // 也就是说当截取到 mbLeadByte 时就会出现你所提出的问题end;
 
procedure TForm1.Button1Click(Sender: TObject);var str:string; index:integer; function StrTest(const AStr:string;var index:integer):Integer; begin if ByteType(AStr,index)=mbTrailByte then inc(index); result:=index; end;begin edit1.Text:='1中英对照'; str:=edit1.Text; index:=4; StrTest(str,index); edit2.Text:=Copy(str,1,index); index:=5; StrTest(str,index); edit3.Text:=Copy(str,index,1000);end;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部