PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

linux下php插入韩文txt文件内的数据,插入进去的内容部分丢失

原创
2016-06-23 14:06:23 705浏览

请各位大侠帮忙!!!我利用php程序插入韩文txt文档,本地计算机win7可以插入后正常,并打印正常数组。但是搬移到linux服务器上后,再次运行导入同样的程序来导入同样的txt文件,插入进去的内容,部分韩文的文字会丢失,打印的插入sql和数组也不正常,不会显示丢失的内容已经不在打印的sql语句和数组显示了。
是服务器的编码格式跟我本地计算机不一样吗?



以上问题,在本地计算机都没有出现这个问题,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和数组也是不正常的。 丢失的部分也没有打印出来。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。