怎么判断字符串中的字符是占用一个字节还是两个字节呢?
如下所示的一串字符,有些占用两个字节,有些是一个字节,我想要单独一个个都截取出来,怎么做呢?
procedure Tfrm_Main.btn_ExportClick(Sender: TObject);var a:string ; Tempa:string ;begin a:='¡¬¡¹¡º¡»¡¼¡½¡¾¡¿<>/,.?!@#$%^&*()_+|'; {Tempa :=Copy(a,3,1);} showmessage(a[1]);end;procedure TForm1.Button1Click(Sender: TObject);var s :WideString;begin s:='我a们b'; showmessage(s[3]);end;
[解决办法]
不同版本是不同的
ansi编码是1个汉字2个字节,键盘上你看到的字符都是1个字节,其它特殊字符大多都是2个字节
Unicode都是2个字节
可以转换为widestring,循环取s[i]