Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18682039
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类:

2008-05-16 17:53:55

在开发中遇到了这样的问题。UTF-8编码的字符保存到数据库时可能因为字符串过长被截取保存了,截取后的数据很可能就包含非法字符了。这样的字符放到中,会导致整个XML不合法,无法被解析,程序对数据的依赖性太大。即使是放到CDATA中也是如此。所以必须对可能的非法字串进行预处理。
发现PHP有个函数mb_check_encoding,可以判断是否是某个编码的合法字串:
function validUTF($str){
   if( mb_check_encoding($str,"UTF-8") )
      return $str;
 else
    return "Unknow data";
}
用上面的函数,返回的就一定是合法的UTF-8字串了,可用于组装XML. 非法数据毕竟是少数,用Unknow data代替。
阅读(824) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~