我现在是通过上传txt文件的形式导入到数据库里面的,每次都要打开txt另存utf-8,导入才不会乱码。已经用mb_convert_encoding($u[23], 'UTF-8','auto')转码,可是没作用。

解决方案 »

  1.   

    mb_convert_encoding($u[23], 'UTF-8','auto')
    在 php5.3 中会报
    Warning: mb_convert_encoding() [function.mb-convert-encoding]: Unable to detect character encoding 
    错误,你的php版本是多少?写作
    mb_convert_encoding($u[23], 'UTF-8','utf-8, gbk')
    应该是可以的
    不然就要用 mb_check_encoding 枚举检查了
      

  2.   

    先执行set names 'gb2312'再导入gb2312的txt文本
      

  3.   

    回xuzuning大大:
    PHP Version 5.2.17 txt文件的内容是日文,先另存uft-8的文件就不会有乱码,如果不转txt文件,就要把浏览器的编码改成shft-jis....访问的人有用简体系统,繁体系统,日文系统的
      

  4.   

    这样写试试
    mb_convert_encoding($u[23], 'UTF-8', 'utf-8, shft-jis, gbk')可适当调整 'utf-8, shft-jis, gbk' 中的次序由于日文编码与汉字编码交错,可能不能正确识别为此 mbstring 系列中新增了 mb_check_encoding 函数,不知道 5.2.17 中是否可用
    这个函数可以准确的识别编码类型
    if(mb_check_encoding($s, 'utf-8')) $charset = 'utf-8';
    elseif(mb_check_encoding($s, 'shft-jis')) $charset = 'shft-jis';
    elseif(mb_check_encoding($s, 'gbk')) $charset = 'gbk';
    然后用 $charset 参与转码
      

  5.   

    #6楼是可以的header('Content-Type: text/html; charset=utf-8');
    mb_convert_encoding($s,'utf8','shft-jis');
      

  6.   

    xuzuning大大,你的意思是日文也有可能会有gbk编码的,那存不存在一段日文里面既有shft-jis也有gbk编码???我一直不明白以下两段代码有什么区别呢???是不是编码多了转换率相对来说会不高??mb_convert_encoding($u[23], 'UTF-8', 'utf-8, shft-jis, gbk')mb_convert_encoding($u[23], 'UTF-8', 'shft-jis')
      

  7.   

    mb_convert_encoding($u[23], 'UTF-8', 'shft-jis')
    将 shft-jis 字符集转换为 utf-8 字符集mb_convert_encoding($u[23], 'UTF-8', 'utf-8, shft-jis, gbk')
    将 utf-8、shft-jis、gbk 之一(自动识别)转换为 utf-8 字符集既然你不能确认究竟源文件属于哪个字符集,自然就需要借助计算机去识别了
    效率变低是必然的