网页语言编码及asp乱码问题解决方案
作者:xiaop 来源:xiaop.net 发布时间:2008-01-31 13:21:00
最近公司有一个日文项目,由于之前使用的是自己开发的中文CMS,并没有将语言包分离,在网站建设调试过程中出现了令人头疼的乱码问题。
乱码出现的原因
由于各个字符编码的储存空间不一样,所以当使用不同的字符读取数据时,当字符空间过小,就不能正常显示了。
比如说中文字符的字符集一般是gb2312,如果用utf-8强制读取改变gb2312的字符,就有可能出现乱码。因为utf-8的字符集储存空间大于gb2312,当使用utf-8读取时,有些字符gb2312的编码中是不存在的,不存在的字符自然会出现乱码了。对于静态文件来说,如果文件的储存编码和网页中编码设置(charset)不一致的话,由于以上原因就会出现乱码问题。
ASP生成静态文件时的乱码问题
以上是对于乱码问题的简单分析,在解决现有问题时有涉及到了asp对国际化的支持。
涉及到三个函数: @CODEPAGE,Response.CodePage,Session.CodePage
下面是MSDN中的一段话。
Setting @CODEPAGE explicitly affects literal strings in a single response. Response.CodePage affects dynamic strings in a single response, and Session.CodePage affects dynamic strings in all responses in a session.
这三个函数都可以设置asp的编码,其中 @CODEPAGE 相当于php中的header,必须在文档的开始发出。
在中文操作系统的IIS中,默认的为gb2312,参数值是:”936″,而日文需要指定文档CODEPAGE :
<%@ CODEPAGE=932 %>
<%@ codepage=936%>简体中文
<%@ codepage=950%>繁体中文
<%@ codepage=65001%>UTF-8
我们使用这个函数来设置文档编码具体的使用方法可以参考:http://www.cloudward.net/techLife/article.asp?id=490
现在应该没有问题了吧?哇,问题仍然存在。考虑到SEO公司的asp程序全部需要生成静态页面。而生成的页面全部是windows默认的ANSI,其中包含日文字符仍然会出现乱码。这样我们需要一个asp的函数,生成utf-8或者日文编码的文件。 我们使用以下代码完成:
Set objStream = Server.CreateObject(”ADODB.Stream”)经测试后乱码的问题解决。
With objStream
.Open
.Charset = “utf-8″ //编码,这里你可以改成任何编码
.Position = objStream.Size
.WriteText=pencat //pencat 为写入的数据
.SaveToFile server.mappath(”patch/flilename.html”),2 //生成文件路径
.Close
End With
Set objStream = Nothing
猜你喜欢
- SQL Server 2000安装问题集锦1、先把SQL Server卸载(卸载不掉也没有关系,继续下面的操作)2、把Microsoft S
- 从codered到nimda等,一大堆蠕虫把原来需要人工利用的漏洞都变成了程序自动利用了,大家还想去手工操作这些IIS漏洞么?让我们调整重心
- 本文说明向外扩展数据库系统的两个选项,从而实现更高的可扩展性:水平数据划分和垂直数据划分当我提到向外扩展数据库系统时,我实际上只是讨论对数据
- 今天看到的这篇文章, 让我对Chrome能够带来的影响,有了点新想法。Update: 发现我在跟别人讨论时,比直接写作文说得清楚一些,对这个
- HTML文档与CSS的关联常见有4种方式:1.使用link标记<link rel="stylesheet"
- 代码如下:--代码一DECLARE @cc INT SELECT NewsId,ROW_NUMBER() OVER(ORDER
- 【简 介】熟悉网页设计的网友就知道,调用Style的方法很多,我们可以单击鼠标右键选择Custon Style来调用Style标准,也可以在
- javascript 常见汉字转换成拼音,上下行排列,方便对比,速度快,你可以把代码复制到本地,作为一个不错的汉字转换拼音的工具!转换效果图
- 首先我们知道这个效果应该是一个老话题了。今天整理文件的时候,发现自己以前的一些布局的解决方法躺在文件夹里很长时间了,翻翻老底吧。需要说明的是
- 有三种主要的错误类型: 1.编译错误: 这种错误出现一般都是代码的语法问题。因为编译错误而导致辞ASP停止运行。 2.运行错误: 这个错误是
- 1、IIS为一个死循的执行过程设定执行时间(缺省为90秒)超时事件:<%response.buffer=true%><BO
- 先看看这三段话:[1、企业文化对形成企业内部凝聚力和外部竞争力所起到的积极作用,越来越受到人们的重视。企业竞争,实质是企业文化的竞争。面临全
- msxml3.dll 错误 '80004005'未指定的错误/Project/lijiang_071017/include/
- // 执行AJAX请求的通用函数//带一个参数,是包含一系列选项的对象function ajax(options){//如果用户没有提供某个
- 一个用asp来处理jmail发信的过程,及使用方法. 发信时,直接调用这个过程就行了,很方便。<% dim
- JavaScript 代码一般最常见的语法格式就是定义函数 function xxx(){/*code...*/},经常有这样的一大堆函数定
- 如何提高ASP的效率?通过修改注册表来提高asp的执行效率 改的第一个地方:HKEY_LOCAL_MAC
- Xml_javascript分页实例:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.
- 1.如果有ID字段,就是具有唯一性的字段 代码如下:delect table where id not in ( select max(id
- FLASH 全屏有二类四种:1、不用浏览器直接用FLASH播放器播放的类型:A、不显示FLASH播放器菜单栏的全屏(类似屏保效果),在第一帧