Stranice: [1]   Idi dole
  Štampaj  
Autor Tema: strtoupper i strtolower i naša slova  (Pročitano 3877 puta)
maddox
Gost
« poslato: Četvrtak, 02. Mart 2006. 13:46:43 »

Dakle, primetio sam da ove dve php funkcije ne rade sa našim slovima. Dakle:
echo strtolower("Š");
vraća Š, a
echo strtoupper("š");
vraća š.
Setlocale je za sve funkcije postavljen na UTF-8, ali to nije dalo nikakve rezultate:
setlocale(LC_ALL,"UTF-8");
Da li je neko imao sličnih problema, i da li neko ima ideju kako ovo da rešim?
« Poslednja izmena: Četvrtak, 02. Mart 2006. 13:52:30 maddox » Sačuvana
maddox
Gost
« Odgovor #1 poslato: Četvrtak, 02. Mart 2006. 14:06:14 »

Izlaz locale -a komande, a da je zanimljiv:
Kod:
sr
sr_CS
sr_CS.CP1251
sr_CS.ISO-8859-2@Latn
sr_CS.ISO-8859-5
sr_CS@Latn
sr_CS.UTF-8
sr_CS.UTF-8@Latn
sr@Latn
sr_YU
sr_YU.CP1251
sr_YU.ISO-8859-2@Latn
sr_YU.ISO-8859-5
sr_YU@Latn
sr_YU.UTF-8
sr_YU.UTF-8@Latn
UTF-8
Kod php skripte koji pokrećem iz brovsera:
Kod:
<meta charset="UTF8">
<?
setlocale(LC_ALL,"sr_YU.UTF-8");
echo "Vraca malo:";
echo strtolower("Š");
echo "<br>Vraca veliko:";
echo strtoupper("š");
?>
Brovser vraća:
Vraca malo:Š
Vraca veliko:š
Nemam više ideja, sem da li neko može da mi kaže što ovako radi? Sa UTF-8 je isti slučaj, uopšte ne menja slova.
Sačuvana
acim
Administrator
Elitni član
*****
Van mreže Van mreže

Poruke: 1.604



Pogledaj profil WWW
« Odgovor #2 poslato: Nedelja, 05. Mart 2006. 04:04:52 »

Koja je distribucija u pitanju? Probaj neki drugi locale, recimo sr_YU.UTF-8@Latn
Sačuvana

Boban Aćimović, urednik linux.rs
maddox
Gost
« Odgovor #3 poslato: Nedelja, 05. Mart 2006. 15:37:36 »

U pitanju je Mandriva 2006, a problem je u tome što strtoupper i strtolower ne mogu da rade sa UTF-8 karakterima, već se za to koriste mb_strtoupper i mb_strtolower funkcije. Dakle ispravan kod je:
Kod:
<meta charset="UTF8">
<?
#setlocale(LC_ALL,"sr_CS");
echo "Vraca malo:";
echo mb_strtolower("Š","UTF-8");
echo "<br>Vraca veliko:";
echo mb_strtoupper("š","UTF-8");
?>
Kao što se vidi, setlocale ne igra neku važnu ulogu ovde. Ali na Mandrivi sam morao da instaliram paket php-mbstring-5.0.4-1mdk.i586.rpm koji sadrži ove funkcije.
Sačuvana
Stranice: [1]   Idi gore
  Štampaj  
 
Prebaci se na:  

?>