Código PHP:
function logtitulo() {
$titulo = 'ÁÉÍÓÚÑáéíóúñ¿¡<>';
$titulo = strtr(strtolower($titulo), utf8_decode( 'ã¡ã©ã*ã³ãºã±ã¡ã©ã*ã³ãºã±â¿â¡' ), 'ÁÉÍÓÚÑáéíóúñ¿¡');
echo $titulo;
}
| ||||
Respuesta: Caso extraño con caracteres utf-8 y strtolower a lo mejor en tu pagina estas claramente trabajando con utf-8 en tonce al pasar variables con acentos directamente sin POST o GET y darle strtolower puede que te pase estos acentos a cosas raras podrias haber pasado las cosas con htmlentities por ejemplo y a lo mejor te evitas el tranformar con decode o encode en su caso..... aunque siendo sinceros es arto raro X) por que nunca he tenido problemas con pasar a minusculas.... a lo mejor y es problema de la conf. del server que se yo... saludos...
__________________ Gokuh Salvo al mundo. PUNTO!!!! |
| ||||
Respuesta: Caso extraño con caracteres utf-8 y strtolower Kaninox no se me ocurrió lo de htmlentities, gracias por mencionarlo. Igualmente puede ser la configuración del servidor, aunque lo único que le hice fue activarle un par de extensiones al php y algún otro de Apache. Todo lo demás está 'de paquete'. GatorV, originalmente sí estaba trabajando con contenido de la BD, pero posteriormente puse texto estático a la variable con el mismo resultado (tal como el ejemplo). De hecho me ayudé con ese error al copiar los caracteres y pegarlos en el 2do argumento. |
| |||
Respuesta: Caso extraño con caracteres utf-8 y strtolower Creo que strtolower no entiende mas que el ascii, por eso el utf8 seguro que le vuelve loco. Esperemos que en PHP6 se acaben todos los lios de las codificaciones de caracteres. |
| |||
Respuesta: Caso extraño con caracteres utf-8 y strtolower Talvez esto, tomado del manual de php puede ayudar a entender esta funcion -> Cita: SaludosThis function is sensible to the current locale, namely the LC_CTYPE category (the default LC_CTYPE category is set from the LANG environment variable or by an explicit LC_CTYPE setting, but it can be overriden by the LC_ALL environment setting). If no locale setting is done in the enironment, the default locale will be C, for which the lowercase/uppercase conversion is based on the default character set of the system: this may convert only ASCII letters, or also ISO-8859-1 letters depending on the system... Franco |