我们现在每天从日本网站上下载一个订单txt文件,然后通过PHP导入到数据库,现在每次都要先用记事本把txt转成utf-8之后导入才不会是乱码,直接导入就是乱码,请问怎么可以不用每次用记事本转码,用PHP转码就行了???以下为一些信息供大大们帮忙分析
server characterset  latin1
Db     characterset  latin1
Client chatacterset  latin1
Conn.  chatacterset  latin1character_set_client     latin1
character_set_connection     latin1
character_set_database    latin1
character_set_filesystem     latin1
character_set_results     latin1
character_set_server     latin1
character_set_system     latin1
character_sets_dir     latin1以下为部分代码mysql_query("set names utf-8");$ship_address3=mb_convert_encoding(addslashes($u[19]), 'UTF-8','auto');

解决方案 »

  1.   

    是否转码、如何转码,取决于原始数据
    你说“用记事本把txt转成utf-8”,那么当你用记事本打开这个文件的时候能正确显示内容吗?没有乱码?
    你使用的是日文操作系统吗?
    如有可能,你可贴出数据文件片段以供分析
    echo base64_encode(file_get_contents('你的数据文件.txt', false, null, 0, 40));
    贴出结果
      

  2.   

    输出结果:
    b3JkZXItaWQJb3JkZXItaXRlbS1pZAlwdXJjaGFzZS1kYXRlCXBheQ==
      

  3.   

    请问xuzuning  一般base64_encode()都用在什么地方啊
      

  4.   

    再次确认一下,你使用的操作系统是什么?请务必回答按你的描述、图片、数据片段
    1、每次都要先用记事本把txt转成utf-8,显然文本不是utf-8的否则不需要转换
    2、操作系统是 window 系列的,不然没有“记事本”一说
    3、数据中没有 BOM 头,就是说使用操作系统默认的字符集保存的
    4、从图片上看,日文部分似乎完整,未观察到乱码现象由此可知
    如果操作系统是简体中文的,那么字符集为 gbk
    如果操作系统是繁体中文的,那么字符集为 big5
    如果操作系统是日文的,那么字符集为 EUC 或 shift-JIS所以你只要根据,你操作数据文件的操作系统的字符集填写下面语句就可以了
    mysql_query("set names 字符集");
    转码的工作将会由 mysql 自动完成
      

  5.   

    xuzuning大大:您好!回答:我们是从日本amazon网站下载的,操作者的系统一般是繁体和日文,如果不能实现多系统,那以日文系统为准,我们可以要求操作者全用日文系统。1.记事本显示的是ansi编码
    2.我访问日文网站的很多都是shift-jis编码
    我想问一下,如果我用了EUC或shift-JIS,那我们用简体或繁体的显示会不会有问题呢??
      

  6.   

    访问日文网站的很多都是shift-jis编码
    那么下载的文件就是shift-jis编码的,导入数据库是也用 shift-jis 编码简体或繁体是中文的概念,与日文无关
    当你操作 简体或繁体 的数据来源时,自然也就是 gbk 或 big5 啰最终存放在数据库中的不都是 utf-8 的吗
    不也就同一起来了吗
      

  7.   

    嗯,谢谢xuzuning大大,我今天试试!
      

  8.   

    我们的做法是,将download下载的订单,先转化成excel格式,之后通过php读取。
      

  9.   

    zy205817你好,你们这样做,跟我们用记事本转utf-8都是一样,都要人工转一次码。xuzuning 大大,我想请问,PHP可不可以对txt文件进行转码呢?就像我们用记事本进行转码一样???
      

  10.   

    xuzuning 大大:
      还有上次我截图日文没有乱码,这个是我同事给我的txt文档,今天我直接从日文网站下载下来,打开日文部分全是乱码,需要用excel进行转码,用记事本直接转uft-8都不行