当前位置:编程学习 > asp >>

asp编程中,对中文、英文、数字混合的字符串,怎么计算它的长度,要求一个中文按照两个英文计算

在网上找了扩展len的函数,对于中文和数字的结合,计算得都不准确,找了半天没有找到合适的东西。 有没有朋友能提供这样一个函数 比如 “中国” 结果是2 “中国人ok” 结果是8 “美国911”,结果是7 这样的,无论中英文还有数字怎么排,都能出这样的结果。 50分求助,请帮忙给个解决方法。
追问:关于中国的那个是我写错了,需要的就是这类型的, “中国” 最终测试是4    这是我需要的


但是我运行这个之后,出来第一个还行,后来的就不行了

response.write strlen("中国")
response.write "<br><br>"
response.write strlen("中国ren")
response.write "<br><br>"
response.write strlen("中国ok")
response.write "<br><br>"难道是我这里操作系统问题,很奇怪,算了,采纳了
答案:你要的这种没有,一个汉字就是两个字节,英文和数字就是1个字节。我给你一个按照字节数来计算结果的:
'==========================='
'函数名:Strlen
'作    用:截取长度,一个汉字算两个。
'Str---传递的字符串;
'返回值:长度
'==========================='
Function strlen(str)
	If str = "" then
		strlen = ""
		Exit Function
	End If
	str = Replace(str,"<","<")
	str = Replace(str,">",">")
	str = Replace(str," "," ")
	str = Replace(str,""",Chr(34))
	str = Replace(str,"'",Chr(39))
	str = Replace(str,"—","—")
	str = Replace(str,"“","“")
	str = Replace(str,"”","”")
	l = Len(str)
	t = 0
	For q = 1 To l
		c = Abs(Asc(Mid(str,q,1)))
		If c>255 then
			t = t+2
		Else
			t = t+1
		End If
	Next
	strlen = t
End Function

比如:
中国人ok 结果是8
美国911 结果是7
但是:中国 结果是4

上一个:asp.net怎么连接数据库SQL2000
下一个:ASP.NET网站中如何用fupFile控件上传文件到相对路径?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,