QQ 1640076782

2011年07月9日

关于中文乱码解决方案

Filed under: 未分类 — 标签: — SEO @ 3:30 上午

在新闻系统或者博客等系统中,只要是有中文的地方,乱码问题经常出现,因为在我们后台中,新闻发布有个推荐到首页的选项,但是在首页肯定显示不了这么长的新闻标题,我们必须截取字符串来解决了。

PHP的substr函数可以实现这个功能,如果是英文的话,那就没什么关系,但是如果是中文的话,比如”abcd一二三四”;这个字符串,由于编码的不同, gb2312类型的编码 中文是占有2个字节,但是UTF-8类型的编码中文占3个字节,假如只截取5个长度的字符串的话,那么我们要把“一”这个字符分成两半了,于是乱码就出现了。

怎么解决这个问题呢?我们可以自定义一个函数,通过ascii码,定义一个新的字符串,挨个读取需要截取字符串的字符,当某个字符是中文时,给他的长度加上2,是英文的话就加1,这样循环,当长度等于或者再加上一个字符就大于所需要截取的长度时,我们可以获得当前字符的位置,由此便可以避免乱码了。