Foro

Codificacion de Caracteres

0
Hola amigos. Cuando devuelvo algunos datos desde el controlador estos vienen codificados en UTF8. Existe alguna forma de decirle al ext que me decodifique esos datos automaticamente para mostrarlos?
0
Wonder, cuando extraigas tus datos de la BD y los pases a un archivo Json o Xml para ser leido por ExtJs, siempre y cuando uses PHP, para generar dichos archivos usa la función "utf8_encode(string)". Eso me resolvió el problema de los acentos y ñ en una grid cargada mediante un Xml refrescado por un script PHP. Saludos.
0
No entiendo por que razón en los textfield si se ven bien las palabras pero en los combo no sucede así. ¿Alguna idea?
0
Bueno para comenzar te digo Crysfel que muchas gracias por tu ayuda al igual que a Tokkaido. Te digo que en mi pagina html la codificación es utf-8 al igual que en la BD. Pero no se que sucede que cuando guardo un carácter especial en la BD no se me guarda codificada, sino en su forma original. Estoy utilizando PostgreSQL 8.4 y no se a que se deba el problema. El json que devuelve el store para cargar la lista de la ventana que sale en la foto para agregar un elemento se los dejo a continuación para que lo vean. Lo extraño es que los caracteres vienen codificados pero es el ComboBox quien no me lo muestra como debe ser. Ni los grids.
[{"es_hijo_de":"0","nombre_categoria":"Software","leaf":"t","descripcion_categoria":"Descripcion del elemento...","id_categoria":"68","nombre_c_css":"css_class_software"},{"es_hijo_de":"0","nombre_categoria":"Hardware","leaf":"t","descripcion_categoria":"Descripcion del elemento...","id_categoria":"67","nombre_c_css":"css_class_equipos"},{"es_hijo_de":"0","nombre_categoria":"Documentos","leaf":"t","descripcion_categoria":"Descripcion del elemento...","id_categoria":"69","nombre_c_css":"css_class_documentos"},{"es_hijo_de":"0","nombre_categoria":"Personas","leaf":"t","descripcion_categoria":"Descripcion del elemento...","id_categoria":"70","nombre_c_css":"css_class_personas"},{"es_hijo_de":"0","nombre_categoria":"Laboratorios","leaf":"t","descripcion_categoria":"Descripcion del elemento...","id_categoria":"74","nombre_c_css":"css_class_locales"},{"es_hijo_de":"0","nombre_categoria":"Servicios","leaf":"t","descripcion_categoria":"Descripcion del elemento...","id_categoria":"71","nombre_c_css":"css_class_servicios"},{"es_hijo_de":"0","nombre_categoria":"Caract\u00c3\u00a9res \u00c3\u00b1","leaf":"t","descripcion_categoria":"Descripcion del elemento...","id_categoria":"77","nombre_c_css":"css_class_blue_folder"},{"es_hijo_de":"0","nombre_categoria":"Area","leaf":"t","descripcion_categoria":"Descripcion del elemento...","id_categoria":"76","nombre_c_css":"css_class_blue_folder"}]
0
Para evitar este tipo de problemas siempre debes usar UTF-8 en todos lados, en el servidor, en tu base de datos, en el html y en los archivos que contienen tu código javascript, yo te recomiendo que revises esto ;-) Saludos
1
mmm, entonces el problema podria estar en el store o en como "renderiza" el campo, puedes poner un ejemplo de como lo cargas a tu grid? en la prueba que hice solo me parece extraño el nombre "Área" que en vez de acento me muestra esa como colita de cerdo (no recuerdo el nombre ni como hacerlo con el teclado :-S ) te adjunto un screenshot de mi prueba y me dices
1
Eso es lo mismo que me sucede a mi. Todo el problema vino por que en el árbol que tengo para mostrar unas categorías no me listaba las cosas con tilde, o me salían en blanco o sea sin nombre. Aquí un ejemplo del sistema para que veas como va quedando.
1
Si te puedes dar cuenta, en la siguiente imagen te muestro que he creado una categoría nueva llamada Área y que cuando intento agregar un elemento a esta en la parte donde selecciono a que categoría agregar dicho elemento que en este caso se llamaría "Rectorado" me sale con el problema de codificación la categoría Área que es la única que contiene tilde.
0
Alguna idea de por que puede estar ocurriendo esto? Por favor que alguien me ayude.
0
como estas cargando tu combobox, podrias colocar el json que te devuelve?
1
Bueno me refiero a que los datos son retornados de esta manera. Y lo que quiero es poder decodificarlos y mostrarlos en su forma original. Mírate el campo "nombre_categoria", que es donde vienen los nombres codificados. {"success":"true","data":[{"id_elemento_configuracion":"129","id_categoria":"46","nombre_elemento_configuracion":"RESIDENCIA","id_elemento_configuracion_estado":"176","fecha_inicio":"2010-12-06","fecha_fin":null,"id_estado":"1","activo":"t","nombre_estado":"PRODUCCION","descripcion_estado":"PRODUCCION","es_hijo_de":"0","nombre_categoria":"\u00c3\u0081rea","leaf":"t","descripcion_categoria":"Descripcion del elemento...","id_c_class":"8"},{"id_elemento_configuracion":"130","id_categoria":"46","nombre_elemento_configuracion":"DOCENCIA","id_elemento_configuracion_estado":"177","fecha_inicio":"2010-12-06","fecha_fin":null,"id_estado":"1","activo":"t","nombre_estado":"PRODUCCION","descripcion_estado":"PRODUCCION","es_hijo_de":"0","nombre_categoria":"\u00c3\u0081rea","leaf":"t","descripcion_categoria":"Descripcion del elemento...","id_c_class":"8"},{"id_elemento_configuracion":"131","id_categoria":"46","nombre_elemento_configuracion":"PRODUCCI\u00f3N","id_elemento_configuracion_estado":"178","fecha_inicio":"2010-12-06","fecha_fin":null,"id_estado":"1","activo":"t","nombre_estado":"PRODUCCION","descripcion_estado":"PRODUCCION","es_hijo_de":"0","nombre_categoria":"\u00c3\u0081rea","leaf":"t","descripcion_categoria":"Descripcion del elemento...","id_c_class":"8"}],"total":3}
1
has probado a usar Ext.decode? probé tu JSON y me devolvió un objeto con los nombres correctos Ext.onReady(function() { Ext.Ajax.request({ url: 'json.php', scope: this, success: function(response){ console.debug(response); info = Ext.decode(response.responseText); // es lo mismo que info = Ext.util.JSON.decode(response.responseText); console.debug(info); }, failure: function(response){ console.debug(response); } }); });
1
Sisisis, para el decode si, pero cuando lo muestro directamente en un grid por ejemplo no lo muestra de forma correcta. Entiendes?
1
vienen en JSON? no me queda claro cuando dices "decodificarlos", UTF-8 es un formato de caracteres que siempre se debe usar para evitar problemas con acentos y caracteres especiales en otros lenguajes.

¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook

Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.