Foros del Web » Programando para Internet » PHP »

Problema con strtoupper y acentos

Estas en el tema de Problema con strtoupper y acentos en el foro de PHP en Foros del Web. Hola, espero me puedan ayudar, tengo una consulta de MySql donde a la hora de mostrar el contendio utilizo la funcion strtpoupper para pasar a ...
  #1 (permalink)  
Antiguo 10/02/2009, 21:52
 
Fecha de Ingreso: enero-2009
Mensajes: 10
Antigüedad: 15 años, 2 meses
Puntos: 0
Problema con strtoupper y acentos

Hola, espero me puedan ayudar, tengo una consulta de MySql donde a la hora de mostrar el contendio utilizo la funcion strtpoupper para pasar a mayúsculas pero en la página me muestra de esta forma:

'solución' la pasa a SOLUCIóN, todos los acentos ya en mayúsculas me aparecen en minúsculas. alguien me podria decir que es lo que sucede, porque solo me aparece en mi servidor remoto y en el local de prueba aparece todo bien.

Gracias.
  #2 (permalink)  
Antiguo 10/02/2009, 22:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con strtoupper y acentos

Hola weblive,

Si ves el Manual, en la sección de strtoupper, puedes ver que necesitas usar set_locale para establecer el idioma actual.

Saludos
  #3 (permalink)  
Antiguo 12/02/2009, 10:47
 
Fecha de Ingreso: enero-2009
Mensajes: 10
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Problema con strtoupper y acentos

Gracias por tu respuesta. Disculpa, me podrias ayudar a saber como utilizar el setlocate para solucionar el problema que tengo.

Gracias
  #4 (permalink)  
Antiguo 12/02/2009, 11:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con strtoupper y acentos

Pues solamente pon el locale de acuerdo al idioma que estes usando, si es español, pon el locale en español, en la pagina tienes ejemplos.

Saludos
  #5 (permalink)  
Antiguo 12/02/2009, 12:07
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Problema con strtoupper y acentos

Hola,

A mí me pasa algo parecido a weblive sólo que en lugar de aparecerme los acentos en minúsula me aparecen con símbolos raros: d�a en lugar de día.

He mirado la localización haciendo "echo setlocale(LC_CTYPE,0);" y me sale Spanish_Spain.1252 , he provado a modificarla poniendo la de utf8 "setlocale(LC_CTYPE,'de_AT.utf8');" para ver si ese era el problema pero me sigue saliendo mal, es más al hacer el echo me sigue devolviendo la de españa.

¿Que localización debo ponerle?

Gracias de antemano.
__________________
Perdida en el mundo del conocimiento
  #6 (permalink)  
Antiguo 12/02/2009, 13:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con strtoupper y acentos

Es un problema independiente, si te salen simbolos raros es porque estas usando otra codificación en tu documento web.

Revisa en el foro hay muchos temas que hablan al respecto y no se soluciona con set_locale, tienes que cambiar el encoding de tu archivo.

Saludos
  #7 (permalink)  
Antiguo 13/02/2009, 04:51
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Problema con strtoupper y acentos

Hola GatorV,

En la página web tengo el charset utf-8, de hecho la cabecera de la página es la siguiente:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" >
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>D&#65533;a</title> 
Al leer los datos de la base de datos me los devuelve bien, de hecho si no pongo el título de la web en minúsculas, es decir, si no le aplico strtoupper me lo escribe bien, con los acentos como tiene que ser y el problema viene sólo cuando le aplico esa función de php. Por eso pensaba que mi problema estaba relacionado con el tema con el que weblive ha abierto este post.

De todas formas, también he probado a aplicarle a la frase htmlentities, htmlspecialchars después del strtoupper pero sigo con el mismo problema.

Al enviar el tema he visto que se visualiza con la codificación & # 65533 ; pero en realidad en la web se ve con un rombo y un interrogante �
__________________
Perdida en el mundo del conocimiento
  #8 (permalink)  
Antiguo 13/02/2009, 10:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con strtoupper y acentos

No comentas que usas strtoupper, en ese caso si debes de poner el locale correcto para evitar ese problema de acentos.

Saludos
  #9 (permalink)  
Antiguo 13/02/2009, 20:07
 
Fecha de Ingreso: enero-2009
Mensajes: 10
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Problema con strtoupper y acentos

GRACIAS amigo por la ayuda, le batalle un poco para entenderle pero ya puede, gracias.
  #10 (permalink)  
Antiguo 08/05/2009, 14:51
Avatar de SCY-FOX  
Fecha de Ingreso: septiembre-2007
Ubicación: Chile
Mensajes: 139
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Problema con strtoupper y acentos

Encontré una solución mejor, pero que sólo sirve para mostrar al momento de ejecución y no al guardar en una base de datos.

En la hoja de estilos, crear una clase que se llame ".mayusculas" y darle como valor:

Código PHP:
.mayusculas {
    
text-transformuppercase;

Así, CSS se encarga de transformar el texto en mayúsculas usando el lenguaje que tenga tu navegador o sistema operativo.

Nice.!

Silla!
  #11 (permalink)  
Antiguo 25/05/2009, 21:32
 
Fecha de Ingreso: agosto-2006
Mensajes: 177
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Problema con strtoupper y acentos

estoy trabajando con una aplicacion donde debo realizar esto tambien, pasar una cadena a mayusculas, al igual que weblive, me pasa todo a mayus excepto los tilde ej: "CONCEPCIóN" probe cambiando el locale pero nada alguien tiene una idea de que puede estar pasando.

estoy utilizando Zend Framework, que se encargaba de setear el locale, por lo que lo deshabilite y lo setee manualmente, en mi bootstrap, probe tambien seteando el locale arriba de la funcion strtoupper pero me sigue tirando la cadena mal.

probe seteando el locale "es" pero me devolvia false, con "es_ES" me devuelve true pero no me funciona bien strtoupper.

si alguien tiene una idea de que puede estar pasando, lo mas probable es que algo se me haya pasado por alto, pero me vendria bien una mano en estos momentos.

saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:26.