无论浏览者在IE选择什么编码,都能正常显示.
2007-12-17 00:04
357 查看
最近在解析一个天气预报的xml文件时,发现它里面所有的汉字都转化为了html实体(十进制表示的Unicode编码),这样做的好处就是不管网页的编码是什么,都可以正常的显示汉字,而不会出现乱码,当然也适用于其他字符集。在php中我们可以用mbstring的mb_convert_encoding函数实现这个正向及反向的转化。
如:
mb_convert_encoding ("你好", "HTML-ENTITIES", "gb2312"); //输出:你好
mb_convert_encoding ("你好", "gb2312", "HTML-ENTITIES"); //输出:你好
可以查看这个页面:htmlentities.html, 不管选择什么网页编码,网页都能正常显示。
如果需要对整个页面转化,则只需要在php文件的头部加上这三行代码:
mb_internal_encoding("gb2312"); // 这里的gb2312是你网站原来的编码
mb_http_output("HTML-ENTITIES");
ob_start('mb_output_handler');
如果没有打开mbstring扩展,可以参考coolcode.cn上的这两篇文章:
在任意字符集下正常显示网页的方法
在任意字符集下正常显示网页的方法(续)
在asp中我们可以用下面这个函数来实现这个转化:
Function htmlentities(str)
For i = 1 to Len(str)
char = mid(str, i, 1)
If AscW(char) > 0 then
htmlentities = htmlentities & "" & Ascw(char) & ";"
Else
htmlentities = htmlentities & "" & (65536 + ascW(char)) & ";"
End if
Next
End Function
如:
mb_convert_encoding ("你好", "HTML-ENTITIES", "gb2312"); //输出:你好
mb_convert_encoding ("你好", "gb2312", "HTML-ENTITIES"); //输出:你好
可以查看这个页面:htmlentities.html, 不管选择什么网页编码,网页都能正常显示。
如果需要对整个页面转化,则只需要在php文件的头部加上这三行代码:
mb_internal_encoding("gb2312"); // 这里的gb2312是你网站原来的编码
mb_http_output("HTML-ENTITIES");
ob_start('mb_output_handler');
如果没有打开mbstring扩展,可以参考coolcode.cn上的这两篇文章:
在任意字符集下正常显示网页的方法
在任意字符集下正常显示网页的方法(续)
在asp中我们可以用下面这个函数来实现这个转化:
Function htmlentities(str)
For i = 1 to Len(str)
char = mid(str, i, 1)
If AscW(char) > 0 then
htmlentities = htmlentities & "" & Ascw(char) & ";"
Else
htmlentities = htmlentities & "" & (65536 + ascW(char)) & ";"
End if
Next
End Function
相关文章推荐
- 编码问题导致样式显示在IE中不正常
- iOS NSString正常显示GBK编码字符 .
- IE显示背景图片background-image,FireFox不显示背景图片或显示不正常
- IE显示div正常,Firefox浏览器中div层重叠的解决方法
- firefox显示正常,IE和Chorm显示的网页出现空白换行,""字符惹的祸
- SWFUpload 在IE9下不显示问题及IE9中模态窗下flash文件选择问题的处理
- 让你的HTML5&CSS3网站在老IE中也能正常显示的3种方法
- jquery tabs的使用,在ie下一直显示不正常
- activeX,在VC 里面的调试正常,嵌入网页IE中显示为红色叉的原因。
- 对FckEditor编辑器在MAXTHON浏览器下选择服务器文件对话框显示不正常的改进
- 现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset
- 让你的HTML5&CSS3网站在老IE中也能正常显示的3种方法
- 让你的HTML5&CSS3网站在老IE中也能正常显示的3种方法
- 让你的HTML5&CSS3网站在老IE中也能正常显示的3种方法
- 解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
- IE9下PDF图片无法正常打开无法显示正常的解决方法
- uploadify 在chrome浏览器下不能打开选择文件浏览框而在ff和ie下能正常打开
- mysql导入导出数据中文乱码解决方法小结(1、navicat导入问题已解决,创建连接后修改连接属性,选择高级->将使用Mysql字符集复选框去掉,下拉框选择GBK->导入sql文件OK;2、phpmyadmin显示乱码的问题也解决,两步:1.将sql文件以utf8的字符集编码另存,2.将文件中sql语句中的字段字符集编码改成utf8,导入OK)
- 获取一个网页数据返回的编码类型是gzip,解压后,网页中包含的中文字段变成了乱码,只需要把编码更改为BIG5 ,繁体字就正常显示了!
- IE显示UTF-8编码网页空白