Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Specijalni karakteri

[es] :: PHP :: Specijalni karakteri

[ Pregleda: 2562 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ultrazz
Nedžad Alibašić
N/A
BiH, Travnik

Član broj: 306727
Poruke: 2
109.163.150.*

Sajt: www.ultrazz.tech.ba


Profil

icon Specijalni karakteri11.09.2012. u 14:52 - pre 93 meseci
Zdravo svima,

Imam problem s specijalnim karakterima u PHP-u (Specijalni karakteri: ČčĆ抚ĐđŽž).
Recimo da imam jednu formu koja šalje podatke u neki php fajl, kada podatak(text) dođe do PHP fajla, neka od slova poviš izgube svoje značenje.
Pokušao sam riješiti te karaktere s ovom metodom:
Code:

function karakteri_u_html( $var )
{
     $var = str_replace( 'È', 'Č', $var); // Č - radi
     $var = str_replace( 'è', 'č', $var); // č - radi
     $var = str_replace( 'Æ', 'Ć', $var); // Ć - radi
     $var = str_replace( 'æ', 'ć', $var); // ć -radi
     $var = str_replace( 'А', 'Đ', $var); // Đ - ne radi...
     $var = str_replace( 'ð', 'đ', $var); // đ - radi
     $var = str_replace( 'Á', 'Š', $var); // Š - ne radi...
     $var = str_replace( 'á', 'š', $var); // š - ne radi...
     $var = str_replace( 'Ž', 'Ž', $var); // Ž - radi
     $var = str_replace( 'ž', 'ž', $var); // ž - radi
     return $var;
}

(I što je najčudnije da mi prepozna recimo karakter 'È' kao 'Č'.)

Ali ova mi metoda uspjeva kod nekih karaktera kod nekih ne, recimo npr s ovom metodom sam riješio karaktere ĆćČčđŽž, ali karakteri ŠšĐ postanu "?" (i to ne običan upitnik već neki simbol iz dijagrama toka za uslov/upit (if), i unutar simbola se nalazi ?)..
Pokušao sam i postavljati meta header, ali ni to ne uspjeva:
Code:
echo "<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />";


Unaprijed Hvala.
Srdačan pozdrav.
 
Odgovor na temu

ivan.a
PHP developer

Član broj: 83976
Poruke: 400
*.dynamic.isp.telekom.rs.



+44 Profil

icon Re: Specijalni karakteri11.09.2012. u 15:07 - pre 93 meseci
Otvori sve fajlove (i formu i .php fajl) u nekom tekst editoru...npr notepad++.

Klikni na Encoding->Encode in UTF-8 without BOM.

Zatim na Edit->EOL Conversation->Windows Format.

Nekada fajl neće da se snimi u UTF-8 formatu (zbog auto-formatiranja), pa je potrebno da ručno dodaš neka slova sa kvačicama. Na primer u svakom fajlu na samom početku dodaj sledeće:
Code:
<?php 
//čćžšđđ 
?>


To je neki "hot-fix", ali radi.
Proveri !DOCTYPE i meta charset ( <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> )
I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
 
Odgovor na temu

Ultrazz
Nedžad Alibašić
N/A
BiH, Travnik

Član broj: 306727
Poruke: 2
109.163.150.*

Sajt: www.ultrazz.tech.ba


Profil

icon Re: Specijalni karakteri11.09.2012. u 15:12 - pre 93 meseci
Hvala puno na odgovoru, nisam ni pokušao tako da ne mogu reći da ne radi :D, (ali imam osjećaj da server automatski promjeni karakter encoding prilikom uploada)
, ali evo našao sam potpuno treče riješenje.
Na php.net
Nisam se nikad nadao da će ovako šta pretvoriti karaktere :S

Code:

function croURLtoCHAR($text) 

$url=array( 
    "%C5%A0","%C5%A1", 
    "%C4%90","%C4%91", 
    "%C4%8C","%C4%8D", 
    "%C4%86","%C4%87", 
    "%C5%BD","%C5%BE" 
); 
$char=array( 
    "Š","š", 
    "Đ","đ", 
    "Č","č", 
    "Ć","ć", 
    "Ž","ž" 
); 

return str_replace($url,$char,$text); 
}


Hvala puno! :D
Sve najbolje!
 
Odgovor na temu

gotivac
Kragujevac

Član broj: 26754
Poruke: 160
*.dynamic.sbb.rs.



+2 Profil

icon Re: Specijalni karakteri13.09.2012. u 09:14 - pre 93 meseci
Nema šta tu da rešavaš onako ili ovako. Ako već imaš
Code:
charset=utf-8

onda treba i sam fajl da snimiš u UTF-8 enkodingu, to će uvek raditi kako treba i neće ti trebati dodavanje viška koda.

Možeš da koristiš Notepad++, ali i neko razvojno okruženje koje će samo voditi računa o enikodingu fajlova, recimo NuSphere PHPEd.
 
Odgovor na temu

[es] :: PHP :: Specijalni karakteri

[ Pregleda: 2562 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.