Исправлена кодировка немецких umlauts в каталогах и именах файлов (ü = U ê ê и так далее)

У меня много zip-файлов, в которых есть ошибки кодирования для немецких umlauts (äüöäüß). Они появляются в обоих имени файла.zip, а также во включенных каталогах и файлах, как это:

  • Fünf = Fu ê ènf
  • Räuber = Ра╠êuber
  • Überfall = Щ╠êberfall

и так далее. Обычно я использую Linux, но из-за этого я также пробовал виртуальную машину Windows7, но это приводит к тому же беспорядку кодирования. На Linux я играл с convmv и детоксикация, но без успеха.

когда я использую

  • convmv-F iso-8859-1 -t utf8 -- заменить --notest-r *

Я получаю "пропуск, уже UTF-8".

какие мысли по этому поводу?

20
задан cider
22.05.2023 13:21 Количество просмотров материала 3172
Распечатать страницу

3 ответа

причина, что вы получаете "уже в UTF-8" предупреждение, что эти строки на самом деле уже в UTF-8. Символ " ü "был закодирован в стиле OSX как "u", за которым следуют два байта "\xCC"и" \x88". Эти два байта в кодировке UTF-8 представление \u0308, в диерезиса.

Если вы посмотрите на кодовую страницу 437 листинг здесь, вы увидите символ \xCC как "ê" и символ \x88 как "быть".

все, что угодно оно что вы используя для отображения этих символов не интерпретируя их как UTF-8, а как CP437.

быстрое доказательство, если Вы читаете ruby, который отображает, как и ожидалось в моем терминале UTF-8:

$ ruby -e 'puts "u\xCC\x88"' | iconv -f cp437 -t utf-8
ü
$ ruby -e 'puts "u\xCC\x88"'
ü
2
отвечен S2VpdGgA 2023-05-23 21:09

Я предполагаю, что файловая система, которую вы пытаетесь распаковать или манипулировать файлами. FAT32 не понравится вашим умляутам. Попробуйте скопировать эти файлы с флэш-накопителя (или что у вас есть) и затем распакуйте zip-файл, чтобы увидеть, какие символы производят имена файлов.

NTFS (Windows) и Ext4 (Mint) не должны иметь проблем с кодировкой имен.

кодировка имен самих zip-файлов в системе FAT32 скорее всего, они не будут изменены или исправлены при копировании в соответствующую файловую систему поддержки, но подкаталоги при распаковке должны быть в порядке.

0
отвечен CenterOrbit 2023-05-23 23:26

во-первых, обратите внимание, что кодировка это своя часть ада. В мире Windows все еще существует неприятный дуализм между UTF-8 и M$, который долгое время играл глупо и настаивал на ISO-8859 (угадайте, кто его придумал). Как уже упоминалось выше, она почти наверняка что-то делать с файловой системой. Мое решение не техническое, а то, что работает у меня уже много лет:

мой личный совет для имен файлов всегда один и тот же: просто придерживайтесь буквенно-цифровые плюс тире ( - ) и подчеркивание ( _ ). Напишите umlaute как ae, ue и oe. Не используйте пробелы и другие специальные символы. Сначала это немного неудобно, но это избавит вас от боли в неожиданных местах.

в качестве примечания: да, это своего рода неприятный "хак", но если вы работаете на кросс-платформе, вам часто приходится возвращаться к последнему общему знаменателю. Вы бы приняли это как должное, что что-то основное, как кодирование символов, будет жестким стандартом, но это оказывается, стандарты трудно получить. Это XKCD summes это весьма приятно

0
отвечен paradoxon 2023-05-24 01:43

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх