手机
当前位置:查字典教程网 >编程开发 >ASP教程 >网页语言编码及asp乱码问题解决方案
网页语言编码及asp乱码问题解决方案
摘要:最近公司有一个日文项目,由于之前使用的是自己开发的中文CMS,并没有将语言包分离,在网站建设调试过程中出现了令人头疼的乱码问题。乱码出现的原...

最近公司有一个日文项目,由于之前使用的是自己开发的中文CMS,并没有将语言包分离,在网站建设调试过程中出现了令人头疼的乱码问题。

乱码出现的原因

由于各个字符编码的储存空间不一样,所以当使用不同的字符读取数据时,当字符空间过小,就不能正常显示了。

比如说中文字符的字符集一般是gb2312,如果用utf-8强制读取改变gb2312的字符,就有可能出现乱码。因为utf-8的字符集储存空间大于gb2312,当使用utf-8读取时,有些字符gb2312的编码中是不存在的,不存在的字符自然会出现乱码了。对于静态文件来说,如果文件的储存编码和网页中编码设置(charset)不一致的话,由于以上原因就会出现乱码问题。

以上是对于乱码问题的简单分析,在解决现有问题时有涉及到了asp对国际化的支持。

涉及到三个函数:@CODEPAGE,Response.CodePage,Session.CodePage

下面是MSDN中的一段话。

Setting@CODEPAGEexplicitlyaffectsliteralstringsinasingleresponse.Response.CodePageaffectsdynamicstringsinasingleresponse,andSession.CodePageaffectsdynamicstringsinallresponsesinasession.

这三个函数都可以设置asp的编码,其中@CODEPAGE相当于php中的header,必须在文档的开始发出。

在中文操作系统的IIS中,默认的为gb2312,参数值是:”936″,而日文需要指定文档CODEPAGE:

<%@CODEPAGE=932%>

我们使用这个函数来设置文档编码具体的使用方法可以参考:http://www.cloudward.net/techLife/article.asp?id=490

现在应该没有问题了吧?哇,问题仍然存在。考虑到SEO公司的asp程序全部需要生成静态页面。而生成的页面全部是windows默认的ANSI,其中包含日文字符仍然会出现乱码。这样我们需要一个asp的函数,生成utf-8或者日文编码的文件。我们使用以下代码完成:

SetobjStream=Server.CreateObject(”ADODB.Stream”)

WithobjStream

.Open

.Charset=“utf-8″//编码,这里你可以改成任何编码

.Position=objStream.Size

.WriteText=pencat//pencat为写入的数据

.SaveToFileserver.mappath(”patch/flilename.html”),2//生成文件路径

.Close

EndWith

SetobjStream=Nothing

经测试后乱码的问题解决。

【网页语言编码及asp乱码问题解决方案】相关文章:

用ASP读取/写入UTF-8编码格式的文件

ASP中js左侧多级菜单动态的解决方案

另类的文件上传解决方案

网站制作ASP语言的特点与功能

ASP验证码不显示或始终不正确解决方法

ASP代码给网页添加验证码的实现方法

ASP中80040e14错误的原因及解决方法

ASP.NET七大身份验证方式及解决方案

编写网页木马详解

ASP程序密码验证漏洞解决方案

精品推荐
分类导航