tengo el siguiente código:¿Por qué mb_convert_case en PHP 5.4 está rompiendo mi cadena, cuando en 5.2 no?
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";
Uso de PHP 5.2.2, me sale el siguiente resultado:
áá áá
áá áá
c3a1c3a120c3a1c3a1
c3a1c3a120c3a1c3a1
Uso de PHP 5.4.3, me sale esto:
áá áá
á� á�
c3a1c3a120c3a1c3a1
c3a1e3a120c3a1e3a1
Mi salida esperada en ambos casos hubiera sido:
áá áá
Áá Áá
c3a1c3a120c3a1c3a1
c381c3a120c381c3a1
así que tengo dos preguntas:
- ¿Por qué no es el un ser convertida a una?
- ¿Por qué PHP 5.4 rompe mis cadenas?
No se puede responder específicamente su pregunta, pero intente pasar explícitamente el parámetro '$ encoding' a' mb_convert_case' también. – deceze
Sugeriría también lo que comentó @deceze. agregue el parámetro de codificación explícito. también verifique sus codificaciones predeterminadas para mb string. ¿En qué codificación está el archivo? – hakre