[ conekg @ 15.03.2002. 22:18 ] @
Pozdrav svima,

Da li postoji neka funkcija koja bi konvertovala ćirilični tekst u latinični ili obratno?
Ovo je jako korisno za sajtove koji imaju i ćiriličnu i latiničnu verziju, da se tekst ne bi dvaput unosio.

Takođe me interesuje kako(i da li) je moguće da se u MySQL bazi čuva UTF-8 enkoding, ili sve mora da se završi sa Postgresql-om.

Nemanja
[ Jbyn4e @ 17.03.2002. 15:14 ] @
Koliko se meni cini (gledam manual upravo) postoji samo mogucnost konverzije izmedju razlicitih cirilicnih enkodinga, ali ne iz cirilice u latinicu i obrnuto. Dakle, sto se tice php-a - odgovor je NE.
[ Toni @ 17.03.2002. 21:39 ] @
Citat:
Jbyn4e:
Koliko se meni cini (gledam manual upravo) postoji samo mogucnost konverzije izmedju razlicitih cirilicnih enkodinga, ali ne iz cirilice u latinicu i obrnuto. Dakle, sto se tice php-a - odgovor je NE.


e reci mi imena funkcija tih nesho tih malo experimentisao :)
[ leka @ 18.03.2002. 12:36 ] @
Ako je nesto prosto to je konverzija cirilice u latinicu... :) Bez zezanja, veoma sam ozbiljan... Bitno je samo da znate koji enkoding koristite i gde se u toj kodnoj stranici nalaze nasa slova, sve ostalo je boza...

prosto onda mozete da uradite nesto tipa $cirprom = "c"; // cirilicno S, malo

[ leka @ 18.03.2002. 12:37 ] @
Naravno, treba vam i neki dobar editor, preporucujem KOMODO! :)
[ Jbyn4e @ 18.03.2002. 15:45 ] @
Citat:
Toni:
e reci mi imena funkcija tih nesho tih malo experimentisao :)

FunkcijE, ne funkcija:
convert_cyr_string
(PHP 3>= 3.0.6, PHP 4 >= 4.0.0)
convert_cyr_string -- Convert from one Cyrillic character set to another
Description
string convert_cyr_string (string str, string from, string to)
... itd itd, vidi manual za vise (string funkcije su u pitanju).
[ Jbyn4e @ 18.03.2002. 15:48 ] @
Citat:
leka:
Ako je nesto prosto to je konverzija cirilice u latinicu... :) Bez zezanja, veoma
...
Naravno, treba vam i neki dobar editor, preporucujem KOMODO! :)

Pa da, ali nema gotovu funkciju, jel tako, mora da je pravi...
Ajde bar da si ostavio link za ovu komodu... u cemu je on bolji od ultraedita Leko?
[ Zoran Rašković @ 18.03.2002. 15:54 ] @
mislis od Edit Plusa :)
[ conekg @ 18.03.2002. 19:49 ] @
Pozdrav,

Naravno ja sam pretpostavio da ovakva funkcija već postoji pa se na nju odnosilo moje pitanje.

Vidim da me mnogi nisu razumeli ... evo šta je ideja :
Da se pri unosu informacija na sajt koji postoji u ćiriličnoj i latiničnoj varijanti izbegne duplo kucanje teksta već da PHP odradi konverziju i da u jednu bazu upiše ćiriličnu a u drugu latiničnu varijantu (to mogu biti i dve tabele ukoliko se radi sa Postgresql-om i ako je baza UTF-8).

Posao sam od predpostavke da se tekst unosi u UTF-8 enkodingu.
Nisam uspeo da funkcijom strtr obradim tekst u UTF-8 enkodingu jer on ASCII karaktere piše jednim bajtom dok ostale sa dva bajta. Tako da ako zamenim na primer ćirilično R latiničnim dobijem latinično R i ostatak od jednog bajta u obliku brljoke. Tako da sam prvo morao da izvrsim konverziju iz UTF-8 enkodinga u ISO-8859-5(2) uz pomoć funkcije iconv. Pa onda da korišćenjem strtr funkcije prebacim latinicu u ćirilicu ili obratno. Naravno javlja se problem sa Lj Nj Dž tako da bi tu moralo malo da se poradi.

