如何将特殊字符从GB2312转为UTF-8

countstars 2006-03-22 12:45:06
″发烧嘞 ◇
上面这种字符,从数据库里取出,显示在GB2312的网页里很正常
可是要将这些数据放在utf-8的XML文档里,变成不可识别的了
请问如何将这种类型字符成功转为UTF-8,用Editplus看是个方框,查看页面源代码是个黑块。

求助,谢谢
...全文
288 点赞 收藏 10
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxqing 2006-03-23
哈哈,赶快支持一下,经常遇到编码的问题,头都大了
回复
chlinux 2006-03-23
iconv("gbk","utf-8",$str)
用这个吧,不过这个函数好像有些 BUG的,不知道高版本的解决了没有

mb_convert_encoding()这个好像已经不太建议使用的,要使用,需要安装时加上个参数,具体的东西,要看一下configure的帮助
回复
mynamesucks 2006-03-22
mb_convert_encoding()

楼主可以用dreamweaver打开看看,dreamweaver有调编码的
回复
countstars 2006-03-22
晕,这里的怎么把我那个字符去掉了???
我那个东西用ord看是7,不知道是什么玩意。
反正就是一些特殊字符,乱七八糟的,拜托了谢谢。
回复
gu1dai 2006-03-22
hoho.收藏了。
回复
xuzuning 2006-03-22
是的内码是7
在做编码转换的时候,由于基本ascii码字符在各种编码中都是一样的所以看上去是一样的

你可以把码值小于32的字符转换成&#nn;这样的格式
preg_replace('/[\x00-\x1f]/e', '"&#".ord(\\0).";"', $text)

你还可以用get_html_translation_table函数查看其他特殊字符的html格式
回复
countstars 2006-03-22
IAeh5beiydXgzyCh8w==
这个东西,第一个是个圆点。
回复
xuzuning 2006-03-22
把你的内容用base64编码贴出,这样人家才可能知道究竟是什么玩意

虽然ascii码值小于32时有部分字符是可显的,但是码值为7是不可显的。他的ascii名称是bell,这个码值可以控制机器上的喇叭响一声“哔”
回复
countstars 2006-03-22
我知道encoding,可是你没明白我的意思
这个字符根本就不在gbk字符集里,可是能正常显示,当使用转换函数的时候,不在字符集里的字符没办法运用规则来转换的,所以转换结果是乱码,知道吗?
回复
gu1dai 2006-03-22
你没转换当然乱码了。
iconv("gbk","utf-8",$str)
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告