|
[ Nemanja Avramović @ 23.08.2007. 08:48 ] @
| Radio sam neku migraciju sa jedne web aplikacije na drugu pa su mi se karakteri u tekstovima malo zeznuli 
Planirao sam da prođem kroz sve tekstove u bazi, da replace-ujem dvobajtne karaktere sa odgovarajućim UTF-8 entitetima i da ih vratim nazad u bazu. To nije problem da uradim, ali me zanima koji su dvobajtni karakteri za naša velika slova. Za mala sam lako izvukao, i to su:
š - Å¡
đ - Ä‘
ž - ž
č - Ä
ć - ć
Našao sam da je za Č - ÄŒ, ali retko gde imam početak rečenice velikim slovom, a ne mogu da prolazim ručno kroz preko 100 tekstova da tražim odgovarajuće entitete, pa ako neko zna, bilo bi lepo da postavi ovde. Hvala unapred.
p.s. Pitanje nije baš za PHP forum jer nema neke veze sa samim PHPom, pa ako neko zna koji bi forum više odgovarao, neka javi, da prebacujem  |
[ broker @ 23.08.2007. 09:02 ] @
Na DPT sam svojevremeno ostavio gotovu funkciju koja radi tu konverziju.
[ Nemanja Avramović @ 23.08.2007. 09:36 ] @
Misliš na ono iz SMF foruma što si izvukao? Jedino sam to našao... mada mi je ono mnogo vezano za SMF, trebalo bi dosta da se menja... :/
[ Miroslav Ćurčić @ 23.08.2007. 09:49 ] @
Evo.
[ Nemanja Avramović @ 23.08.2007. 10:19 ] @
Hvala. Mada neće ovo da radi tek tako, ja sam mislio da ću uspeti preko običnog:
Code:
$dvobajtni = array("Å¡","Ä‘","ž","Ä","ć","ÄŒ","Ć","Å","Ä","Ž");
$utfosam = array("š","đ","ž","č","ć","Č","Ć","Š","Đ","Ž");
$post_content = str_replace($dvobajtni,$utfosam,$page_content);
Ali to ne radi. Jel ima neko ideju kako ovo odraditi? Verujem da treba izvući hex vrednosti ovih karaktera ali mi ord/chr funkcije nisu pomogle. Hteo sam da pokušam nešto i preko iconv-a, ali nemam ga instaliranog na serveru 
[ broker @ 23.08.2007. 10:20 ] @
Citat: Nemanja Avramović: Misliš na ono iz SMF foruma što si izvukao? Jedino sam to našao... mada mi je ono mnogo vezano za SMF, trebalo bi dosta da se menja... :/
Da, to. Meni je funkcija delovala kao izolovana, a svakako ima tabele za translaciju koje su ti potrebne. Doduse ako ti je samolatinicni sadrzaj u pitanju mozes i sam da se snadjes, ali ako ima i cirilice, uh..
[ Nemanja Avramović @ 23.08.2007. 10:31 ] @
U pitanju je samo latinica. Ajde pogledaću detaljnije tu funkciju, pošto je sve ostalo propalo.
izmena: Pih, tamana sam se ponadao da ću uspeti sa utf8_decode da rešim stvar, ali...  Ta funkcija mi lepo konvertuje slova ž, š i č, ali za ostala baguje
izmena 2: Sredio sam nekako http://blog.avramovic.info/2007/08/23/konverzija-zavrsena/
[Ovu poruku je menjao Nemanja Avramović dana 23.08.2007. u 13:12 GMT+1]
[ mb_sa @ 23.08.2007. 13:51 ] @
Citat: Nemanja Avramović: Hvala. Mada neće ovo da radi tek tako, ja sam mislio da ću uspeti preko običnog:
Code:
$dvobajtni = array("Å¡","Ä‘","ž","Ä","ć","ÄŒ","Ć","Å","Ä","Ž");
$utfosam = array("š","đ","ž","č","ć","Č","Ć","Š","Đ","Ž");
$post_content = str_replace($dvobajtni,$utfosam,$page_content);
Ali to ne radi. Jel ima neko ideju kako ovo odraditi? Verujem da treba izvući hex vrednosti ovih karaktera ali mi ord/chr funkcije nisu pomogle. Hteo sam da pokušam nešto i preko iconv-a, ali nemam ga instaliranog na serveru :(
Cudi me kako ti ovo nije proslo? Ja sam prije 2-3 dana bio us slicnoj siutaciji (u bazi su bili pobrljavljeni karkateri kao u tvom slučaju), a i morao sam izvrsiti izmejene na strukturi tabela (neke vrijednsoti u koloni razdvojiti u dvije kolone i slcino). I na ovaj fazon sam rijesio. Radilo je sve bez problema. Jedino, sam poslije odabira baze SET-ovo kroz upit UTF8 i UTF8_general_ci.
[ Nemanja Avramović @ 23.08.2007. 14:07 ] @
Pa stvarno ne znam, meni je ovo sa replace (gore u kodu je typo, piše $post_content = ... $page_content);, ali kod je bio dobar) vraćalo iste dvobajtne karaktere. Tabela mi je posle migracije i bila utf8 (da li je general_ci ili unicode_ci, stvarno ne znam) ali karakteri su bili dvobajtni pošto skripta za migraciju sa bBloga na WP očigledno ne radi sve kako treba
No, nije ni bitno, bitno je da sam ja rešio problem 
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|