Nemanja
[ maliX @ 08.05.2002. 14:44 ] @
zašto praviti dve baze/tabele/bilo šta za ćirični i latinični tekst? zar nije lakše uneti samo latinični tekst u bazu, i pomoću php skripte uraditi "prevod"? pri tome enctzpe na strani za unos može biti windows-1250 il iISO-8859-2 (latinični kodni rspored), dok na stranici na kojoj se prikazuje ćirilični tekst kodni raspored MORA biti UTF-8. skripta (funkcija je nešto poput:)
[funkcija start]
function lat2cyr($n) {
$n=str_replace("a", "а", $n);
$n= str_replace("b", "б", $n);
$n=str_replace("c", "ц", $n);
$n=str_replace("è", "ч", $n);
$n= str_replace("æ", "ћ", $n);
$n=str_replace("d", "д", $n);
$n=str_replace("dj", "ђ", $n);
$n=str_replace("dž", "џ", $n);
$n=str_replace("e", "е", $n);
$n=str_replace("f", "ф", $n);
$n=str_replace("g", "г", $n);
$n=str_replace("h", "х", $n);
$n=str_replace("i", "и", $n);
$n=str_replace("j", "ј", $n);
$n=str_replace("k", "к", $n);
$n=str_replace("l", "л", $n);
$n=str_replace("lj", "љ", $n);
$n=str_replace("m", "м", $n);
$n=str_replace("n", "н", $n);
$n=str_replace("nj", "њ", $n);
$n=str_replace("o", "о", $n);
$n=str_replace("p", "п", $n);
$n=str_replace("r", "р", $n);
$n=str_replace("s", "с", $n);
$n=str_replace("š", "ш", $n);
$n=str_replace("t", "т", $n);
$n=str_replace("u", "у", $n);
$n=str_replace("v", "в", $n);
$n=str_replace("z", "з", $n);
$n=str_replace("ž", "ж", $n);
$n=str_replace("A", "А", $n);
$n=str_replace("B", "Б", $n);
$n=str_replace("C", "Ц", $n);
$n=str_replace("È", "Ч", $n);
$n=str_replace("Æ", "Ћ", $n);
$n= str_replace("D", "Д", $n);
$n=str_replace("DJ", "Ђ", $n);
$n=str_replace("DŽ", "Џ", $n);
$n=str_replace("E", "Е", $n);
$n=str_replace("F", "Ф", $n);
$n=str_replace("G", "Г", $n);
$n=str_replace("H", "Х", $n);
$n=str_replace("I", "И", $n);
$n=str_replace("J", "Ј", $n);
$n=str_replace("K", "К", $n);
$n=str_replace("L", "Л", $n);
$n=str_replace("LJ", "Љ", $n);
$n=str_replace("M", "М", $n);
$n=str_replace("N", "Н", $n);
$n=str_replace("NJ", "Њ", $n);
$n=str_replace("O", "О", $n);
$n=str_replace("P", "П", $n);
$n=str_replace("R", "Р", $n);
$n=str_replace("S", "С", $n);
$n=str_replace("Š", "Ш", $n);
$n=str_replace("T", "Т", $n);
$n=str_replace("U", "У", $n);
$n=str_replace("V", "В", $n);
$n=str_replace("Z", "З", $n);
$n=str_replace("Ž", "Ж", $n);
$n=str_replace("лј", "љ", $n); //lj
$n=str_replace("нј", "њ", $n); //nj
$n=str_replace("дј", "ђ", $n); //dj
$n=str_replace("дј", "џ", $n); //dž
$n=str_replace("ЛЈ", "љ", $n); //LJ
$n=str_replace("НЈ", "Њ", $n); //NJ
$n=str_replace("Дј", "Ђ", $n); //DJ
$n=str_replace("ДЖ", "Џ", $n); //Dž
return $n;
}
[kraj funkcije]
u stranici gde di traba:
$cyr_tekst = lat2cyr($lat_tekst);

HTH
[ random @ 08.05.2002. 15:11 ] @
Ahm, mala primedba -- ne treba da menjaš "dj" nego slovo "đ". Kombinacija "dj" se redovno javlja u našem jeziku bez da predstavlja slovo "đ" (odjek, odjava, nadjačati, podjarmiti, odjebati, itd.).

Takođe treba paziti na engleske reči, rimske brojeve, itd. koji se ne smeju prevoditi u ćirilicu.