2015-01-30 6 views
0

Я керлинг для CSV-файла FORMA удаленного разъединить с помощью следующего вызова: завитокCurl Символ Евро

curl -H "Content-Type: text/csv; charset=utf-8" ftp://user:[email protected]:21/file.csv | iconv -f iso8859-1 -t utf-8 > tmp.csv 

Когда я проверить tmp.csv файл символ Евро (€) отображает, как < 80>

Проверка файла csv на разорвать € отображается правильно, поэтому я думаю, что что-то неправильно кодирует во время процесса завитки.

Googling предлагает добавить -H "Content-Type: text/csv; charset = utf-8" или iconv -f iso8859-1 -t utf-8 к моему вызову, но это не помогает.

Помогите мне перекрыть свою единственную надежду.

Вопрос, почему символ € вызывает много проблем с кодировкой?

ответ

1

Исходный файл, я считаю, содержит байт 0x80, который является управляющим символом в ISO-8859-1 и знак евро в ОС Windows 1252.

При вызове iconv так, как вы делали, используя ISO -8859-1 в качестве входного кодирования, он обрабатывает байт 0x80 в качестве кодового пункта U + 0080, который редакторы либо не отображают, либо отображаются как прямоугольник, либо отображаются как <80>.

Вы, скорее всего, хотите Windows 1252, который лечит байты 0x80, как U + 20AC, он же знак евро:

curl ftp://user:[email protected]:21/file.csv | iconv -f cp1252 -t utf-8 > tmp.csv 

BTW, ваш заголовок, который я удалил, задающий тип запроса, не ответ. И запрос пуст.

+0

Совершенно благодарю вас. Спасибо за объяснение, а –

Смежные вопросы