Неправильная кодировка при запуске страницы из запроса POST - PullRequest
0 голосов
/ 17 апреля 2019

Я загружаю 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...