Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: strtolower i mb_strtolower psuje kodowanie stringów UTF
Forum PHP.pl > Forum > PHP
gemini2201
Witam,

W skrypcie przetwarzam stringi UTF.
Wykonuje m.in
mb_split, mb_eregi, trim i generalnie wszystko dziala oprócz mb_strtolower/strtolower która to funkcja powoduje zniszczenie pl znakow (które s± na pewno poprawnie zakodowane w UTF). A przez zniszczenie mam na mysli ze zamiast poprawnych znakow sa tylko kwadraciki ktore nie sa zakodowane w zaden sensowny sposob (sprawdzalem win, iso i utf). Niemniej string wynikowy wciaz jest wykrywany przez mb_detect_encoding jako UTF.
Zeby bylo jeszcze ciekawiej... Na jednym serwerze dziala bezblednie (PHP Version 5.2.6-2ubuntu4.1 - tutaj dziala bezproblemowo niezaleznie czy uzywam fkcji mb_ czy zwyklych), natomiast nie dziala na serverze produkcyjnym na debianie (PHP Version 5.2.0-8+etch13) i to z mb_ i bez.
Czym to moze byc spowodowane? Bug w php? cos zle ustawione?
vokiel
Je¶li masz na pewno kodowanie w utf używaj drugiego parametru:
  1. <?php
  2. //string mb_strtolower ( string $str [, string $encoding= mb_internal_encoding() ] )
  3. mb_strtolower("±ęć¶Ľłó","UTF-8");
  4. ?>
To jest wersja lo-fi głównej zawarto¶ci. Aby zobaczyć pełn± wersję z większ± zawarto¶ci±, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.