还有一个问题,就是对少量凑巧的汉字会产生错误的结果,比如 "朶LAB",它得到的结果是 "朅B" ,因为 "朶" 字的第二个字节是 92, 恰好是 "\" 的ASCII 码,好在这样凑巧的字不多.再修正一下吧:
.....
((wcmatch (strcase (substr Mtext 1 2)) "\\S") (setq Str (substr Mtext 3 (- (vl-string-search ";" Mtext) 2)) Text (strcat Text (vl-string-translate "#^/" " " Str)) Mtext (substr Mtext (+ 4 (strlen Str))) ) ) ((> (ascii Mtext) 127) (setq Text (strcat Text (substr Mtext 1 2)) Mtext (substr Mtext 3) ) ) (1 (setq Text (strcat Text (substr Mtext 1 1)) Mtext (substr Mtext 2) ) )
......
这样改可以完全兼容双字节汉字了,可是好象还有三字节、四字节的文字,不知道什么情况下会遇到,哪位大侠指点一二? |