如何判断字符串中的字符是占用一个字节还是两个字节呢

怎么判断字符串中的字符是占用一个字节还是两个字节呢?
如下所示的一串字符,有些占用两个字节,有些是一个字节,我想要单独一个个都截取出来,怎么做呢?
Delphi(Pascal) code

procedure Tfrm_Main.btn_ExportClick(Sender: TObject);
var
  a:string ;
  Tempa:string ;
begin
  a:='¡¬¡¹¡º¡»¡¼¡½¡¾¡¿<>/,.?!@#$%^&*()_+|';
  {Tempa :=Copy(a,3,1);}
  showmessage(a[1]);
end;



我想把上面那串字符串,每个字符都截取准确的截取出来,怎么做呢



------解决方案--------------------
Delphi(Pascal) code
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]