网页语言编码及asp乱码问题解决方案

作者:xiaop 来源:xiaop.net 时间:2008-01-31 13:21:00 

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

乱码出现的原因

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

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

ASP生成静态文件时的乱码问题

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

涉及到三个函数: @CODEPAGEResponse.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
经测试后乱码的问题解决。
标签:编码,乱码,语言,asp
0
投稿

猜你喜欢

  • Python异常学习笔记

    2021-03-24 01:33:33
  • 编程经验点滴 动态SQL的拼接技巧

    2024-01-23 22:04:35
  • 解决Python复杂zip文件的解压问题

    2021-08-11 05:04:09
  • pandas loc与iloc用法及区别

    2023-01-22 08:26:53
  • 5招优化MySQL插入方法

    2009-04-02 10:49:00
  • Git的基本操作流程及工作区版本库暂存区的关系

    2022-03-10 04:52:42
  • python自动化调用百度api解决验证码

    2023-03-18 19:21:27
  • 浅谈pandas筛选出表中满足另一个表所有条件的数据方法

    2022-08-12 14:29:13
  • vue项目两种方式实现竖向表格的思路分析

    2024-06-05 15:31:13
  • MySQL数据库自动补全命令的三种方法

    2024-01-26 16:58:35
  • xmlhttp中运行getResponseHeader出错,提示:The requested header was not found

    2010-03-27 21:47:00
  • 利用PyCharm Profile分析异步爬虫效率详解

    2023-08-15 03:02:58
  • try finally 妙用,防止内存泄漏

    2008-03-26 12:52:00
  • Unobtrusive的Web开发

    2007-11-23 13:13:00
  • JavaScript中的this指针用法

    2007-08-26 17:29:00
  • 微信小程序实现图片轮播及文件上传

    2023-09-05 00:12:52
  • JS 去前后空格大全(IE9亲测)

    2013-08-22 13:01:43
  • ASP验证码的实现原理及源码

    2007-10-02 12:14:00
  • 详解mysql不等于null和等于null的写法

    2024-01-25 20:02:47
  • sqlserver对字段的添加修改删除、以及字段的说明

    2024-01-25 23:43:41
  • asp之家 网络编程 m.aspxhome.com