网页语言编码及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
猜你喜欢
- 当由where子句指定的搜索条件指向另一张表时,就需要使用子查询或嵌套查询。1 子查询子查询是一个嵌套在select、insert、upda
- 上文中,我们一起学习了手把手教你实现一个 Python 计时器。本文中,云朵君将和大家一起了解什么是上下文管理器 和 Python
- 本文实例讲述了python处理xml文件的方法。分享给大家供大家参考,具体如下:前一段时间因为工作的需要,学习了一点用Python处理xml
- 存储过程的功能非常强大,在某种程度上甚至可以替代业务逻辑层,接下来就一个小例子来说明,用存储过程插入或更新语句。1、数据库表结构所用数据库为
- 文本框: <input type="text" onkeydown="keydownsearch(eve
- 本文实例为大家分享了Go实现文件上传和下载的具体代码,供大家参考,具体内容如下一.文件上传文件上传:客户端把上传文件转换为二进制流后发送给服
- 1、同级目录下调用若在程序 testone.py 中导入模块 testtwo.py , 则直接使用【import testtwo 或 fro
- 在Python中,函数本身也是对象,所以可以将函数作为参数传入另一函数并进行调用在旧版本中,可以使用apply(function, *arg
- HTML5 是近十年来 Web 标准最巨大的飞跃。和以前的版本不同,HTML 5 并非仅仅用来表示 Web 内容,它的使命是将 W
- 安装@vitejs/plugin-vue-jsxyarn add -D @vitejs/plugin-vue-jsxnpm i -D @vi
- 模块内部封装了很多实用的功能,有时在模块外部调用就需要将其导入。常见的方式有如下几种:1 . import>>> impo
- 标题可能无法表达我的本意。比如,有这样一个枚举:public enum MyChoice { &nb
- 本文记录了Linux系统(CentOS)安装Python,供大家参考,具体内容如下Python(Linux) 下载地址操作系统:Centos
- 3. 迭代器3.1. 迭代器(Iterator)概述迭代器是访问集合内元素的一种方式。迭代器对象从集合的第一个元素开始访问,直到所有的元素都
- 总的来说:1、数据库设计和表创建时就要考虑性能2、sql的编写需要注意优化3、分区、分表、分库设计表的时候:1、字段避免null值出现,nu
- A.课程内容本节课主要学习函数的返回值returm,通过学习编写一个汇率转换器程序。B.知识点(1)定义函数(2)调用函数(3)返回值C.用
- 在开发web的时候,如果是以前已存在的项目,项目下载下来后,为了使用测试库的数据,会直接将整个测试库(如sqlite3)拿到本机来。这种情况
- 先给大家巩固tempdb的基础知识简介:tempdb是SQLServer的系统数据库一直都是SQLServer的重要组成部分,用来存储临时对
- sympy有个vector 模块,里面提供了求解标量场、向量场的梯度、散度、旋度等计算,官方参考连接:http://docs.sympy.o
- 实现流程从摄像头获取视频流,并转换为一帧一帧的图像,然后将图像信息传递给opencv这个工具库处理,返回灰度图像(就像你使用本地静态图片一样