Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

setlocale() - nazwa.pl

130 views
Skip to first unread message

Paulina

unread,
Feb 5, 2011, 7:13:12 PM2/5/11
to
Mam taki elementarny skrypt:
=========================================================
<?php
header('Content-Type: text/plain; charset=utf-8');
setlocale(LC_ALL, 'pl_PL.UTF-8');
echo iconv('UTF-8', 'ASCII//TRANSLIT', 'ŻÓŁĆ ABC');
?>

ŻÓŁĆ ABC
=========================================================

Na moim komputerze wyświetla tak jak należy czyli:

ZOLC ABC
ŻÓŁĆ ABC

natomiast na serwerze w nazwa.pl działa błędnie:

???? ABC
ŻÓŁĆ ABC

w setlocale() próbowałam użyć po kolei pl, pl_PL, pl_PL.utf-8,
pl_PL.utf8, pl_PL.UTF-8,pl_PL.UTF8, pl.UTF8, PL.utf8, PL.UTF8,
polish-pl.utf8, polish-pl.UTF8, polish_POLISH.utf8, polish_POLISH.UTF8,
polish.utf8, polish.UTF8, Polish_Poland.28592
jednak dostawałam to co powyżej.

Co zrobić aby działało poprawnie?

NEO.pl / phpencoder.pl

unread,
Feb 6, 2011, 7:31:47 AM2/6/11
to
On Sun, 06 Feb 2011 01:13:12 +0100 Paulina wrote:

> Co zrobić aby działało poprawnie?

zapytac ich supportu co skopali?


Pozdrawiam,
--
PHP Encoder v7.0 juz dostepny! Zabezpiecz swoje skrypty PHP!
Szyfrowanie skryptow PHP. Blokady: czasowe, IP, MAC, wlasne
Demo: http://phpencoder.pl Chat: http://phpencoder.pl/chat/

satellite

unread,
Feb 6, 2011, 9:50:55 AM2/6/11
to
On 2011-02-06 01:13, Paulina wrote:

> Co zrobić aby działało poprawnie?

$polskie=array("ą","Ą","ę","Ę","ć","Ć","ż","Ż","ź","Ź","ł","Ł","ó","Ó","ń","Ń","ś","Ś");
$niepolskie=array("a","A","e","E","c","C","z","Z","z","Z","l","L","o","O","n","N","s","S");
$wyraz = str_replace($polskie,$niepolskie,$wyraz);

:>


Borys Pogoreło

unread,
Feb 6, 2011, 10:35:11 AM2/6/11
to
Dnia Sun, 06 Feb 2011 01:13:12 +0100, Paulina napisał(a):

> Mam taki elementarny skrypt:
> (...)


>
> Co zrobić aby działało poprawnie?

iconv przy //TRANSLIT do ASCII potrafi robić różne niespodzianki. U mnie
efektem jest "Z'OL'C" - tego też możesz się spodziewać. Jeśli chcesz tylko
usunąć ogonki to zwykłe, wspomniane wyżej, str_replace() wystarczy aż
nadto.

--
Borys Pogoreło
borys(#)leszno,edu,pl

aaaa

unread,
Feb 6, 2011, 12:35:10 PM2/6/11
to
> iconv przy //TRANSLIT do ASCII potrafi robić różne niespodzianki. U mnie
> efektem jest "Z'OL'C" - tego też możesz się spodziewać.

Bardzo popularny efekt, dlatego niektorzy radza dorzucic strtr("'", '', $s);
zeby te apostrofy wywalic.
Oczywiscie jesli chodzi tylko o uwalenie polskich ogonkow to mozna sobie
tablice zadeklarowac i poleciec z str_replace/strtr, ale jesli chodzi o
usuwanie ogonkow takze z innych jezykow to juz sporo tych tablic by bylo...

--
A

Borys Pogoreło

unread,
Feb 6, 2011, 1:21:35 PM2/6/11
to
Dnia Sun, 6 Feb 2011 18:35:10 +0100, aaaa napisał(a):

> Oczywiscie jesli chodzi tylko o uwalenie polskich ogonkow to mozna sobie
> tablice zadeklarowac i poleciec z str_replace/strtr, ale jesli chodzi o
> usuwanie ogonkow takze z innych jezykow to juz sporo tych tablic by bylo...

Wbrew pozorom wcale nie tak dużo. Zrobiłem sobie tablicę z artykułu w
Wikipedii i ma raptem kilkanaście linii po kilkadziesiąt znaków :)
(plus transliteracja GOST z cyrylicy, rozbicie ligatur, itp.)

--
Borys Pogoreło
borys(#)leszno,edu,pl

olo

unread,
Feb 6, 2011, 4:28:35 PM2/6/11
to
W dniu 06.02.2011 18:35, aaaa pisze:

> ale jesli chodzi o usuwanie ogonkow takze z innych jezykow to juz sporo
> tych tablic by bylo...

kiedyś szukałem, znalazłem to się i podzielę. Tak jak pisał Borys, nie
jest tego wcale tak dużo

http://webtrunki.pl/removeAccents.php

u mnie działa jak trzeba. Co prawda musiałem zrobić wyjątek dla liter ł
i Ł bo mysql coś mi nie chciało szukać ł gdy podawałem l (w sumie nie
wiem dlaczego)

--
pozdrawiam!

http://webtrunki.pl - piwa, wina, wódki, domowe wyroby
http://en.webtrunki.pl - beers, wines, vodkas, your own products

aaaa

unread,
Feb 7, 2011, 9:56:10 AM2/7/11
to
Użytkownik "olo" <olo69maup...@nospam.com> napisał w wiadomości
news:iin3q3$b1c$1...@news.onet.pl...

>W dniu 06.02.2011 18:35, aaaa pisze:
>> ale jesli chodzi o usuwanie ogonkow takze z innych jezykow to juz sporo
>> tych tablic by bylo...
>
> kiedyś szukałem, znalazłem to się i podzielę. Tak jak pisał Borys, nie
> jest tego wcale tak dużo
>
> http://webtrunki.pl/removeAccents.php
>
> u mnie działa jak trzeba. Co prawda musiałem zrobić wyjątek dla liter ł i
> Ł bo mysql coś mi nie chciało szukać ł gdy podawałem l (w sumie nie wiem
> dlaczego)

Rzeczywiscie nie taki diabel straszny :)
Tylko zamiast:
str_replace( array_keys( $transliteration ),array_values(
$transliteration ), $str);powinno szybsze byc:strtr($str, $transliteration);

--
A

0 new messages