Foros del Web » Programando para Internet » PHP »

Problema con str_replace y codificación de carácteres

Estas en el tema de Problema con str_replace y codificación de carácteres en el foro de PHP en Foros del Web. Hola, tengo un problema que me lleva de cabeza. Tengo este código: Código PHP: $reescribir = "áéíóú" ; $search   = array( 'á' ,  'é' ,  'í' ...
  #1 (permalink)  
Antiguo 02/01/2012, 13:43
 
Fecha de Ingreso: octubre-2011
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 0
Pregunta Problema con str_replace y codificación de carácteres

Hola, tengo un problema que me lleva de cabeza.

Tengo este código:
Código PHP:
$reescribir="áéíóú";
$search  = array('á''é''í''ó''ú',' ','!','¡','(',')','ñ','¿','?','.','\'','"','ü',',','/');
$replace = array('a''e''i''o''u','-','','','','','ny','','','','','','u','','');
$final=" ";
$final=str_replace($search,$replace,$reescribir); 
En teoría debería sacarme "aeiou" pero nada la salida es: �����

Lo he probado con la codificación iso-8859-1 con la UTF-8 normal y con UTF8-general-ci pero no hay manera.
¿ Alguien conoce la solución?
  #2 (permalink)  
Antiguo 02/01/2012, 13:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con str_replace y codificación de carácteres

¿La codificación de tu script es también UTF8?

¿Has intentado convertir a UTF8 tus cadenas antes de reemplazar?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 02/01/2012, 14:02
 
Fecha de Ingreso: octubre-2011
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Problema con str_replace y codificación de carácteres

Cita:
Iniciado por pateketrueke Ver Mensaje
¿La codificación de tu script es también UTF8?

¿Has intentado convertir a UTF8 tus cadenas antes de reemplazar?
He probado, la salida sería tal que así : ã¡ã©ã*ã³ãº
  #4 (permalink)  
Antiguo 02/01/2012, 14:10
 
Fecha de Ingreso: octubre-2011
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Problema con str_replace y codificación de carácteres

Tambien cabría decir que en local, me funciona perfectamente, el problema lo tengo en el servidor donde está subida la web.
  #5 (permalink)  
Antiguo 02/01/2012, 14:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con str_replace y codificación de carácteres

Yo creo que al subir al servidor se altera la codificación de tus scripts, por eso no funciona.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 02/01/2012, 14:20
 
Fecha de Ingreso: octubre-2011
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Problema con str_replace y codificación de carácteres

Cita:
Iniciado por pateketrueke Ver Mensaje
Yo creo que al subir al servidor se altera la codificación de tus scripts, por eso no funciona.
¿Alguna solución?
  #7 (permalink)  
Antiguo 02/01/2012, 14:44
Avatar de charlyalegret  
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 705
Antigüedad: 12 años, 6 meses
Puntos: 140
Respuesta: Problema con str_replace y codificación de carácteres

Con algun programa como Live http headers (plugin para firefox) puedes ver los headers de tu página web... ahí te dice si realmente detecta un charset o no.

Lo digo porque a mí me pasava que noseporquehistoria pero aunque tenía definido el charset en la etiqueta meta correspondiente, no me los cogía hasta que no lo hice con un header en php: header("Content-type: text/html; charset=ISO-8859-1");

También se puede poner desde .htaccess

<FilesMatch "\.(html|php)$">
Header set Content-type "text/html; charset=ISO-8859-1"
</FilesMatch>

También puedes probar como te han dicho convertir a UTF8 tus cadenas antes y después de reemplazar, mirate este tema: http://www.forosdelweb.com/f18/funci...g-utf8-749830/

Saludos
  #8 (permalink)  
Antiguo 02/01/2012, 16:00
 
Fecha de Ingreso: octubre-2011
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Problema con str_replace y codificación de carácteres

Nada, no funciona nada. Solo me salen los carácteres raros y poco más. agradeceré cualquier aportación. Por hoy me rindo.
Gracias a todos!!
  #9 (permalink)  
Antiguo 03/01/2012, 07:40
 
Fecha de Ingreso: octubre-2011
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Problema con str_replace y codificación de carácteres

Bueno me he vuelto a poner al lío, y sigo atascado en esas líneas. Si alguien tuviera alguna idea más se lo agradeceria más de lo que creeis.
  #10 (permalink)  
Antiguo 03/01/2012, 08:54
 
Fecha de Ingreso: octubre-2011
Ubicación: Chile
Mensajes: 52
Antigüedad: 12 años, 6 meses
Puntos: 17
Respuesta: Problema con str_replace y codificación de carácteres

Hola, mejor usa [URL="http://php.net/manual/es/function.strtr.php"]STRTR[/URL].
Pero respondiendo a tu pregunta el problema como dicen por ahí, esta en la codificación del servidor.

Ademas, te presento los [URL="http://php.net/manual/en/ref.mbstring.php"]MB_[/URL] que son variantes de las funciones, algo mas lentas dicen unos, pero útiles para nosotros los de habla hispana.

mb_str_replace:

Código:
function mb_str_replace($needle, $replacement, $haystack) {
   return implode($replacement, mb_split($needle, $haystack));
}
Funciona de la misma forma.

Etiquetas: codificacion, str_replace
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 13:28.