我们现在每天从日本网站上下载一个订单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');
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');
你说“用记事本把txt转成utf-8”,那么当你用记事本打开这个文件的时候能正确显示内容吗?没有乱码?
你使用的是日文操作系统吗?
如有可能,你可贴出数据文件片段以供分析
echo base64_encode(file_get_contents('你的数据文件.txt', false, null, 0, 40));
贴出结果
b3JkZXItaWQJb3JkZXItaXRlbS1pZAlwdXJjaGFzZS1kYXRlCXBheQ==
1、每次都要先用记事本把txt转成utf-8,显然文本不是utf-8的否则不需要转换
2、操作系统是 window 系列的,不然没有“记事本”一说
3、数据中没有 BOM 头,就是说使用操作系统默认的字符集保存的
4、从图片上看,日文部分似乎完整,未观察到乱码现象由此可知
如果操作系统是简体中文的,那么字符集为 gbk
如果操作系统是繁体中文的,那么字符集为 big5
如果操作系统是日文的,那么字符集为 EUC 或 shift-JIS所以你只要根据,你操作数据文件的操作系统的字符集填写下面语句就可以了
mysql_query("set names 字符集");
转码的工作将会由 mysql 自动完成
2.我访问日文网站的很多都是shift-jis编码
我想问一下,如果我用了EUC或shift-JIS,那我们用简体或繁体的显示会不会有问题呢??
那么下载的文件就是shift-jis编码的,导入数据库是也用 shift-jis 编码简体或繁体是中文的概念,与日文无关
当你操作 简体或繁体 的数据来源时,自然也就是 gbk 或 big5 啰最终存放在数据库中的不都是 utf-8 的吗
不也就同一起来了吗
还有上次我截图日文没有乱码,这个是我同事给我的txt文档,今天我直接从日文网站下载下来,打开日文部分全是乱码,需要用excel进行转码,用记事本直接转uft-8都不行