autolisp吧 关注:473贴子:1,085
  • 3回复贴,共1

Substr截取中英混排字符串的问题

只看楼主收藏回复

一段很长的中英混排的字符串,需要截取成长度相同的单行文本写入图纸。
由于中英字符长度不同,举个例子,如果用substr统一截取成长度20的子字符串,全是英文或者全是中文没有问题,但是当含有奇数个英文字符时(英文字母不在最后),就会导致最后一个中文字符乱码,剩余字符也全部乱码。
我的思路是判断最后一个字符是不是异常,如果异常,那就将此次截取的字符数+1或者-1,但是这个判例如何写?
还有什么更好的解决办法?


IP属地:湖北1楼2022-07-27 16:38回复
    可以用ascii码先判断字符是否是英文,然后再计算其所占用的位长度英文一个位算一个字符,中文两个位算一个字符


    IP属地:重庆来自Android客户端2楼2022-07-28 08:22
    收起回复
      设置截取长度为偶数,还是用的最笨的办法,逐个字节判断是否为英文字符并统计,截取范围内如果含有奇数个英文字符,则截取长度+1.


      IP属地:湖北3楼2022-08-03 09:42
      回复