style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Duda: Como manejar caracteres especiales en java web (acentos, ñ, etc)

Señores de java Mexico, soy nuevo en el grupo, les comento, estoy haciendo un sistemita web en java, con una base de datos en Mysql, cuando hago insert
de texto con acentos o con letra ñ, me genera basura el la BD, ustedes que saben al respecto, como lo controlan? me podrian asesorar o regalarme un link de donde lo puedo consultar? cualquier ayuda es agradecida,

uso hibernate, y struts x si les sirve el dato. Si tienen ejemplo con codigo, seria perfecto.
salu2 desde Tabasco!!

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de hjuarezv

Usa unicode. Si quieres usar

Usa unicode.

Si quieres usar caracteres en español también te puede servir cambiarle el encoding a tu bd y usar el mismo encoding en tu aplicación.

Espero te sirva.

Imagen de ezamudio

text encoding

Java por default maneja UTF-8 pero tal vez tengas otro encoding distinto en MySQL. Te recomiendo que lo configures para usar UTF-8. Me parece que en la cadena de conexión le puedes pasar el encoding que quieres usar, si es que no puedes modificar la configuración de la base de datos por default.

Y no está de más que revises el encoding default de la JVM, en caso que no sea UTF-8. La cosa que la JVM y la base de datos deben usar el mismo para que no tengas esos problemas de transcodificación.

Ok gracias por el dato

Ahora mismo me reviso lo de la misma condificacion tanto en las paginas, como en la BD, ok en cuanto controle esta cuestion les comparto. salu2

Imagen de marielyen

¿Cómo puedo ver el encoding default de la JVM?

Hola, tengo un problema parecido. ¿Dé que manera se vé, en que archivo o referencia se puede revisar el encodign default de la JVM?

Imagen de ezamudio

file.encoding

La propiedad de sistema file.encoding indica el encoding de la JVM.

En JSP

Si manejan adecuadamente el charset en el servidor, hay que indicar que el contenido que se está escribiendo es (por ejemplo) UTF-8. Con eso no debe de darles problemas.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

Yo lo uso de esa forma y sin broncas. Debe servir para cualquier framework porque es un header de JSP

Imagen de apolonioluis

problemas con ñ y acentos

el problema que tengo es a raiz de que cambie mi viejo servidor por otro que trae centos 7, tomcat 8.5, php 7 etc

las aplicaciones que corrian perfectamente hoy corren bien pero en la facturas (pdf) no he podido hacer que impriman esos caracteres (ñ á é etc)

lo raro es que no me muestra caracteres extraños simplemente remueve el caracter: español -> espaol

alguien podria decirme que me falta de configurar: tomcat esta con utf-8 al igual que php y apache,

otra cosa rara es que el xml se va por correo y esta correcto de hecho las facturas se timbran correctamente.

lo raro tambien es que si pones tu directamente en itext por ejemplo "ñoño" si lo imprime bien en el pdf,

PdfPCell cell = new PdfPCell(new Phrase("ñoño "+emisor.valueOf("@nombre"), f1));

creo que el problema esta en el xml ese archivo tiene "?" por cada signo latino.

estas lineas creo que son las de la bronca:

----------------------------------------------------------------------------------------------
public static String crearPdf(String xml, ServletContext sc) throws org.dom4j.DocumentException, FileNotFoundException, DocumentException, BadElementException, IOException, WriterException {

System.out.println(xml);

SAXReader reader = new SAXReader();

org.dom4j.Document doc = reader.read(new StringReader(xml));
org.dom4j.Element comprobante = doc.getRootElement();
-------------------------------------------------------------------------------------------------------------

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">