ďťż
 
=?iso-8859-2?q?utf-8_i_problem_z_z=B3?= ďťż
 
=?iso-8859-2?q?utf-8_i_problem_z_z=B3?=
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

=?iso-8859-2?q?utf-8_i_problem_z_z=B3?=



maLy - 22-02-2007 00:00
=?iso-8859-2?q?utf-8_i_problem_z_z=B3?=
  Mam baze mysql w utf-8 z niej wyciagam jakas wartosc np: 4800zł,
nastepnie skrypt (tez w uft-8) ma wyrzucic 'zł' eregi_replace("zł","",
$zmienna). No i slepy jest ereg, nie widzi 'ł'. Jesli 'ł' jest w
skrypcie, w tresci to działa. Wyswietlanie '4800zł' przez skrypt jest
poprawnie (jesli wyciaga to jako wartosc z mysql). Co robie zle?





Dariusz Rodziewicz - 22-02-2007 00:01

  maLy wrote:

> Mam baze mysql w utf-8 z niej wyciagam jakas wartosc np: 4800zł,
> nastepnie skrypt (tez w uft-8) ma wyrzucic 'zł' eregi_replace("zł","",
> $zmienna). No i slepy jest ereg, nie widzi 'ł'. Jesli 'ł' jest w
> skrypcie, w tresci to działa. Wyswietlanie '4800zł' przez skrypt jest
> poprawnie (jesli wyciaga to jako wartosc z mysql). Co robie zle?
a po co do bazy zapisujesz "zł" ??? Zapisuj samą wartość, będziesz mógł
późnej robić z tym co zechcesz (dodawać mnożyć itp.) na poziomie bazy
danych. Nie będziesz wtedy zapisywał do bazy danych jako string (np char)
tylko jako integer. Przemyśl to.

Darek




Tomasz =?iso-8859-2?q?=A6led=BC?= - 22-02-2007 00:01

  Dnia środa, 21 lutego 2007 10:24, Dariusz Rodziewicz napisał:
> maLy wrote:
> > Mam baze mysql w utf-8 z niej wyciagam jakas wartosc np: 4800zł,
> > nastepnie skrypt (tez w uft-8) ma wyrzucic 'zł' eregi_replace("zł","",
> > $zmienna). No i slepy jest ereg, nie widzi 'ł'. Jesli 'ł' jest w
> > skrypcie, w tresci to działa. Wyswietlanie '4800zł' przez skrypt jest
> > poprawnie (jesli wyciaga to jako wartosc z mysql). Co robie zle?
>
> a po co do bazy zapisujesz "zł" ??? Zapisuj samą wartość, będziesz mógł
> późnej robić z tym co zechcesz (dodawać mnożyć itp.) na poziomie bazy
> danych. Nie będziesz wtedy zapisywał do bazy danych jako string (np char)
> tylko jako integer. Przemyśl to.

Zamiast int juz lepiejjako decimal . mozna okreslij miejsca po przecinku
(grosze lub inne dla innych walut)

--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
<-=MERLIN=->
--
Archiwum grupy: http://niusy.onet.pl/pl.comp.lang.php




mark - 22-02-2007 00:01
=?iso-8859-2?Q?Re:_utf-8_i_problem_z_z=B3?=
  >Jesli 'ł' jest w skrypcie, w tresci to działa.

Sprawdz wiec, czy "ł" w skrypcie i "ł" pobierane z bazy to to samo,
uzywajac operatora "==". Moze tylko myslisz, ze masz wszedzie utf-8,
a tak naprawde...

A przedmowca ma racje - trzymanie w bazie kwot jako stringi
jest dosc zabawne.

mark





maLy - 22-02-2007 00:01
=?iso-8859-2?q?Re:_utf-8_i_problem_z_z=B3?=
  On 21 Lut, 10:24, Dariusz Rodziewicz <radzi...@no-spam.wp.pl> wrote:
