2005年在发布这个组件后,收到不少关于使用疑问的反馈。也曾在中国书客的论坛上解答。现针对NSB5.0类基础上使用这个组件做一些说明。
繁简转换包包含以下文件:
程序文件
-------------------------------
CodeChange.asp 示例文件
CodeChange.dll 组件文件
组件注册.bat 注册文件
readme.txt 说明文件
首先必须注册组件,这就不多说了,不会命令的可以google一下或者直接运行“组件注册.bat ”。
CodeChange.asp是一个测试文件,在运行后,右键编码改为-》【繁体中文BIG5】,可以看见“中国汉字,中国文学”的繁体版本,说明本组件 运行成功。后面跟着一串乱码字符,不用担心。那段字符是测试繁体转简体的,而且是真BIG5码,不是只是把字表面转换,要测试的话,需要在繁体操作系统上 测试。
在实际应用中,要在所有需要转换的字符串中调用组件转换。应用NSB5.0是模版和程序分离的,那应用起来就比较简练,基本思想就是设置一个变量,保存导 入的模版,再处理逻辑部分,最后形成一个需要输出的“页面”字符串,然后只须调用一次组件就可以把整个页面都转为BIG5。下面是应用方法:
为了使用方便,把转换写成函数调用,在function.asp中添加2个方法:
'//简繁转换-GB2312toBIG5
'//
Public Function GB2BIG5(strV)
Dim GB2Big5Obj
Set GB2Big5Obj = Server.CreateObject("CodeChange.CodeChange")
GB2Big5Obj.GBCode = strV
GB2Big5Obj.GB2BIG5
GB2BIG5=GB2Big5Obj.BIG5Code
End Function
'//简繁转换-BIG5toGB
'//
Public Function BIG52GB(strV)
Dim BIG52GBObj
Set BIG52GBObj = Server.CreateObject("CodeChange.CodeChange")
BIG52GBObj.BIG5Code = strV
BIG52GBObj.BIG52GB
BIG52GB=BIG52GBObj.GBCode
End Function
修改NSB.asp
'语言设置
Dim Codelang
Codelang=UCase(request("lang"))
If Codelang="BIG5" Then
Session("langCode")="BIG5"
Response.CharSet = "BIG5"
'Session.CodePage=950
Session.CodePage = 936
Else
Session("langCode")="GB2312"
Response.CharSet = "GB2312"
Session.CodePage = 936
End If
大家看到有注释的一句
'Session.CodePage=950
本来繁体的CodePage应该是950,但是实际中确是936显示正常。我还没有用繁体的操作系统测试下,这里先保留疑问。
在实例页面应用:
Dim Index
index=Replace(index,"{$pagecode}",Session("langCode")) '//{$pagecode}为HTML模版中<meta http-equiv="Content-Type" content="text/html; charset={$pagecode}" />
If Session("langCode")="BIG5" Then
response.write func.GB2BIG5(index)
Else
response.write index
End If
到此,即可实现NSB5.0类的繁简转换应用。
需要注意的两点
1,用到简繁,那编码就要选择gb2312和big5,而默认的nsb5.0是用UTF8的,这点只要修改nsb的输出编码格式即可,asp文件仍然为utf8
Response.CharSet = "GB2312"
Session.CodePage = 936
2,实际应用cookies比session要人性化。^_^
200725/11
Nowans繁简转换组件在NSB中的应用方法 Published by bugx 09:37:20 十一月 25th,2007 in 不成器的作品.
- 此文发于 2007-11-25 9:37:20,归类于 不成器的作品,已阅读 次
- Trackback引用地址:http://blog.nowans.com/trackback.asp?id=212
- 日志评论Feed地址:http://blog.nowans.com/feed.asp?o=comment&id=212
在某一年的这一天,我还写过……
- 升级 - 2006年
在 线 人
圣诞快乐!!!