Portál AbcLinuxu, 12. května 2025 11:24
file
mi hodil: UTF-8 Unicode English text
.
Vdaka.
Muj laickej postup by byl otevřít v textovym editoru a pak nahradit všechny písmena (replace all) ... když už to nechcete dělat skriptem.
cstocs -i utf-8 ascii file_name
iconv
, recode
.
Moznosti je spousta, jde to treba takto:
cat soubor1 | \
tr áéěíóúůýžščřďťňľ aeeiouuyzscrdtnl > \
soubor2
Pokud chybi nejaka, treba velka pismena, staci doplnit.
Nebo zkuste: skript cnv
pro SED od L. Škarvady. Pro ziskani informaci o pouziti staci spustit:
# ./cnv
jen tak na prazdno bez parametru.
mood = (machine != slackware) ? depressed : euphoria;
Tohle jede i v utf8? Máš na to nějaký patch pro tr, po kterém to nahrazuje ne po osmibitových skupinách, ale po písmenech podle locale?Moznosti je spousta, jde to treba takto:
cat soubor1 | tr áéěíóúůýžščřďťňľ aeeiouuyzscrdtnl > soubor2
No jo, nejak jsem prehlidnul ze se tady mluvi o utf8. Moc se omlouvam. Vtom pripadu asi nebude fungovat ani ta legracka cnv
.
mood = (machine != slackware) ? depressed : euphoria;
$ cat abeceda_cz áÁčČďĎěĚéÉíÍňŇóÓřŘšŠťŤúÚůŮýÝžŽ $ recode --force utf8..flat abeceda_cz $ cat abeceda_cz aAcCdDeEeEiInNoOrRsStTuUuUyYzZMusí se dát parametr --force, protože jde o nevratné překódování.
#!/usr/bin/env python import unicodedata old = u'ahojáÁčČďĎěĚéÉíÍňŇóÓřŘšŠťŤúÚůŮýÝžŽ' norm = unicodedata.normalize('NFKD', old) new = norm.encode('ascii', 'ignore') print old print newVýsledek:
ahojáÁčČďĎěĚéÉíÍňŇóÓřŘšŠťŤúÚůŮýÝžŽ ahojaAcCdDeEeEiInNoOrRsStTuUuUyYzZZákladní myšlenka by měla fungovat pro jakékoli kódování.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.