Substr截取中英混排字符串的问题
autolisp吧
全部回复
仅看楼主
level 2
1083411743 楼主
一段很长的中英混排的字符串,需要截取成长度相同的单行文本写入图纸。
由于中英字符长度不同,举个例子,如果用substr统一截取成长度20的子字符串,全是英文或者全是中文没有问题,但是当含有奇数个英文字符时(英文字母不在最后),就会导致最后一个中文字符乱码,剩余字符也全部乱码。
我的思路是判断最后一个字符是不是异常,如果异常,那就将此次截取的字符数+1或者-1,但是这个判例如何写?
还有什么更好的解决办法?
2022年07月27日 08点07分 1
level 3
可以用ascii码先判断字符是否是英文,然后再计算其所占用的位长度英文一个位算一个字符,中文两个位算一个字符
2022年07月28日 00点07分 2
我先试一下,谢谢!
2022年07月29日 08点07分
level 2
1083411743 楼主
设置截取长度为偶数,还是用的最笨的办法,逐个字节判断是否为英文字符并统计,截取范围内如果含有奇数个英文字符,则截取长度+1.
2022年08月03日 01点08分 3
1