次のコードがあります。
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";
PHP 5.2.2 を使用すると、次の出力が得られます。
áá áá
áá áá
c3a1c3a120c3a1c3a1
c3a1c3a120c3a1c3a1
PHP 5.4.3 を使用すると、次のようになります。
áá áá
á� á�
c3a1c3a120c3a1c3a1
c3a1e3a120c3a1e3a1
両方のケースで期待される出力は次のとおりです。
áá áá
Áá Áá
c3a1c3a120c3a1c3a1
c381c3a120c381c3a1
だから私は2つの質問があります:
- á が Á に変換されないのはなぜですか?
- PHP 5.4 で文字列が壊れるのはなぜですか?