Portál AbcLinuxu, 5. května 2025 17:31

Dotaz: změna kódování v podadresáři

7.3.2023 23:04 lertimir | skóre: 64 | blog: Par_slov
změna kódování v podadresáři
Přečteno: 306×
Odpovědět | Admin
řeším problém s kódováním: Stáhl jsem si kus webu pomocí wget -r a mám v mnoha adresářích toho webu názvy souborů jako Dans le m'$'\351''tro nebo '$'\340'' louer. Web to byl/je prastarý a neposlal charset a i interní názvy ve struktuře adresářů v url byly lokálním kódování. Nejbližší jsem nalezl je kódování ISO-8859-1, struktura '$'\oktalove_cislo', je/odpovídá ISO charakteru (ve francouštině). Ale celé to samozřejmě se zapsalo na FS (btrfs) s kódováním UTF-8. Mount (mount bind) by umožnil nadefinovat charset jen na FAT, NTFS, nebo ISO9660. Nějaký nápad? Nechce se mi procházet stovky souborů a měnit to ručně a ani otravovat znovu server s několika dalšími tisicí stahování, které jsou v pořádku.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

7.3.2023 23:13 X
Rozbalit Rozbalit vše Re: změna kódování v podadresáři
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jen pro ujasneni. Problem je v nazvech souboru, v obsahu souboru, nebo v obojim?
7.3.2023 23:37 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: změna kódování v podadresáři
V názvech souboru.
Řešení 1× (lertimir (tazatel))
7.3.2023 23:57 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: změna kódování v podadresáři
Odpovědět | | Sbalit | Link | Blokovat | Admin
Našel jsem. Program convmv
8.3.2023 11:22 PetebLazar | skóre: 34 | blog: l_eonardovo_odhodlani
Rozbalit Rozbalit vše Re: změna kódování v podadresáři
Ty vyšší znaky v řetězcích jsou zapsány v octal?
8.3.2023 18:07 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: změna kódování v podadresáři
Takto mě vypíše ls -l název souboru. A po prozkoumání, co to je, jsou octal. (ono to ani nejsou "vyšší znaky", jen znaky které utf8 neumí interpretovat.)

A zřejmě ten zdrojový kód je po zápisu win1252, což je superset iso-8859-1, který má tisknutelnými znaky obsazené i znaky 128-159 (0x80-0x9F). Narazil jsem na nekolik jmen souborů se znakem . Znakové sady ISO neobsazovaly tisknutelnými znaky rozsahy (0x00-0x1f a 0x80-0x9f), pravděpodobně proto, že v roce 1987, kdy vznikalo iso, bylo ještě dost komunikačních zařízení/programů/služeb způsobilých jen pro 7-bit ASCII, a některé z nich dokonce vynulovaly osmý bit a ostatní nechaly, pokud na něj v komunikaci narazily. (Pamatuji si SMTP server) a díky tomu, že v 0x00-0x1f jsou v ASCII řídící kód, tak patrně riziko, že po průchodem takovým programem řídící kódy způsobí rozpad textu bylo vyšší než 32 možných získaných znaků.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.