> a po co do bazy zapisujesz "zł" ??? Zapisuj samą wartość, będziesz mógł
> późnej robić z tym co zechcesz (dodawać mnożyć itp.) na poziomie bazy
> danych. Nie będziesz wtedy zapisywał do bazy danych jako string (np char)
> tylko jako integer. Przemyśl to.

Rozumiem o co Ci chodzi, tylko ze dane do bazy importuje z pliku, dane
w bazie musza miec zachowana oryginalna forme, czasami jest 4800,
czasami 4800zł.

Jak na razie poradzilem sobie wpisujac:
$kwota = eregi_replace("zĹ,","",$kwota);

Dlaczego tak?




Tomasz =?iso-8859-2?q?=A6led=BC?= - 22-02-2007 00:01

  Dnia środa, 21 lutego 2007 10:40, maLy napisał:
> On 21 Lut, 10:24, Dariusz Rodziewicz <radzi...@no-spam.wp.pl> wrote:
> > a po co do bazy zapisujesz "zł" ??? Zapisuj samą wartość, będziesz mógł
> > późnej robić z tym co zechcesz (dodawać mnożyć itp.) na poziomie bazy
> > danych. Nie będziesz wtedy zapisywał do bazy danych jako string (np char)
> > tylko jako integer. Przemyśl to.
>
> Rozumiem o co Ci chodzi, tylko ze dane do bazy importuje z pliku, dane
> w bazie musza miec zachowana oryginalna forme, czasami jest 4800,
> czasami 4800zł.
>
> Jak na razie poradzilem sobie wpisujac:
> $kwota = eregi_replace("zĹ,","",$kwota);

No nie masz wpisu w utf-8 .. a moze nie laczysz sie z baza przy kodowaniu
utf-8 tylko latin ??? Mowisz ze importujesz dane z innego pliku, a ten inny
plik jest w utf-8 ???

--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
<-=MERLIN=->
--
Archiwum grupy: http://niusy.onet.pl/pl.comp.lang.php




andreux - 22-02-2007 00:01

  maLy napisał(a):
> Rozumiem o co Ci chodzi, tylko ze dane do bazy importuje z pliku, dane
> w bazie musza miec zachowana oryginalna forme, czasami jest 4800,
> czasami 4800zł.

mozna to rozbić przy imporcie

>
> Jak na razie poradzilem sobie wpisujac:
> $kwota = eregi_replace("zĹ,","",$kwota);

http://groups.google.pl/group/pl.com...4dbbb1afe856c1

pozdrawiam,
Andreux




Dariusz Rodziewicz - 22-02-2007 00:01

  Tomasz Śledź wrote:

> Dnia środa, 21 lutego 2007 10:24, Dariusz Rodziewicz napisał:
>> maLy wrote:
>> > Mam baze mysql w utf-8 z niej wyciagam jakas wartosc np: 4800zł,
>> > nastepnie skrypt (tez w uft-8) ma wyrzucic 'zł' eregi_replace("zł","",
>> > $zmienna). No i slepy jest ereg, nie widzi 'ł'. Jesli 'ł' jest w
>> > skrypcie, w tresci to działa. Wyswietlanie '4800zł' przez skrypt jest
>> > poprawnie (jesli wyciaga to jako wartosc z mysql). Co robie zle?
>>
>> a po co do bazy zapisujesz "zł" ??? Zapisuj samą wartość, będziesz mógł
>> późnej robić z tym co zechcesz (dodawać mnożyć itp.) na poziomie bazy
>> danych. Nie będziesz wtedy zapisywał do bazy danych jako string (np char)
>> tylko jako integer. Przemyśl to.
>
> Zamiast int juz lepiejjako decimal . mozna okreslij miejsca po przecinku
> (grosze lub inne dla innych walut)
>
Masz racje - sorry za błąd




Borys =?iso-8859-2?Q?Pogore=B3o?= - 22-02-2007 00:01

  Dnia 21 Feb 2007 01:05:43 -0800, maLy napisał(a):

