Я загружаю CSV-файл на мою веб-страницу из скрипта Python.
Код Python:
url = 'http://MYURL'
files = {'file': ('report.csv', report)} // report is my csv file
resp = requests.post(url, files=files)
Код PHP:
header("Content-Type: text/html; charset=utf-8"); // Having this made no difference to output
$csv = array_map('str_getcsv', file($_FILES['file']['tmp_name']));
$keys = array_shift($csv);
foreach ($csv as $index => $values) { // For every row in csv
$result = array_combine($keys, $values);
$result = array_map('utf8_encode', $result); // Add UTF-8 encoding
var_dump(mb_detect_encoding($result['Name']));
var_dump($result['Name']);
}
Запускаю ли яPHP Script, непосредственно загружая файл или используя Python-скрипт для загрузки файла, mb_detect_encoding()
возвращает 'UTF-8'.
Однако при запуске PHP Script напрямую $result['Name']
return ü
(правильный).При запуске из скрипта Python возвращается ü
(неточно).
Загружаемый файл .csv точно такой же и кодируется как ISO-8859-1.Почему запуск из скрипта Python приводит к неправильной кодировке?
Редактировать:
Вот результаты hexdump -C csvfile.csv
00000000 22 58 58 58 58 20 fc 62 65 72 22 |"XXXX .ber"|
0000000b