Asp中汉字处理问题,急

Code4Quality 2000-12-19 10:27:00
我的asp程序中所有处理字符串的函数都把汉字作为一个字符处理,
请教大家,那里出了问题?
...全文
158 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Code4Quality 2000-12-19
  • 打赏
  • 举报
回复
对不起,没说清楚。正常情况下,一个汉字的长度是2,但在我的环境下是1。
在另外两台机器下却是2。类似的问题还发生在截取字符串中的子串时。
我的环境是NT4.0+IIS4.0。
wanghu 2000-12-19
  • 打赏
  • 举报
回复
这不能算问题吧?本来就是这样处理的。如果想取单字节进行处理的话,用那些xxxB()函数。
djhdu 2000-12-19
  • 打赏
  • 举报
回复
汉字本来就是字符串呀,只不过占两个字节!
Code4Quality 2000-12-19
  • 打赏
  • 举报
回复
看来,我的系统没有问题。呵呵
Code4Quality 2000-12-19
  • 打赏
  • 举报
回复
谢谢大家,马上给分。
calfly 2000-12-19
  • 打赏
  • 举报
回复
是这样的,在中文NT4.0下汉字只算一个字符,不过你可以试试下面的函数,可以在中文平台下将1个汉字长度看作2。
不过不能确定绝对没错!


'-----------------------------------------------
'[DATE] 00-09-28
'[AUTHOR] Calfly
'[PURPOSE] 功能相当于len(),不过中文算两个字符(用于中文平台)
'[INPUT] 字符串
'[OUTPUT] 字符串的标准长度
'------------------------------------------------
Function LenatC(strArg)
dim inttemp,i
If strArg="" or isNull(strArg) Then
LenatC=0
Else
strArg=cstr(strArg)
inttemp=0
For i=1 to Len(strArg)
'当asc码小于零,就是中文字符。我以为
If asc(mid(strArg,i,1))>0 Then
inttemp=inttemp+1
Else
inttemp=inttemp+2
End If
Next
LenatC=inttemp
End If
End Function


nothing 2000-12-19
  • 打赏
  • 举报
回复
在英文操作系统下len()等函数不认汉字。所以len("函")会返回2.
你可以对不同的操作系统用不同的处理代码。
if len("中文") = 2 then
IsChinese = TRUE
else
IsChinese = FALSE
end if
wanghu 2000-12-19
  • 打赏
  • 举报
回复
不知道首都在线的虚拟主机是什么环境,如何设置的。关注这个问题。
Code4Quality 2000-12-19
  • 打赏
  • 举报
回复
你没明白我的问题,在首都在线的虚拟主机上len("函")返回2,
可是在我的机器上len("函")返回1,Why?
guolianghu 2000-12-19
  • 打赏
  • 举报
回复
一个汉字占两个字节的位置,这是公认的,在磁盘上就是这么存储的。
在NT4下也是如此,否则的话,许多汉化软件都得运行出错。你是不是
搞错了。

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