> Mam baze mysql w utf-8 z niej wyciagam jakas wartosc np: 4800zł,
> nastepnie skrypt (tez w uft-8) ma wyrzucic 'zł' eregi_replace("zł","",
> $zmienna). No i slepy jest ereg, nie widzi 'ł'. Jesli 'ł' jest w
> skrypcie, w tresci to działa. Wyswietlanie '4800zł' przez skrypt jest
> poprawnie (jesli wyciaga to jako wartosc z mysql). Co robie zle?

ereg* nie radzi sobie z utf-8. Użyj preg_* jeśli już koniecznie musisz to
mieć rozwiązane w ten sposób.

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




Tomasz =?iso-8859-2?q?=A6led=BC?= - 22-02-2007 00:01

  Dnia środa, 21 lutego 2007 10:40, maLy napisał:
> On 21 Lut, 10:24, Dariusz Rodziewicz <radzi...@no-spam.wp.pl> wrote:
> > a po co do bazy zapisujesz "zł" ??? Zapisuj samą wartość, będziesz mógł
> > późnej robić z tym co zechcesz (dodawać mnożyć itp.) na poziomie bazy
> > danych. Nie będziesz wtedy zapisywał do bazy danych jako string (np char)
> > tylko jako integer. Przemyśl to.
>
> Rozumiem o co Ci chodzi, tylko ze dane do bazy importuje z pliku, dane
> w bazie musza miec zachowana oryginalna forme, czasami jest 4800,
> czasami 4800zł.
>
> Jak na razie poradzilem sobie wpisujac:
> $kwota = eregi_replace("zĹ,","",$kwota);

A nie bylo by prosciej:
$kwota = $kwota * 1 ;

???
przy mnozeniu wykonuje sie niejawna konwersja do inta dzieki czemu odpadaja
znaki ktore nie sa cyframi

--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
<-=MERLIN=->
--
Archiwum grupy: http://niusy.onet.pl/pl.comp.lang.php




phpencoder.pl - 22-02-2007 00:01

  Tomasz Śledź wrote:

> A nie bylo by prosciej:
> $kwota = $kwota * 1 ;
> ???
> przy mnozeniu wykonuje sie niejawna konwersja do inta dzieki czemu odpadaja
> znaki ktore nie sa cyframi

Doprawdy "swietny pomysl". Jesli ktores kolejne PHP zrobi tu cos innego to
jestes pieknie zalatwiony + zmarnujesz X czasu na znalezienie przyczyny
takiego zachowania skryptu. Pol biedy jesli skrypt sie wyrznie w tym momencie.
Gorzej jesli $kwota bedzie nagle inna - wtedy bedziesz mial problemy duzo
powazniejsze.

Z powazaniem,
--
Szyfrowanie skryptow PHP v4+v5. Blokady: czasowe, IP, MAC
Loadery dla systemow: Windows, Linux, MacOS, BSD, Solaris
Zabezpiecz swoje skrypty! Przetestuj http://phpencoder.pl




Tomasz =?iso-8859-2?q?=A6led=BC?= - 22-02-2007 00:01

  Dnia środa, 21 lutego 2007 14:06, phpencoder.pl napisał:
> Tomasz Śledź wrote:
> > A nie bylo by prosciej:
> > $kwota = $kwota * 1 ;
> > ???
> > przy mnozeniu wykonuje sie niejawna konwersja do inta dzieki czemu
> > odpadaja znaki ktore nie sa cyframi
>
> Doprawdy "swietny pomysl". Jesli ktores kolejne PHP zrobi tu cos innego to
> jestes pieknie zalatwiony + zmarnujesz X czasu na znalezienie przyczyny
> takiego zachowania skryptu. Pol biedy jesli skrypt sie wyrznie w tym
> momencie. Gorzej jesli $kwota bedzie nagle inna - wtedy bedziesz mial
> problemy duzo powazniejsze.

