尝试导入CSV文件时,运行fgetcsv
时阿拉伯字符消失,但是当我从fopen
打印输出时,阿拉伯字符显示得很好。奇怪的是,这只发生在我们的生产环境中,而不是在我的开发环境中,fgetcsv
只读阿拉伯字符。有没有在生产中设置正确的服务器设置?fgetcsv()不读取阿拉伯字符
回答
fgetcsv()
对基于系统区域设置的文件编码做出了假设。正如PHP手册所述:
此功能考虑到语言环境设置。如果
LANG
是例如en_US.UTF-8
,单字节编码的文件被这个 函数读错了。
你可能想在你的两台机器比较区域设置和永久地改变它的其中一个,或者您fgetcsv()
之前使用类似setlocale(LC_ALL, 'ar_AE.utf8')
(第二个参数显然取决于你的文件的编码)。
它不适用,因为阿拉伯语永远不会是单字节编码。 – pguardiario
@pguardiario我知道,但系统区域设置也可能是基于UTF-16的。 – lafor
谢谢!显然,生产服务器上的语言环境设置不正确。在'fgetcsv'之前使用'setlocale(LC_ALL,'en_US.UTF-8')'做了窍门。 – Cole
- 1. Devart donetconnect连接器不读取阿拉伯文字符串
- 2. 阿拉伯字符编码
- 3. 与阿拉伯字符
- 4. Itextsharp和阿拉伯字符?
- 5. 阿拉伯字符问题
- 6. 创建阿拉伯字符
- 7. 阿拉伯字符运行
- 8. 与阿拉伯字符
- 9. 从NSMutableArray获取阿拉伯字符串
- 10. 的preg_match不检测阿拉伯字符
- 11. Tesseract不识别阿拉伯字符
- 12. 阿拉伯字符不被识别
- 13. 读取文本文件阿拉伯语字符在PHP
- 14. 如何从varchar数据类型读取阿拉伯字符?
- 15. 如何在Asp.net中读取阿拉伯字符集数据
- 16. 从文本文件中读取阿拉伯字符
- 17. 使用eclipse从mysql读取阿拉伯字符
- 18. 在阿拉伯字符文件名(阿拉伯字符)下载图像
- 19. 不需要的字符,而不是阿拉伯字符
- 20. str_replace函数不会取代阿拉伯字符
- 21. PDO数据库阿拉伯字符
- 22. PHP 5.4 - mySQL阿拉伯字符
- 23. 从Base64到HTML的阿拉伯字符
- 24. 用weka显示阿拉伯字符
- 25. Php删除Unicode阿拉伯字符
- 26. 对阿拉伯字符的验证
- 27. 阿拉伯字符base64编码问题
- 28. 显示阿拉伯文字符串
- 29. json是否支持阿拉伯字符?
- 30. Oracle 11g坚持阿拉伯字符
什么是csv文件的编码? – user4035
无法重现:我在utf8中用阿拉伯语创建了一个测试文件。 fgetcsv正常工作。 – user4035
你可以发布文件吗? – pguardiario