ASP中Utf-8与Gb2312编码转换乱码问题的解决方法
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
asp程序在同一个站点中,如果有utf-8编码的程序,又有gb2312编码的程序时,在浏览utf-8编码的页面后,再浏览当前网站gb2312的页面,gb2312编码的页面就会出现乱码。
[p]出现这样的问题是当你浏览utf-8编码的时候,服务器默认用utf-8的引擎来输出html,当你用再浏览gb2312的页面时,它还是用utf-8来输出本应是gb2312编码的页面所以会乱码。[/p] [p] [/p] [p]现在就说说要解决问题的方法和使用[br]在网站程序中使用的共用文件conn.asp 中加入以下代码:[/p] [p]1、gb2312编码页面中加入[br]<%@language="vbscript" codepage="936"%>[br]<%session.codepage=936%>[br]最后加多个[br]<%response.charset = "bg2312"%>[/p] [p][br]2、utf-8编码页面中加入<%@language="vbscript" codepage="65001"%>[br]<%session.codepage=65001%>[br]<%response.charset = "utf-8"%>[/p] [p]这是最简单有效的方法。[br][/p] [p] [/p] [p]为了这个问题烦了我一个早上,终于的蓝色理想上得到解决。[/p]首先让我们来了解一下session对象提供了四个属性。[br]1.codepage 读/写。整型。 [br]定义用于在浏览器中显示页内容的代码页(code page)。代码页是字符集的数字值,不同的语言和场所可能使用不同的代码页。例如,ansi代码页 1252用于美国英语和大多数欧洲语言。代码页932用于日文字。(这里我们要用到的就是这个属性)[br]2.lcid 读/写。整型。 [br]定义发送给浏览器的页面地区标识(lcid)。lcid是唯一地标识地区的一个国际标准缩写,例如,2057定义当前地区的货币符号是’£’。lcid也可用于formatcurrency等语句中,只要其中有一个可选的lcid参数。lcid也可在asp处理指令<%…%>中设置,并优先于会话的lcid属性中的设置。本章后面提供一个asp处理指令的列表 [br]3.sessionid 只读。长整型。 [br]返回这个会话的会话标识符,创建会话时,该标识符由服务器产生。只在父application对象的生存期内是唯一的,因此当一个新的应用程序启动时可重新使用 [br]4.timeout 读/写。整型。 [br]为这个会话定义以分钟为单位的超时周期。如果用户在超时周期内没有进行刷新或请求一个网页,该会话结束。在各网页中根据需要可以修改。缺省值是10min。在使用率高的站点上该时间应更短! [p]下面给常用的几个ansi代码页[br] <%@ codepage=65001%>utf-8[br] <%@ codepage=936%>简体中文[br] <%@ codepage=950%>繁体中文[br] <%@ codepage=437 %>美国/加拿大英语[br] <%@ codepage=932 %>日文[br] <%@ codepage=949 %>韩文[br] <%@ codepage=866 %>俄文[/p] [p][br]现在就说说要解决问题的方法和使用[br]在网站程序中使用的共用文件conn.asp 中加入以下代码:[/p] [p]1、gb2312编码页面中加入[br]<%@language="vbscript" codepage="936"%>[br]<%session.codepage=936%>[br]最后加多个[br]<%response.charset = "bg2312"%>[/p] [p][br]2、utf-8编码页面中加入<%@language="vbscript" codepage="65001"%>[br]<%session.codepage=65001%>[br]<%response.charset = "utf-8"%>[/p] [p]这是最简单有效的方法。[br][/p][br]asp程序在同一个站点中,如果有utf-8编码的程序,又有gb2312编码的程序时,在浏览utf-8编码的页面后,再浏览当前网站gb2312的页面,gb2312编码的页面就会出现乱码。 [p]出现这样的问题是当你浏览utf-8编码的时候,服务器默认用utf-8的引擎来输出html,当你用再浏览gb2312的页面时,它还是用utf-8来输出本应是gb2312编码的页面所以会乱码。[/p] [p]为了这个问题烦了我一个早上,终于的蓝色理想上得到解决。[/p]首先让我们来了解一下session对象提供了四个属性。[br]1.codepage 读/写。整型。 [br]定义用于在浏览器中显示页内容的代码页(code page)。代码页是字符集的数字值,不同的语言和场所可能使用不同的代码页。例如,ansi代码页 1252用于美国英语和大多数欧洲语言。代码页932用于日文字。(这里我们要用到的就是这个属性)[br]2.lcid 读/写。整型。 [br]定义发送给浏览器的页面地区标识(lcid)。lcid是唯一地标识地区的一个国际标准缩写,例如,2057定义当前地区的货币符号是’£’。lcid也可用于formatcurrency等语句中,只要其中有一个可选的lcid参数。lcid也可在asp处理指令<%…%>中设置,并优先于会话的lcid属性中的设置。本章后面提供一个asp处理指令的列表 [br]3.sessionid 只读。长整型。 [br]返回这个会话的会话标识符,创建会话时,该标识符由服务器产生。只在父application对象的生存期内是唯一的,因此当一个新的应用程序启动时可重新使用 [br]4.timeout 读/写。整型。 [br]为这个会话定义以分钟为单位的超时周期。如果用户在超时周期内没有进行刷新或请求一个网页,该会话结束。在各网页中根据需要可以修改。缺省值是10min。在使用率高的站点上该时间应更短! [p]下面给常用的几个ansi代码页[br] <%@ codepage=65001%>utf-8[br] <%@ codepage=936%>简体中文[br] <%@ codepage=950%>繁体中文[br] <%@ codepage=437 %>美国/加拿大英语[br] <%@ codepage=932 %>日文[br] <%@ codepage=949 %>韩文[br] <%@ codepage=866 %>俄文[/p] 该文章在 2010/7/10 15:22:25 编辑过 |
关键字查询
相关文章
正在查询... |