Hi!
a következő problémával fordulok a közösséghez:
Van egy régi particióm(reiserfs) amin van egy nagycsomo konyvtár telis tele apro fileokkal amiknek 90% ékezetes névvel rendelkezik és persze az egész filerendszer iso8859-2 karakterkészlettel készült.
Namármost ubuntu nagy örömömre váltott utf8ra, én meg kis naivan gondoltam semmi gond fstabba iocharset... és már megy is... hát nem nyertem mert reiserfs barátunk nem ismeri ezt a mount opciót, így marad a ékezetes karakterek helyettesítése kérdőjellel.
szoval kérném a segitségeteket hogy hogyan lehetne ezt a gondot megoldani ha lehet anélkül hogy az egészet átkonvertálnám utf8ra
thx!!
- 1432 megtekintés
Hozzászólások
Anélkül szerintem egyáltalán nem lehet, hacsaknem olyasmi gányolásokkal, mint egy megfelelő fuse-n vagy ld_preload-os library-n keresztül nézed a fájlrendszert, amire nem tudok róla hogy lenne előre elkészített szoftver.
Az iocharset opció csak a Windows szemléletű fájlrendszereknél működik (ahol a fájlnév mindenképpen UTF-16-ban van tárolva, ami a Linux számára semmiképp sem jó, mert nem ascii-kompatibilis). A Linux/Unix szemléletű fájlrendszerek esetén (ahol a fájlnév egy ascii-kompatibilis bytesorozat egy meghatározatlan karakterkészletben) sajnos nem nyújt lehetőséget a kernel karakterkészlet-konverzióra.
Egyébként konvertálásra ajánlom a convmv parancsot. Ne félj tőle, ha az ember egyszer átáll UTF-8 kódolásra, aligha van egyetlen józan érv is ami miatt vissza akarna állni később Latin2-re.
- A hozzászóláshoz be kell jelentkezni
probáltam használni a convmv de a következőt kaptam:
root@Reaktor:/mnt/DataSAM-Reiser/Anita# ls
Keba koll?giumi lemnod?s.doc Megold?sok.zip ?n?letrajz.doc Sorok.zip
root@Reaktor:/mnt/DataSAM-Reiser/Anita# convmv koll▒giumi\ lemnod▒s.doc -f iso8859-2 -t utf8
Skipping, already UTF-8: ./koll▒giumi lemnod▒s.doc
No changes to your files done. Use --notest to finally rename the files.
root@Reaktor:/mnt/DataSAM-Reiser/Anita#
(megprobáltam megnézni hogy mi van akkor ha a terminálon átállítom a kódolást iso-ra(pl puttyban a translation-nél), igy a file nevek tök jok, viszont az összes többi nem)
ugyhogy további ötleteket kérek
- A hozzászóláshoz be kell jelentkezni
Azok a téglalapok hogy kerülnek oda? Szerintem tök rossz fájlnevet adsz be a convmv-nek. Vagy nem tudom. Próbáld úgy, hogy a convmv-nek * argumentumot adsz (vagy mondjuk *.doc, de a paracssorba ne írj ékezetet és ne hagyd hogy a TAB-os kiegészítés olyat rakjon).
Ha nem megy, akkor ki kéne elemezni valami hex viewerrel hogy a fájlnevek milyen byte-okat tartalmaznak, valóban latin2-e. Például echo * > foo, majd foo megnézése valami hex viewerrel.
Továbbá megpróbálnám esetleg a latin2-es terminálból indítani a convmv-t.
Nagyon-nagyon fontos!!! A terminál tényleges kódolása és a megfelelő locale változók által meghatározott kódlap (LANG, LC_CTYPE, LC_ALL változók, a "locale charmap" kiírja a vélt karakterkészletet) minden esetben meg kell hogy egyezzenek, ellenkező esetben nem várható el helyes működés sok-sok alkalmazástól. Ha a bash szolgáltatásait (parancssor-szerkesztés, tab-os kiegészítés, stb.) használod, fontos, hogy a két dolog már a bash indítása _előtt_ be legyen állítva összeillőre. Tehát például putty-ban (minek ssh-zol? pterm!) szóval először állítsd be a locale-t hu_HU-ra, és utána indítsd el a pterm-et iso8859-2 módban, ekkor kapsz egy jó latin2-es környezetet.
- A hozzászóláshoz be kell jelentkezni
na megvan a megoldás:
convmv -f latin2 -t utf-8 -r -i --notest könyvtár/
rosszul használtam láma módon
és már kész is az egész filerendszer...
kösz a helpt
- A hozzászóláshoz be kell jelentkezni