InterceptString()为什么不能区分中文与英文数字?
来源:互联网 发布:成本核算软件 编辑:程序博客网 时间:2024/05/02 01:45
从网上找了一个可以根据字符串中所含中文英文的多少,自动截取字符串长度的函数。
代码如下:
Function InterceptString(txt,length)
dim x,y,ii
txt=trim(txt)
x = len(txt)
y = 0
if x >= 1 then
for ii = 1 to x
if asc(mid(txt,ii,1)) < 0 or asc(mid(txt,ii,1)) >255 then
y = y + 2
else
y = y + 1
end if
if y >= length then
txt = left(txt,ii) '字符串限长
exit for
end if
next
if len(txt) < x then
InterceptString = txt & ".."
else
InterceptString = txt
end if
else
InterceptString = ""
end if
End Function
dim x,y,ii
txt=trim(txt)
x = len(txt)
y = 0
if x >= 1 then
for ii = 1 to x
if asc(mid(txt,ii,1)) < 0 or asc(mid(txt,ii,1)) >255 then
y = y + 2
else
y = y + 1
end if
if y >= length then
txt = left(txt,ii) '字符串限长
exit for
end if
next
if len(txt) < x then
InterceptString = txt & ".."
else
InterceptString = txt
end if
else
InterceptString = ""
end if
End Function
结果我在使用的时候,发现这个函数根本不能区别中文和英文。
经过一番查找,发现问题出在这一句:
if asc(mid(txt,ii,1)) < 0 or asc(mid(txt,ii,1)) >255 then
因为我的网站使用的是utf-8编码,所以这句应该改为:
if ascW(mid(txt,ii,1)) < 0 or ascW(mid(txt,ii,1)) >255 then
当然如果你用的是gb-2312编码就不需要修改了。
附:
AscW 是为使用 Unicode 字符的 32 位平台提供的。 它返回 Unicode (宽型)字符代码,因此可以避免从 ANSI 到 Unicode 的代码转换。
- InterceptString()为什么不能区分中文与英文数字?
- 区分显示LCD汉字字模库中的中文与英文
- 中文,英文,数字,下划线
- 提取数字,英文,中文
- 判断中文、英文、数字
- cocos2dx 中字符串区分汉字数字英文
- 如何区分汉字与英文
- Django实例--英文、数字与中文之间增加空格
- JS 数字 、中文、 英文、判断
- php 判断中文,英文,数字
- JS 数字 、中文、 英文、判断
- JS ,中文,英文,数字判断
- JS 数字 、中文、 英文、判断
- OpenGL 输出中文 英文 数字
- JS 数字 、中文、 英文、判断
- android webview 控件表单不能输入英文和数字,只能输入中文
- 数字与英文
- 返回值为什么不能用来区分重载?
- 2008湘潭大学程序设计比赛解题报告
- C语言缺陷与陷阱(笔记)
- 精通EJB3.0中文下载
- 对iPhone界面的模仿,不知其用户体验的感觉如何。
- 终于开博客了,希望从事j2ee的朋友们以后多交流,共同成长学习!
- InterceptString()为什么不能区分中文与英文数字?
- [学习笔记]在windows下编译内核[大杂烩]
- 随笔
- 两款专业的远程桌面连接管理工具:RoyalTS 和 visionapp Remote Desktop (vRD)
- 特效:在主页中制作移动文字的几种技巧
- 我的诺基亚 E61 上面的 Lotus Sametime 聊天客户端界面
- 自己编写ping
- 介绍一款免费的词典与文本翻译软件-灵格斯 lingoes
- 不知道这为什么跟数据结构有关系