Mam następujący kod:Dlaczego funkcja mb_convert_case w PHP 5.4 przerywa mój ciąg znaków, gdy w wersji 5.2 tak się nie dzieje?
header('Content-type: text/html; charset=utf-8');
$str = 'áá áá';
echo $str."\n";
echo mb_convert_case($str, MB_CASE_TITLE)."\n";
echo bin2hex($str)."\n";
echo bin2hex(mb_convert_case($str, MB_CASE_TITLE))."\n";
Korzystanie z PHP 5.2.2, pojawia się następujący komunikat:
áá áá
áá áá
c3a1c3a120c3a1c3a1
c3a1c3a120c3a1c3a1
pomocą PHP 5.4.3, mam to:
áá áá
á� á�
c3a1c3a120c3a1c3a1
c3a1e3a120c3a1e3a1
Moje oczekiwane wyniki w obu przypadkach byłyby następujące:
áá áá
Áá Áá
c3a1c3a120c3a1c3a1
c381c3a120c381c3a1
Mam więc dwa pytania:
- Dlaczego nie istota przekształca się w?
- Dlaczego PHP 5.4 przerywa moje łańcuchy?
Nie mogę konkretnie odpowiedzieć na twoje pytanie, ale spróbuj jawnie przekazać parametr '$ encoding' do' mb_convert_case'. – deceze
Proponuję również, co komentarz @deceze. dodaj jawny parametr kodowania. sprawdź także domyślne kodowanie ciągu mb. w którym kodowaniu jest plik? – hakre