Chinaunix首页 | 论坛 | 博客
  • 博客访问: 221373
  • 博文数量: 70
  • 博客积分: 1415
  • 博客等级: 上尉
  • 技术积分: 920
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-08 11:53
文章分类

全部博文(70)

文章存档

2011年(1)

2010年(69)

我的朋友

分类: 系统运维

2010-12-23 15:08:45

今天在用utf-8编码用在新的网站上,不想问题还真多,所以找了些文章,帖子,看了看,等下有用的就贴下面了。
今天,我开始把 CODEPAGE="936" 改成 CODEPAGE="65001"
把charset=gb2312改成 charset=utf-8
可是还是乱码,只要是脚本用的地方还是乱码,现在终于找到问题了,就是当脚本输出时候,要以utf-8编码输出。
就是要加一句<% Response.Charset = "utf-8" %>

①首先当然是页面本身用utf-8编码,在DW新建页时默认编码定为"Unicode(UTF-8)"
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001" %>
' ②CODEPAGE="65001" 告诉服务器页面使用UTF-8编码的



' ③charset=utf-8告诉浏览器页面使用UTF-8编码的


<% Response.Charset = "utf-8" %>
' ④服务器输出编码为utf-8



晕,事情还没有结束
刚开心,问题出来了,刷新后又变成乱码,或者浏览其他的gb2312的页面回来又乱码了。值得又去google了一下,呵呵,还是找到答案了

看看下面的文字,就知道了,所有在后来我加了这个,程序顶端
<%Session.CodePage=65001%>

<%@ codepage=936%>简体中文
<%@ codepage=950%>繁体中文
<%@ codepage=65001%>UTF-8

codepage指定了IIS按什么编码读取传递过来的串串(表单提交,地址栏传递等)。
出乱码的原因也就是网站要整合的时候模块编码不一样引起的。
不要转换任何模块网页的编码该utf-8的还是utf-8,该Gb22312的还是Gb2312

将GB2312模块的conn.asp文件中加入了以下这段代码
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%Session.CodePage=936%>
一切OK!

同样在在Utf-8模块的包文件(如conn.asp,但是要注意conn.asp必须是在第一行调用)最前面加上
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Session.CodePage=65001%>

========================================================================

最近真是奇怪,以前好好执行的ASP教本,居然会乱码,直接写HTML格式的中文不乱码,使用response.write就是乱码,这在以前都是好好的,不知道怎么就突然就变了,改成UTF-8编码显示,则使用response.write输出的显示正常,其他则乱码,看来是编码方式不协调。为什么会突然不行了呢?开始以为是服务器出问题了,重启了下服务器,还是不管用。

到网上搜索下终于找到解决方案:

在每一页的开头加上
<%@ CODEPAGE = "936" %>

<%@ LANGUAGE="VBSCRIPT" CODEPAGE="936"%>

@CODEPAGE
可以使用 @CODEPAGE 指令为 .asp文件设置代码页。代码页是一个字符集,包括数字、标点符号及其他字符。不同的语言和现场
用不同的代码页。例如,ANSI 代码页 1252 为美国英语和大多欧洲语言所使用,而 OEM 代码页 932 为日本汉字所使用。

DW里的一个设置...乱码部分应该变成了西欧字体.调成简体中文就可以了.属性-〉页面属性-〉标题和编码->改为简体中文GB2312,点"重新载入",确定

代码中加入

=======================================================

ASP程序在同一个站点中,如果出现UTF-8编码的程序,又有GB2312的程序,在浏览完UTF-8编码的页面后,再浏览GB2312的页面,GB2312编码的页面就会出现乱码.

出现这样的问题,可能是:当你浏览UTF-8编码的时候,服务器默认用UTF-8的引擎来输出html,当你用再浏览GB2312的页面时,它还是用UTF-8来输出本应是GB2312编码的页面.所以会乱码.

如果要将他们转为同一种编码可能会很痛苦.

还有一种解决方法是:不用作任何转换,保持原来的编码不变.在Utf-8程序的第一行加上:


--------------------------------------------------------------------------------

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Session.CodePage=65001%>


在GB2312程序的第一行加上

--------------------------------------------------------------------------------


<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%Session.CodePage=936%>


这样就可以了.当然如果你的所有程序都在第一行include 一个文件的话,把上面的代码放在被include 的文件第一行就马上解决问题了.
Session.CodePage是指定服务器用哪种编辑来输出.有了它的声明,服务器就不会用默认的编码引擎来输出了.


表格里面的内容自动换行:
style="word-break:break-all"

删除样式的文字
2222


<%@ codepage=936%>简体中文
<%@ codepage=950%>繁体中文
<%@ codepage=65001%>UTF-8

  



65001是UTF-8编码,是不会乱码的,注意以下几点:
1.head之间必须是
2.将该网页"另存为",编码为UTF-8,不是ANSI,不要搞错了。
3.ASP文件头中最好包含以下三条代码
<%@ CODEPAGE=65001 %>
<% Response.CodePage=65001%>
<% Response.Charset="UTF-8" %>
阅读(3682) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-12-26 17:25:19

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com