本帖最后由 milu2003516 于 2013-03-26 15:09:16 编辑

解决方案 »

  1.   

    估计你是*nix下的参考
    http://rd.189works.com/article-38990-1.html说到底是码表的问题,必要时自己做码表就是
      

  2.   


    我也说了嘛,用mb_convert_encoding函数肯定能解决啊,关键是你得判断何时先用mb_convert_encoding函数,何时先用iconv函数,优先肯定用iconv函数的,因为效率高,何况mb_convert_encoding也有自己的少许缺陷。
      

  3.   


    照那个方法,估计是要判断操作系统了,linux就先用mb_convert_encoding,window就先用iconv,可是这真是完美解决方案吗?
      

  4.   

    glibc是gnu发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。由于 glibc 囊括了几乎所有的 UNIX 通行的标准,可以想见其内容包罗万有。而就像其他的 UNIX 系统一样,其内含的档案群分散于系统的树状目录结构中,像一个支架一般撑起整个作业系统。在 GNU/Linux 系统中,其C函式库发展史点出了GNU/Linux 演进的几个重要里程碑,用 glibc 作为系统的C函式库,是GNU/Linux演进的一个重要里程碑。libiconv历史简介
    由于历史原因,国际化的文字常常由于语言或者国家的原因使用不同的编码。随着互联网时代的到来,通过互联网进行文字交流也逐渐增多:浏览外国的网站,这个时候字符编码的转换变得尤为重要。这带来了一个问题,就是许多字符在某一种编码方式中没有。为了解决这种混乱,Unicode的编码方式被建立。Unicode是一种超级编码包含了所有这些编码的字符集,因此一些新的文本格式像XML的默认编码方式就是Unicode.
    但是很多老式的计算机还在使用当地的传统的字符编码方式。而一些程序,例如邮件程序和浏览器必须能在这些不同的用户编码之间作转换。其他的一些程序则内置支持Unicode,以顺利支持国际化的处理,但是仍然有在Unicode和其他的传统编码之间转换的需求。GNU的libiconv就是为这两种应用设计的编码转换库。