明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6111|回复: 18

[函数] [分享]英汉混合的字符串分割处理时,判断全角字符是否完整的函数!

  [复制链接]
发表于 2009-11-2 00:02:00 | 显示全部楼层 |阅读模式

  在显示较长的英汉(含全角字符)混合的字符串时,可能会分割成几个字符串进行显示。每个英文字母或符号的长度是1,而中文或全角字符的长度是2,用substr分割子串时,可能会将一个长度为2中文或全角字符从中间分开,造成显示为乱码(或出现“ ; error: Unknown exception occurred ; warning: unwind skipped on unknown exception”的错误)。

  因此,分割这类字串前,有必要分割处是否是中文或全角字符。下面是我在程序中使用的函数:

(defun Integrated (str i / lst)
  (setq lst (vl-string->list (substr str 1 i))
 lst (vl-remove-if '(lambda (x) (< x 128)) lst)
  )
  (= 0 (rem (length lst) 2))
)

  函数的作用是:判断字串str的前i个(从1开始计,与substr相同)字符是否完整。完整则返回T,否则返回nil。

  这个函数稍作修改可适应自己的情况。

评分

参与人数 2金钱 +20 收起 理由
crazylsp + 10 神马都是浮云 好用
xhq1954425 + 10 这个以后可能用得上,谢谢分享!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下

本帖被以下淘专辑推荐:

发表于 2016-10-14 17:12:02 | 显示全部楼层
testftetst
发表于 2009-11-2 00:41:00 | 显示全部楼层
中文不是问题,管它是否完整,直接提取需要的字符串信息即可
 楼主| 发表于 2009-11-3 02:17:00 | 显示全部楼层
狂刀lxx发表于2009-11-2 0:41:00中文不是问题,管它是否完整,直接提取需要的字符串信息即可

楼上的看来是没有遇到过这个问题!
发表于 2010-12-16 23:42:09 | 显示全部楼层
不错  顶顶~~~~
发表于 2010-12-17 16:17:06 | 显示全部楼层
tengte 发表于 2009-11-3 02:17
楼上的看来是没有遇到过这个问题!

樓主似乎沒用過這種方式解決問題
发表于 2010-12-17 22:38:00 | 显示全部楼层
这个程序很好,vl-string->list 做的表困扰我好久了,这种表有点特别,似乎不支撑变量提取
发表于 2011-1-19 20:17:10 | 显示全部楼层
本帖最后由 redcat 于 2011-1-19 20:19 编辑

看我的曲线排字,里面内含汉字分割http://bbs.mjtd.com/thread-85059-1-1.html
发表于 2011-1-20 10:57:54 | 显示全部楼层
支持!学习!
发表于 2011-9-19 15:33:08 | 显示全部楼层
这个函数不错,解决了包含汉字的字符窜的处理问题。
发表于 2011-11-9 13:06:21 | 显示全部楼层
谢谢楼主分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-10-2 10:30 , Processed in 0.178616 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表