[ Rodd @ 16.11.2003. 03:58 ] @
Imam banalan problem (ne znam da li je ovoga vec bilo ali nisam uspeo da nadjem).

Ako neki string sadrzi nase karaktere, kada ga ispisem sa echo, dobijam kuke i motike.

Kada probam sa:
Code:

header("Content-Type: text/html; charset=windows-1250");

ž i š se ne vide dobro.

Probao sam i sa utf8_encode() ali opet kuke.

Na klijentu je XHTML:
Code:

<?xml version="1.0" encoding="windows-1250"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

Zna li neko lek?



[Ovu poruku je menjao -zombie- dana 16.11.2003. u 14:59 GMT]
[ Goran Rakić @ 16.11.2003. 10:50 ] @
Prvo, ovo nije Unicode već Windows-1250 kodna strana što nema baš mnogo veze. Drugo, php ne radi nikakvu obradu karaktera, znači snimi php stranicu (ukoliko je string hardocode-ovan u nju) u istoj kodnoj stranici u kojoj i prikazuješ tekst ( <?xml version="1.0" encoding="windows-1250"?> ).

Ukoliko je string negde van same php skripte (txt fajl ili baza) onda se postaraj da pri unosu teksta on bude unet u istoj kodnoj stranici, odnosno tako što će stranica sa formularom biti u istoj kodnoj stranici.

To bi otprilike trebalo da bude to.
[ Gojko Vujovic @ 16.11.2003. 12:07 ] @
Lek bi ukratko bio da napustiš windows-* i iso-* charsete i pređeš potpuno na utf-8 koji lagano već postaje standard.
[ Rodd @ 16.11.2003. 15:16 ] @
Izvinjavam se, ispao sam glup u drustvu.

Ceo problem je bio u Dreamweaveru kojem nisam podesio encoding na windows-1250.

Sad sve radi kao sat.
[ Gojko Vujovic @ 16.11.2003. 16:01 ] @
Ok ti radi to ali ti i dalje ne koristiš unicode već taj ograničeni set karaktera propisan by microsoft.

Probaj da otkucaš neki od ovih znakova u njemu:

Naše navodnike: „ “ ” (kao jedan znak, ne spajanjem apostrofa :)
minus - crtica – crta — (minus postoji nego stavljam ga da bi se videla razlika, crtica je malo duža da bi se razlikovala od minusa)

€ ‰ • itd.. Da ne pričamo o podršci za više pisama na istoj strani. To samo unicode može.
[ Rodd @ 16.11.2003. 18:01 ] @
Uz rizik da ispadnem jos gluplji, Gojko, moram nesto da te pitam:

Ako krenem da koristim UTF-8 umesto windows-1250, da li ce srpska tastatura na windowsu da brlja, odnosno, da budem jasniji, da li ce npr. "ć" koje otkucam pod windowsom, da se vidi kao "ć" i na stranici kojoj je encoding promenjen na UTF-8? Jedan moj ortak je imao problema sa ovim, zato pitam...
[ Gojko Vujovic @ 16.11.2003. 18:22 ] @
Ma nije sramota pitati nemoj to da spominješ uopšte.

Elem, pogledaj source neke elitesecurity stranice. Svuda se koristi utf8 i mislim da nemaš problema sa korišćenjem naših latiničnih slova, zar ne?

Ovo govori browserima da posmatraju sadržaj kao utf8:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

A nije zgoreg dodati utf-8 u http headere kao što si goreo probao to sa windows-1250 charsetom.

Sama tastatura u windowsu ili nekom sistemu nema mnogo veze sa ovim, bitno je da browser podržava utf8 i da ima fontove za to, a gotovo svi moderni sistemi to već podržavaju out-of-the-box.

Naravno pri prelasku se mora sve prebaciti u utf8, nije dovoljno samo promeniti headere! Dakle, sve scripte i sav sadržaj iz baze mora da se konvertuje, a ako se radi i popunjava sadržaj od nule onda nije problem pošto će od početka sve ići u utf8. Sva slova su normalna, a spec. karakteri zauzimaju 2 bajta, naša slova na primer. Za konverziju preporučujem iconv, a od windows alata unired to dobro radi (učitaš u jednom charsetu, snimiš u drugom i tako svaki fajl).
[ Rodd @ 16.11.2003. 22:04 ] @
Eto, otkrio sam jos jednu stvar o kojoj moram da razmisljam kad radim za domace klijente. Hvala ti.
[ Goran Rakić @ 17.11.2003. 12:38 ] @
I ne samo za domaće klijente, nikada ne znaš da li će neko internacionalizovati svoju internet aplikaciju.

Obavezno pogledaj:
http://www.joelonsoftware.com/articles/Unicode.html
http://www.joelonsoftware.com/items/2003/10/14.html

I ako hoćeš:
http://zombie.codewalkers.com/...icode_not_ready_for_prime_time

I da, obrati pažnju na ono što je Gojko rekao - U UTF8 neki karakteri imaju 1, neki 2 bajta, stoga vodi računa kako odsecaš tekst...