linux下php插入韩文txt文件内的数据,插入进去的内容部分丢失
是服务器的编码格式跟我本地计算机不一样吗?
以上问题,在本地计算机都没有出现这个问题,linux服务器就出出现这个问题。
回复讨论(解决方案)
最容易想到的问题就是 BOM 头
但是我用的utf-8的格式呀,不用设置BOM头的吧? 那我该如何解决呢?非常感谢
所有的文字处理软件在存储非 ANSI 编码的内容时都会附加上相应字符集的BOM头
BOM头的作用是在不同系统中,使文件的内容得到正确的解释
mysql 不是文字处理软件,他有良好的字符集识别功能,因此他不需要 BOM 头的帮助。相反 BOM 会给 mysql 带来困扰。因为 BOM 头不会出现在任何字符集中(不然就被当做文字识别了),mysql 不知道该如何处理它
通常是删去不认识的编码组合,结果是可能多删或少删了,造成文字不完整,甚至乱码
我觉得应该是数据库字符集的问题(这个我不熟悉),毕竟两台机器就是两个数据库,设置可能不同
bom头问题,如果上传(或复制)的软件没有设置,一般不会额外添加或删除
用字节方式传这个txt,然后程序考虑换行的问题(win是\r\n,linux是\n)
先读入echo一下文本看看是否读入就有问题,然后再考虑数据方面的
唉,延时严重,回复完刷新才看到图,贴几行win7和linux的数据对比来看看
我导入的的txt韩文文档我是存为euckr的格式的。我把格式换成ANSI的格式后,导入的内容是没有减少了,但是所有韩文的文字都是显示的问号。
ANSI 只能在相同的操作系统中使用
如果有可能,你传一个文本到公网上,我们看一下
可以传到:
你的公网网站中,并给出链接
你的 CSDN 网盘中,并分享出来
CSDN 的下载频道(注意不要有下载分),并给出链接
我上传到网盘,还要通过审核,不知道要等多久才可以提供链接给你。
要不你给我一个邮箱地址吧,我发你邮箱。
我觉得应该是数据库字符集的问题(这个我不熟悉),毕竟两台机器就是两个数据库,设置可能不同
bom头问题,如果上传(或复制)的软件没有设置,一般不会额外添加或删除
用字节方式传这个txt,然后程序考虑换行的问题(win是\r\n,linux是\n)
先读入echo一下文本看看是否读入就有问题,然后再考虑数据方面的
插入打印的SQL和数组也是不正常的。 丢失的部分也没有打印出来。