今天在用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) |