在windows操作系统上使用IE作为浏览器时。常常会发生这样的问题:在浏览使用UTF-8编码的网页时,浏览器无法自动侦测(即没有设定“自动选择”编码格式时)该页面所用的编码。
即使网页已经声明过编码格式:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
由此造成某些含有中文UTF-8编码的页面产生空白输出。
如果使用的是Mozilla、Mozilla 浏览器、Sarafi的浏览器这不会造成这个问题。这是由于IE解析网页编码时以HTML内的标签优先,而后才是HTTP header内的讯息;而mozilla系列的浏览器则刚刚相反。
由于UTF-8为3个字节表示一个汉字,而普通的GB2312或BIG5是两个。页面输出时,由于上述原因,使浏览器解析、输出<title></title>的内容时,如果在</title>前有奇数个全角字符时,IE把UTF-8当作两个字节解析时出现半个汉字的情况,这时该半个汉字会和</title>的<结合成一个乱码字,导致IE无法读完<title>部分,使整个页面为空百输出。而这个时候如果察看源文件的话,会发现实际上整个叶面全部已经输出了。
因此最简单的解决办法是在网页文件的<head></head>标签中一定要把字符定义
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
UTF-8网页乱码问题解决:
<%@codepage="65001"%>
< http-equiv="Content-Type" content="text/html; charset=UTF-8">
一个也不能少
另外,文件要存为utf-8格式的
还有,程序不能出错,嘿嘿
要是有错误的程序,那么刚打开的时候正常的,刷新了就乱码了
这里说的出错时不会使整个页面不显示的出错。
1,<%@codepage="65001"%>
2,< http-equiv="Content-Type" content="text/html; charset=UTF-8">
3,Session.CodePage = 65001
4,文件存成 UTF-8
2,< http-equiv="Content-Type" content="text/html; charset=UTF-8">
=======================================
这条比较重要,也比较常见,这个决定了浏览者浏览器选择哪一种内码来访问你的网页。
4,文件存成 UTF-8
如果你用中文输入法,网页里面出现中文,这一条就比较重要了.因为我们用普通输入法输入的文字不是UTF格式的,所以要重新保存成 UTF-8格式。
所有从数据库里读的中文字都是乱码
=====================
1,<%@codepage="65001"%>
出现这种事情,请加上这句话,其实数据库跟内码没什么关系,关键是ASP程序用什么内码去传输你的数据,加上这句话,就强制ASP用UTF来传输数据。
尝试在<%@codepage="65001"%>下加一行:
<%Session.CodePage=65001%>