iconv、mb_convert_encoding转码

最近工作遇到一些转码的问题,gbk转utf8的,大家肯定想到的是iconv,这转小的还可以,遇到转大变量的数据时候,总是会出现各种莫名其妙的问题,尝试mb_convert_encoding转大字符串,虽然成功了,但还是会遇到一些问题。。。

因为需要转到utf8之后,生成xml,生成的数据没有问题,结果组合xml打到页面上的时候,很奇怪的问题,数据没有乱码,xml解析错误,把错误的地方,复制,用notepad++打开,发现有一个特殊字符ascii值为6(ascii表表示为确认的意思。。没明白是干啥的。。。)

各种转码都不好使,最后只能想到字符串替换了~~~这个就涉及到了另外一个替换函数str_replace和chr函数。前面一个替换大家可能用的比较多,但chr估计就很少人用了,这个是获取指定ascii值的字符的。比如chr(6)获取ascii为6的字符串,在我把字符串用str_replace(chr(6), '', $data); 替换之后,果然xml数据正常了~~

后来想想出现这种情况的原因,可能其他部门的同事,在录入数据的时候,可能使用了ctrl+v功能,把一些特殊字符给粘贴进去了,然后这些特殊字符又恰好是用肉眼看不到的~~

以后这个可要注意下咯~~~

posted @ 2014-04-22 23:00  joyfei  阅读(429)  评论(0编辑  收藏  举报