import java.awt.*; import java.io.*; public class UnicodeToCharEntities extends java.applet.Applet { int getUnicodeNumber(char ch) { return (int)ch; } boolean isEncodable(char ch, String enc) { String originalString = new Character(ch).toString(); byte[] encodedByteArray = null; String decodedString = null; try{ encodedByteArray = originalString.getBytes(enc); }catch(UnsupportedEncodingException e){ return false; }catch(Exception e){ } try{ decodedString = new String(encodedByteArray, enc); }catch(Exception e){ } return decodedString.equals(originalString); } public String convertToCharEntitiesUnlessEncodable(String orig, String enc) { StringBuffer outputString = new StringBuffer(""); for(int i = 0; i < orig.length(); ++i){ if(this.isEncodable(orig.charAt(i), enc)) { outputString.append(orig.charAt(i)); } else { outputString.append("&#" + this.getUnicodeNumber(orig.charAt(i)) +";"); } } return outputString.toString(); } }