sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #84702
Re: Problemer med bogstaver efter opdatering af samba
Finn Johannessen skrev:
> Det virker for alle nyoprettede filer.... men ikke for dem der
> ligger der i forvejen...
Godt.
Så skal du bare have omdøbt alle de filer, hvis navne giver mening i
UTF-8, til navne der giver mening i ISO-8859-1.
Selve omkodningen af et filnavn fra UTF-8 til ISO-8859-1 kan klares
med kommandoen:
nyt="$(echo "${gammelt}" | recode --quiet --force UTF-8..ISO-8859-1)"
Det svære er at adskille omkodningen af katalognavnene og katalogernes
indholds navne. En måde det kan klares på er nok omtrent således
(uafprøvet, virker ikke med linjeskift i filnavne):
cd /utf-8-kodet-katalog/
find . -type f | while read gammelt; do
fejl=nej
nyt="$(echo "${gammelt}" | recode --quiet --force UTF-8..ISO-8859-1 || fejl=ja)"
if [ ${fejl} = ja ]; then
echo "Kunne ikke omkode '${gammelt}' fra UTF-8 til ISO-8859-1." 1>&2
elif [ -e "${gammelt}" ]; then
nyt_katalog="/iso-8859-1-kodet-katalog/$(dirname "${nyt}")"
mkdir -p "${nyt_katalog}"
mv -i "${gammelt}" "${nyt}"
else
echo "Der er problemer med '${gammelt}'." 1>&2
fi
done
> Det drejer sig om 539148 + 390646 filer på de 2 servere... så der
> skal en stor konvertering igang....
Det er en smule afbejde, men det kan heldigvis automatiseres.
> PS: jeg har en testserver stående.... hvor jeg har fat i de samme filer som
> på den oprindelige server....
> Her har jeg oprettet et bibliotek hvor en mappe hedder "Værksteds 0rdre
> 2000"...
>
> Og med LANG="en_US.UTF-8" vises denne som "V?rksteds 0rdre 2000"
> dir viser her "V\346rksteds\ 0rdre\ 2000"
>
> Og med LANG="da_DK" vises denne som "Værksteds 0rdre 2000"
> dir viser her "Værksteds\ 0rdre\ 2000"
Det ser jo godt nok ud.
Jacob
--
"Computer Science is to Science, as Plumbing is to Hydrodynamics"
Follow ups
References