Foros del Web » Programando para Internet » Javascript »

convertir caracteres.... como hago esto?

Estas en el tema de convertir caracteres.... como hago esto? en el foro de Javascript en Foros del Web. Hola a tod@s, En una respuesta del servidor obtengo la siguiente cadena: nombre = NU \u0445 Z esto corresponde a NUÑEZ Al hacer Código PHP: ...
  #1 (permalink)  
Antiguo 04/03/2012, 11:56
 
Fecha de Ingreso: junio-2004
Ubicación: Ciudad de Panama
Mensajes: 551
Antigüedad: 19 años, 10 meses
Puntos: 8
Pregunta convertir caracteres.... como hago esto?

Hola a tod@s,

En una respuesta del servidor obtengo la siguiente cadena:

nombre = NU\u0445Z
esto corresponde a NUÑEZ

Al hacer

Código PHP:
for (i=0i<nombre.lengthi++) {
      
letra nombre.charAt(i);
      
document.write(letra);

obtengo
N
U
x
Z

Como puedo obtener o convertir la x a ÑE ?

Gracias de antemano por sus respuesta

Un Cordial Saludo
  #2 (permalink)  
Antiguo 04/03/2012, 14:09
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: convertir caracteres.... como hago esto?

¡buenas!
¿cuán seguro estas que esa combinación debe corresponder a los caracteres "ÑE"? en javascript, un caracter escapado en unicode se representa por una barra invertida, la "u" minúscula, seguido de cuatro dígitos hexadecimal. por tanto, esa secuencia representa el caracter "х" y no "ÑE".
  #3 (permalink)  
Antiguo 05/03/2012, 07:11
 
Fecha de Ingreso: junio-2004
Ubicación: Ciudad de Panama
Mensajes: 551
Antigüedad: 19 años, 10 meses
Puntos: 8
Respuesta: convertir caracteres.... como hago esto?

Hola Zerokilled,

Tienes razón. Lo que sucede es que desde mi navegador veo esa representación, pero en realidad la x representa el valor \u0445 y por deducción puedo determinar que corresponde a los caracteres ÑE. Haciendo pruebas al fin pude solucionar este impase de esta forma

Código:
	cadena = "";
	for (i=0; i<vr.length; i++) {
		letra = vr.charAt(i);
		if (letra == "\u0441")
			letra = "ÑA";
		if (letra == "\u0445")
			letra = "ÑE";
		if (letra == "\u0449")
			letra = "ÑI";
		if (letra == "\u044F")
			letra = "ÑO";
		if (letra == "\u0455")
			letra = "ÑU";
		cadena = cadena+letra;
	}
	$("#nom0").val(cadena);
Agradezco tu observación

Un Cordial Saludo,
  #4 (permalink)  
Antiguo 05/03/2012, 11:22
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: convertir caracteres.... como hago esto?

entiendo que por deducción se puede llegar a esa conclusión. sin embargo, opino que estas enfrentando el problema de forma errónea. seguramente debes estar recibiendo el texto de esa forma porque en algún punto se malinterpreto la secuencia de caracteres. por ejemplo, si se introduce una información al servidor y el servidor lo interpreta en una codificación equivocada. o en cambio, si se le ha indicado al servidor mostrar los datos en cierta codificación que no es la correcta para ese contenido. o también pudo haber sido que intencionalmente se introducieran caracteres de otros sistemas de escritura, como en este ejemplo del cirílico.
  #5 (permalink)  
Antiguo 05/03/2012, 13:35
 
Fecha de Ingreso: junio-2004
Ubicación: Ciudad de Panama
Mensajes: 551
Antigüedad: 19 años, 10 meses
Puntos: 8
Respuesta: convertir caracteres.... como hago esto?

Hola zerokilled

Entiendo lo que me decís. Te explico ya que esto tiene sus antecedentes un poco tediosos para mi.

Resulta que estoy escribiendo un código donde utilizo HTML+JQuery+JSON+PH P. Utilizo motor de bases de datos en PostgreSql con encoding LATIN1.

En mi código lanzo una consulta a la base de datos para que me retorne el nombre de un cliente, esto indicando el id. Para aquellos clientes cuyo nombre contiene el caracter Ñ, como el caso de NUÑEZ PEDRO, el servidor me retornaba el campo en null. Al hacer la consulta por nombre la respuesta recibida era que el registro no existe en la base de datos. Cosa que es falsa porque el registro si existe.

En mi codigo para llamar a el programa PHP que hace la consulta utilizo esto

Código PHP:
datos = $("#depe").serialize()+"&accion=envia";
$.
ajax({
       
datadatos,
        
type"post",
        
dataType"json",
        
cachefalse,
        
url"d.php",
        
success: function(json) {
             
//Aqui el tratamiento de la respuesta
        
}
}); 
Al empezar a determinar la razón del por que no me retornaba el nombre tuve que utilizar la función php utf8_decode para que funcionara, ya que al utilizar la función serialize() convierte a utf8 la cadena. Este primer paso ya lo he solucionado de esta manera.

Ahora viene la forma en que recibo la respuesta. La respuesta la recibo de la manera como indique, para NUÑEZ recibo del servidor NU\u0445Z y de ahí me toco hacer la traducción como la hice.

Si te fijas en los post del foro PHP está el problema propuesto por mi al respecto.

Agradezco mucho, en verdad, tus observaciones ya que es de esta forma en la que resolví el problema y no es la mas ortodoxa que digamos, pero......

Un Cordial Saludo

Etiquetas: caracteres
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 15:04.