Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Problema acentos.

Estas en el tema de Problema acentos. en el foro de Frameworks JS en Foros del Web. Buenas gente, estoy mostrando datos y me salen simbolos raros cuando el valor tiene acentos. Por ejemplo : Los Ave F�nix odian que se les ...
  #1 (permalink)  
Antiguo 15/12/2005, 05:51
 
Fecha de Ingreso: octubre-2005
Mensajes: 132
Antigüedad: 18 años, 6 meses
Puntos: 1
Problema acentos.

Buenas gente, estoy mostrando datos y me salen simbolos raros cuando el valor tiene acentos.

Por ejemplo :

Los Ave F�nix odian que se les moleste mientras descansan, ahora su furia cae implacable sobre t�

¿Que puedo hacer para que salgan correctamente?.

Venga un saludo.
  #2 (permalink)  
Antiguo 15/12/2005, 10:27
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 3 meses
Puntos: 9
creo lo podes arreglar con la siguiente funcion de PHP :

http://ar.php.net/manual/es/function.htmlentities.php

eso codifica a html todos los caracteriers posibles.

no se q tiene q ver con ajax.
  #3 (permalink)  
Antiguo 15/12/2005, 12:18
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
loading.......


NO, si muestras datos de ut servidor mediante ajax debes usar utf8_decode($cadena) o era encode?... pero bueno indaga en eso ;).



connection closed.
__________________

Maborak Technologies
  #4 (permalink)  
Antiguo 16/12/2005, 01:18
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 19 años, 4 meses
Puntos: 43
Acabo de tener un problemilla similar con Ajax, al usar el metodo open, mandaba el valor de mis variables con el metodo GET, las capturaba desde php y las guardaba en una bases de datos, lo malo era que no salían bien las letras acentuadas.

Lo que tuve que hacer fué primero utilizar la función escape() de javascript en las variables que estaba mandando y luego a la hora de obtener los resultados de la base de datos utilizaba la función htmlentities() de PHP para mostrar el resultado, ahora todo esta funcionando correctamente.

Suerte!
  #5 (permalink)  
Antiguo 03/01/2006, 10:53
 
Fecha de Ingreso: julio-2003
Ubicación: Madrid
Mensajes: 3
Antigüedad: 20 años, 9 meses
Puntos: 0
hola
yo suelo realiza la conversión con

<?xml version="1.0" encoding="iso-8859-1"?>
  #6 (permalink)  
Antiguo 03/01/2006, 20:34
 
Fecha de Ingreso: octubre-2005
Mensajes: 15
Antigüedad: 18 años, 6 meses
Puntos: 0
La siguiente funcion, aunque un poco burda, arregla problemas con la mayoria de codificaciones, de todas formas, es conveniente usar encodeURIComponent() o encodeURI() o escape() de Javascript antes de enviar al servidor, claro:

Código:
function crossUrlDecode($source) {
	$decodedStr = '';
	$pos = 0;
	$len = strlen($source);
	while ($pos < $len) {
		$charAt = substr ($source, $pos, 1);
		if ($charAt == 'Ã') {
			$char2 = substr($source, $pos, 2);
			$decodedStr .= htmlentities(utf8_decode($char2),ENT_QUOTES,'ISO-8859-1');
			$pos += 2;
		}
		elseif(ord($charAt) > 127) {
			$decodedStr .= "&#".ord($charAt).";";
			$pos++;
		}
		elseif($charAt == '%') {
			$pos++;
			$hex2 = substr($source, $pos, 2);
			$dechex = chr(hexdec($hex2));
			if($dechex == 'Ã') {
				$pos += 2;
				if(substr($source, $pos, 1) == '%') {
					$pos++;
					$char2a = chr(hexdec(substr($source, $pos, 2)));
					$decodedStr .= htmlentities(utf8_decode($dechex . $char2a),ENT_QUOTES,'ISO-8859-1');
				}
				else {
					$decodedStr .= htmlentities(utf8_decode($dechex));
				}
			}
			else {
				$decodedStr .= $dechex;
			}
			$pos += 2;
		}
		else {
			$decodedStr .= $charAt;
			$pos++;
		}
	}
	return $decodedStr;
}
  #7 (permalink)  
Antiguo 03/01/2006, 21:14
 
Fecha de Ingreso: noviembre-2005
Ubicación: En La Plata, Bs.As
Mensajes: 9
Antigüedad: 18 años, 5 meses
Puntos: 0
Hola no se si te servira de ayuda, espero q si pero x las dudas, los controles de los acentos a veces son....
á: alt+160
é: alt+130
í: alt+161
ó: alt+162
ú: alt+163
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 01:45.