怎么判断字符串中的字符是占用一个字节还是两个字节呢? 本帖最后由 wangwei244157887 于 2012-06-13 01:42:22 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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] 有个ByteType函数可以使用,你Copy时先判断这个位置是不是双字节字符的首字节,如果是的话Copy时就加1个字节,这样就不会复制错了。case ByteType(Edit1.Text, 3) of mbSingleByte: Label1.Caption:='单字节(ASCII)字符'; mbLeadByte: Label1.Caption:='双字节字符首字节'; mbTrailByte: Label1.Caption:='双字节字符尾字节'End; TChar控件绘制曲线图时如何设定X、Y轴的显示范围 请教ADOTable的Filter问题 OpenDialog如何取多个记录名呀 Socket 严重错误,高手请进!(急!!!) 请教一个问题? 一个毫无技术含量的问题 Unicode转汉字 怎样根据ascii得到相应的字符?反过来又怎样? 哪位知道交大慧谷这个公司怎么样?在里面做好不好? C++ Builder做的dll在Delphi里用的时候,为什么说找不到存在的输出? 金额计算小问题 delphi图书管理系统设计步骤
var s :WideString;
begin
s:='我a们b';
showmessage(s[3]);
end;
ansi编码是1个汉字2个字节,键盘上你看到的字符都是1个字节,其它特殊字符大多都是2个字节
Unicode都是2个字节可以转换为widestring,循环取s[i]
mbSingleByte:
Label1.Caption:='单字节(ASCII)字符';
mbLeadByte:
Label1.Caption:='双字节字符首字节';
mbTrailByte:
Label1.Caption:='双字节字符尾字节'
End;