账号通
    

账号  

密码  

4264

查看

17

回复
主题:科汛5.02系统设计上的BUG!! [收藏主题] 转到:  
一生有你 当前离线

10439

主题

0

广播

18

粉丝
添加关注
级别:版主

用户积分:72521 分
登录次数:1969 次
注册时间:2006/7/1
最后登录:2021/8/25
一生有你 发表于:2008/9/21 17:35:00   | 显示全部帖子 查看该作者主题 楼主 
科汛在线网校系统

不过,我仔细看了下官方代码,应该是你的理解有误.官方的原理是中文取两个字节,英文取一个字段.你可以看他的代码

 

c = Abs(Asc(Mid(Str, I, 1)))
   If c > 255 Then
    T = T + 2
   Else
    T = T + 1
   End If

 

这里判断是不是汉字,是的话+2,否则加1

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
一生有你 当前离线

10439

主题

0

广播

18

粉丝
添加关注
级别:版主

用户积分:72521 分
登录次数:1969 次
注册时间:2006/7/1
最后登录:2021/8/25
一生有你 发表于:2008/9/22 16:38:00   | 显示全部帖子 查看该作者主题 沙发 
科汛在线网校系统
以下是引用swcml在2008-9-22 16:31:00的发言:
发现问题是这样的:用最新版5.02商城版 GB编码的正如版主所说,确实一切正常没有问题。但用UTF-8编码的就出现我所说的问题了。对比了Kesion.PublicCls.asp文件,只有几处不一样,但看似不关这个问题。还望版主解答一下,谢谢!

utf-8版的本身字符所占的数就不一样

 

UTF-8编码是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码

 

这就是为什么utf-8会比较占用空间的原因了.面向国内用户,还是推荐用gb

 

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
一生有你 当前离线

10439

主题

0

广播

18

粉丝
添加关注
级别:版主

用户积分:72521 分
登录次数:1969 次
注册时间:2006/7/1
最后登录:2021/8/25
一生有你 发表于:2008/9/22 14:17:00   | 显示全部帖子 查看该作者主题 藤椅 
科汛在线考试系统(NET)
ssssssssss
神七飞船火
是让人觉着
2222222222

 

 

以上是我测试10个字符的结果.确定是中文算两个,英文算一个,测试标签系统函数标签->栏目文章列表标签

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
一生有你 当前离线

10439

主题

0

广播

18

粉丝
添加关注
级别:版主

用户积分:72521 分
登录次数:1969 次
注册时间:2006/7/1
最后登录:2021/8/25
一生有你 发表于:2008/9/22 14:19:00   | 显示全部帖子 查看该作者主题 板凳 
科汛智能建站系统

测试sql标签,同样正常


select top 10 ID,TITLE from KS_Article ORDER BY ID DESC


 


[loop=10]
<a href="{$Field(ID,GetInfoUrl,1,1)}">{$Field(TITLE,Text,10,,0,)}</a><br>
[/loop]


 


最终输出


ssssssssss
神七飞船火
是让人觉着
2222222222

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
一生有你 当前离线

10439

主题

0

广播

18

粉丝
添加关注
级别:版主

用户积分:72521 分
登录次数:1969 次
注册时间:2006/7/1
最后登录:2021/8/25
一生有你 发表于:2008/9/21 17:33:00   | 显示全部帖子 查看该作者主题 报纸 
科汛智能建站系统
left函数就是按字节获取的
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
一生有你 当前离线

10439

主题

0

广播

18

粉丝
添加关注
级别:版主

用户积分:72521 分
登录次数:1969 次
注册时间:2006/7/1
最后登录:2021/8/25
一生有你 发表于:2008/9/21 16:44:00   | 显示全部帖子 查看该作者主题 地板 
科汛智能建站系统

第二个问题更是简单,同样在kesion.publiccls.asp这个文件

 

打开ks_cls/kesion.publiccls.asp

找到htmlcode函数.把里面的内容直接改成

htmlcode=server.htmlencode(str)即可

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
一生有你 当前离线

10439

主题

0

广播

18

粉丝
添加关注
级别:版主

用户积分:72521 分
登录次数:1969 次
注册时间:2006/7/1
最后登录:2021/8/25
一生有你 发表于:2008/9/21 16:43:00   | 显示全部帖子 查看该作者主题 7楼 
做在线知识付费 选科汛云开店

也不是什么大问题,你如果要用字节,就打开ks_cls/kesion.publiccls.asp

找到GotTopic函数

'*************************************************************************
 '函数名:gotTopic
 '作  用:截字符串,汉字一个算两个字符,英文算一个字符
 '参  数:str   ----原字符串
 '       strlen ----截取长度
 '返回值:截取后的字符串
 '*************************************************************************
 Public Function GotTopic(ByVal Str, ByVal strlen)
  If Str = "" OR IsNull(Str) Then GotTopic = "":Exit Function
  If strlen=0 Then GotTopic=Str:Exit Function
  Dim l, T, c, I, strTemp
  Str = Replace(Replace(Replace(Replace(Str, "&nbsp;", " "), "&quot;", Chr(34)), "&gt;", ">"), "&lt;", "<")
  l = Len(Str)
  T = 0
  strTemp = Str
  strlen = CLng(strlen)
  For I = 1 To l
   c = Abs(Asc(Mid(Str, I, 1)))
   If c > 255 Then
    T = T + 2
   Else
    T = T + 1
   End If
   If T >= strlen Then
    strTemp = Left(Str, I)
    Exit For
   End If
  Next
  If strTemp <> Str Then strTemp = strTemp
  GotTopic = Replace(Replace(Replace(Replace(strTemp, " ", "&nbsp;"), Chr(34), "&quot;"), ">", "&gt;"), "<", "&lt;")
 End Function

 

 

直接改成

'*************************************************************************
 '函数名:gotTopic
 '作  用:截字符串,汉字一个算两个字符,英文算一个字符
 '参  数:str   ----原字符串
 '       strlen ----截取长度
 '返回值:截取后的字符串
 '*************************************************************************
 Public Function GotTopic(ByVal Str, ByVal strlen)
  GotTopic = left(str,strlen)

 End Function

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.15625秒 powered by KesionCMS 9.0