При попытке импортировать CSV-файл арабские символы исчезают при запуске fgetcsv
, но когда я печатаю вывод из fopen
, арабские символы отображаются просто отлично. Странно то, что это происходит только в нашей производственной среде, а не в моей среде разработки, где fgetcsv
читает арабские символы. Есть ли какие-то настройки сервера, которые не установлены правильно на производстве?
fgetcsv()
делает предположения о кодировке файла на основе локали системы. Как указано в руководстве PHP:
Эта функция учитывает настройку локали. Если
LANG
, например,en_US.UTF-8
, файлы в однобайтовом кодировании неправильно считываются этой функцией.
Вам может потребоваться сравнить настройки локали на ваших двух машинах и либо навсегда изменить их на одном из них, либо использовать что-то вроде setlocale(LC_ALL, 'ar_AE.utf8')
(второй аргумент, очевидно, будет зависеть от кодировки вашего файла) до вашего fgetcsv()
.