En Java podemos usar StringEscapeUtils para convertir caracteres especiales a su equivalente html / unicode, y viceversa.
Para esto usamos los métodos "escapeHtml(...)", "escapeJavaScript(...)",unescapeHtml(...) y unescapeJavaScript(...)
StringEscapeUtils es una clase que pertenece al api commons-lang de apache ( http://commons.apache.org/lang/http://commons.apache.org/lang/ ).
Como ejemplo, veamos algunos caracteres en español que suelen dar problemas cuando comenzamos a crear formularios.
String caracteres = "á é í ó ú ü ñ ½" ;
System.out.println("Texto Original");
System.out.println(caracteres);
System.out.println("Escape en HTML");
System.out.println(StringEscapeUtils.escapeHtml(caracteres));
System.out.println("Escape en Javascript");
System.out.println(StringEscapeUtils.escapeJavaScript(caracteres));
System.out.println("Escape en xml");
System.out.println(StringEscapeUtils.escapeXml(caracteres));
El resultado de ejecutar este código es:
Texto Original
á é í ó ú ü ñ ½
Escape en HTML
á é í ó ú ü ñ ½
Escape en Javascript
\u00E1 \u00E9 \u00ED \u00F3 \u00FA \u00FC \u00F1 \u00BD
Escape en xml
á é í ó ú ü ñ ½
Para una lista resumida de caracteres ver: Caracteres Html y Unicode en español