Portál AbcLinuxu, 5. května 2025 01:39

Dotaz: odstranenie diakritiky v UTF-8 v php

26.1.2007 10:31 Balvan
odstranenie diakritiky v UTF-8 v php
Přečteno: 1594×
Odpovědět | Admin
Ahoj vsetci

poprosil by som o radu ako prepisem v stringu ktory je kodovany v utf-8 diakriticke znaky na ich ekvivalent

kedze riesenie $pole ('á'=>a); str_tr($pole,$string)

je nevyhovujuce lebo ak sa zabudne na niektory znak ( a to nehovorim o znakoch svetskych a podobne :D) neurobi to korektne

dalsim riesenim je iconv('UTF-8', 'ASCII//TRANSLIT', $text);

hmm ale toto mi neako vracia nezmysly resp. nieco je mozno v iconv zle nastavene

Ak by sa nieco rozumne naslo a pomohlo bol by som rad a dakujem

Vas odanny a milujuci Balvan PS: a ak mi pride aj mail z riesenim budem len rad :D balvan@azet.sk
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

26.1.2007 10:44 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: odstranenie diakritiky v UTF-8 v php
Odpovědět | | Sbalit | Link | Blokovat | Admin
Iconv také niečo asi nevie, ale recode by to malo zvládnuť.
26.1.2007 10:49 svatekr | skóre: 18 | blog: Svatekr | Teplice
Rozbalit Rozbalit vše Re: odstranenie diakritiky v UTF-8 v php
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tohle by nestačilo? function utf8_to_ascii($utf8text) {
$return = strtr($utf8text,"áčďéěíľňóřšťúůýžÁČĎÉĚÍĽŇÓŘŠŤÚŮÝŽ","acdeeilnorstuuyzACDEEILNORSTUUYZ");
return $return;
}
Každé zbytečně vyřčené slovo je vyřčeno zbytečně.
26.1.2007 11:12 podlesh | skóre: 38 | Freiburg im Breisgau
Rozbalit Rozbalit vše Re: odstranenie diakritiky v UTF-8 v php
Tazatel explicitně uvedl, že nestačilo.

Na stránkách unicode se dá stáhnout kompletní databáze (pozor, není malá). Z tohoto souboru se dá (mimo jiné) vygenerovat kompletní převodní tabulka, protože jeden sloupec obsahuje normalizované rozložení na komponenty. Například pro pro č:
010D;LATIN SMALL LETTER C WITH CARON;Ll;0;L;0063 030C;;;;N;LATIN SMALL LETTER C HACEK;;010C;;010C
č se skládá z 0x63 ("c") a 0x30c (háček)

Pro některé jazyky jsou již tato data dostupná jako knhovna od IBM, v Pythonu je to součástí standardní knihovny.
9.2.2007 16:18 Balvan
Rozbalit Rozbalit vše Re: odstranenie diakritiky v UTF-8 v php
:D a toto urcite nebude fungovat pre utf8 aby to fungovalo nusi to byt v poli ako hovori kamarat(Quax) ked ho vycerpavam prosbami o pomoc rtfm -> read the fucking manual :D

array('á'=>'a');

totok len pre tych ktory by to skusali a neslo im to :D :D
Tarmaq avatar 20.3.2009 14:20 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: odstranenie diakritiky v UTF-8 v php
OT: k cemu je dobra promenna $return? neni lepsi to napsat rovnou takto?
return strtr($utf8text,"áčďéěíľňóřšťúůýžÁČĎÉĚÍĽŇÓŘŠŤÚŮÝŽ","acdeeilnorstuuyzACDEEILNORSTUUYZ");
Don't panic!
26.1.2007 11:48 Ondrej Ivanic
Rozbalit Rozbalit vše Re: odstranenie diakritiky v UTF-8 v php
Odpovědět | | Sbalit | Link | Blokovat | Admin
jedno z rieseni je PECL balik translit, http://pecl.php.net/package/translit

http://derickrethans.nl/translit.php
9.2.2007 16:11 Balvan
Rozbalit Rozbalit vše Re: odstranenie diakritiky v UTF-8 v php
Odpovědět | | Sbalit | Link | Blokovat | Admin
hmm lenze PECL neni standartne instalovane v hostingovych spolocnostiach a ja potrebujem univerzalne riesenie skusal som ja prevodnu tabulku , celkom hracka :D ak by sa naslo este nieco krajsie bol by som uplne ze hapy hapy :D a ked som hapy nenaseriem svoje okolie a tym padom moje okolie nenaserie ostatnych a tak aj vby prispejete k svetovemu pokoju :D :D :D

vas Balvanik
27.3.2007 19:14 MOOB
Rozbalit Rozbalit vše Re: odstranenie diakritiky v UTF-8 v php
Odpovědět | | Sbalit | Link | Blokovat | Admin
function remDiak($in){ $trans = array("á"=>"a", "ä"=> "a", "č"=>"c", "ď"=>"d", "é"=>"e", "ě"=>"e", "ë"=>"e", "í"=>"i", "ï"=>"i", "ň"=>"n", "ó"=>"o", "ö"=>"o", "ř"=>"r", "š"=>"s", "ť"=>"t", "ú"=>"u", "ů"=>"u", "ü"=>"u", "ý"=>"y", "ÿ"=>"y", "ž"=>"z", "Á"=>"A", "Ä"=>"A", "Č"=>"C", "Ď"=>"D", "É"=>"E", "Ě"=>"E", "Ë"=>"E", "Í"=>"I", "Ï"=>"I", "Ň"=>"N", "Ó"=>"O", "Ö"=>"O", "Ř"=>"R", "Š"=>"S","Ť"=>"T", "Ú"=>"U", "Ů"=>"U", "Ü"=>"U", "Ý"=>"Y", "Ÿ"=>"Y", "Ž"=>"Z"); return(strtr($in, $trans)); }
15.6.2007 15:56 Balvan
Rozbalit Rozbalit vše Re: odstranenie diakritiky v UTF-8 v php
nepomoze nie su tu napriklad svedske, madarske , polske znaky atd.. toto je len pre sk cz a nestaci :-) ale aj za snahu dakujem btw.. v popise problemu som presne napisal ze tato metoda je nepostacujuca ale nevadi

dik za straveny cas a ochotu
15.6.2007 17:24 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: odstranenie diakritiky v UTF-8 v php
prevodnú tabuľku si vygeneruj, kľudne aj analýzou príkladu
27.3.2007 19:38 Ritchie | skóre: 27 | blog: Ritchie's | Berlin
Rozbalit Rozbalit vše Re: odstranenie diakritiky v UTF-8 v php
Odpovědět | | Sbalit | Link | Blokovat | Admin
Před pár dny jsem do on-line manuálu PHP doplnil k funkci iconv komentář, který pravděpodobně řeší váš problém. Tedy pokud těmi nesmysly jsou otazníky namísto původních znaků s diakritikou.
20.3.2009 12:09 Toník
Rozbalit Rozbalit vše Re: odstranenie diakritiky v UTF-8 v php

Vase fce pomoci iconv mi vraci

Zlutouck'y kun

je tam tedy navic apostrof :-(

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.