utf-8 网页不显示+utf-8网页乱码的通用解决方法
程序员文章站
2022-05-03 12:34:44
在windows操作系统上使用ie作为浏览器时。常常会发生这样的问题:在浏览使用utf-8编码的网页时,浏览器无法自动侦测(即没有设定“自动选择”编码格式时)该页面所用的编...
在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" />
放在<title></title>之前。
-------------------------------------
=====================
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%>
utf-8 网页不显示+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" />
放在<title></title>之前。
-------------------------------------
=====================
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%>
utf-8 网页不显示+utf-8网页乱码的问题一般就可以解决了