|
蓝森林 http://www.lslnet.com 2006年8月25日 8:28
[Asp] 关于utf8 的字符长度判断
在一些新闻列表中,为了是列表整齐,需要限制每一行的字符长度,因为中文为全角,e文为半角,所以在裁取的时候往往将一个中文计算为两个长度单位,e文则一个长度单位.
在以前的 gb2312 中可以使用 asc 函数 返回每一个字符串首字母的 ANSI 字符代码:
通过 ANSI 的值判断字符是否为中文,然后计算其长度单位
想请教一下各位,在 utf8 编码中,怎么判断呢?
这是以前 gb2312 下的字符截取函数
'//截取指定长度字符串
'//返回类型:字符串
Public Function CutStr(str,strlen)
dim l,t,c,m_i
l=len(str)
t=0
for m_i=1 to l
c=Abs(Asc(Mid(str,m_i,1)))'asc 返回每一个字符串首字母的 ANSI 字符代码:
if c>255 then
t=t+2
else
t=t+1
end if
if t>=strlen then
CutStr=left(str,m_i)&"..."
exit for
else
CutStr=str
end if
next
End Function
|
|