Nie powiedzialem ze to jest najlepsze rozwiazanie, ale pewnie lepsze niz ereg
(i szybsze). Ereg byl by i dobry gdyby nie to ze moze zmeinic sie kodowanie
pliku php (otworzony i zapisany w innym edytorze), kodowanie w bazie,
kodowanie w pliku ktory przetwarza itp. Napisalem poprzednio ze juz lepiej
jak by trzymal dane w formacie decimal, no ale skoro trzyma jako stringi w
dodatku ze znakami w roznym kodowaniu to jest to najbardziej optymalne
rozwiazanie.
Co rozumiesz przez "kwota nagle inna" ?? W funtach ?? W dolarach ?? No wtedy
to napewno jego ereg tego nie zalatwi. Oczywiscie moje rozwiazanie dziala
tylko na kwotach calkowitych, bez "groszy", bo znak "." i "," tez bedzie
obciety.
Zamiast mnozenia moze uzyc jawnej konwersji:
$kwota = (int)$kwota ;
Czy to rozwiazanie juz cie zadowala ??

Pozdrawiam
--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
<-=MERLIN=->
--
Archiwum grupy: http://niusy.onet.pl/pl.comp.lang.php




latet - 22-02-2007 00:01
=?iso-8859-2?Q?Re:_utf-8_i_problem_z_z=B3?=
  > ereg* nie radzi sobie z utf-8. Użyj preg_* jeśli już koniecznie musisz to
> mieć rozwiązane w ten sposób.

A moze raczej funkcje z bliblioteki mb_...() ?
konkretnie: mb_ereg()
Stworzone do UTF-8 i radzi sobie doskonale.

latet




Wojciech Bancer - 22-02-2007 00:01

  latet napisał(a):

>> ereg* nie radzi sobie z utf-8. Użyj preg_* jeśli już koniecznie musisz to
>> mieć rozwiązane w ten sposób.

> A moze raczej funkcje z bliblioteki mb_...() ?
> konkretnie: mb_ereg()
> Stworzone do UTF-8 i radzi sobie doskonale.

Chyba mnie pomroczność ogarnęła, albo mnie problem przerósł, ale...
czy naprawdę do zamiany 'zł' na '' trzeba wytaczać armatę w postaci
ereg*/preg*? Nie wystarczy str_replace?

--
Wojciech Bancer




Artur Muszynski - 22-02-2007 00:01
=?iso-8859-2?Q?Re:_utf-8_i_problem_z_z=B3?=
  Tomasz "Śledź" wrote:
> A nie bylo by prosciej:
> $kwota = $kwota * 1 ;
> przy mnozeniu wykonuje sie niejawna konwersja do inta dzieki czemu
> odpadaja znaki ktore nie sa cyframi

intval(), floatval()

artur




latet - 22-02-2007 00:01
=?iso-8859-2?Q?Re:_utf-8_i_problem_z_z=B3?=
  >> Mam baze mysql w utf-8 z niej wyciagam jakas wartosc np: 4800zł,
>> nastepnie skrypt (tez w uft-8) ma wyrzucic 'zł' eregi_replace("zł","",
>> $zmienna). No i slepy jest ereg, nie widzi 'ł'. Jesli 'ł' jest w
>> skrypcie, w tresci to działa.

To moze tak:

$ZL= 'z' . "\xC5\x82";
eregi_replace($ZL,"", $zmienna)

latet
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO Czy zna (obsługuje) ktoś program Iso Draw ? MYSQL - kodowanie w ISO-PL mysql i mysql-front, problem String line; if (line=="cos"){...}....problem Problem z wartościami w MySQL :( [ MySQL and ASP and VBScript ] [PGSQL] czy ktos mial problemy z initdb pgsql 8.1 ? [MySQL] Problem z zapisem danych w bazie danych Problem z mysql - can't connect to MySQL/nietypowo... plik corel 11 na corel 8 = problem z otwarciem
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • marcelq.xlx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com