public class CharCodeUtils { private static CharsetConverter cc = new CharsetConverter(10); private static Logger logger = Logger.getLogger(CharCodeUtils.class); private static boolean hasInit = false; /** * 获取配置文件的路径 String[] * * @return * */ private static String getFileLoc() throws DomainException { String filePath = ""; try { java.net.URL classUrl = CharCodeUtils.class.getResource(""); filePath = classUrl.getPath(); } catch (Exception e) { logger.error("获取charmap文件绝对路径失败!"); } logger.info("filePath is :"+filePath); if (filePath.indexOf(".jar") != -1) { String jarFile = filePath.toString().substring(5, filePath.toString().length() - 24); logger.info("jarFile is :"+jarFile); try { JarFileOper jfo = new JarFileOper(jarFile); return jfo.extraFileToPath(); } catch (Exception e) { logger.error("解压jar包出错!", e); throw new DomainException("can't get charmap file from jar:" + jarFile); } } else { return filePath.toString().substring(0, filePath.toString().length() - 22) + "charmap"; } } /** * 初始化CharCodeUtils,加载相应的编码配置文件 void * */ private static void init() throws DomainException { if (!hasInit) { String path = getFileLoc() + File.separator; cc.setFiles(new String[] { path + "uct2s.ctb",// 繁体转简体 path + "ucs2t.ctb",// 简体转繁体 path + "ucsbc2dbc.ctb",// 全角转半角 null, null, path + "ucint2ext.ctb", path + "ucrglt.ctb", path + "ucphrase.ctb", }); cc.init(); hasInit = true; } } /** * 繁体转简体 void * * @param orString * */ public static String t2s(String orString) throws DomainException { init(); return cc.map(0, orString); } /** * 简体转繁体 void * * @param orString * */ public static String s2t(String orString) throws DomainException { init(); return cc.map(1, orString); } /** * 全角转半角 void * * @param orString * */ public static String w2h(String orString) throws DomainException { init(); return cc.map(2, orString); } /** * StringUtils用到的 String * * @param orString * @return * @throws DomainException * */ public static String QBchange(String orString) throws DomainException { init(); //logger.info("QBchange:" + orString); return cc.map(2, cc.map(0, orString)); } /** * 转化特殊符号 * * @param str * @return */ public static String changeSS(String str) { str = StringUtils.replace(str, "`", "·"); str = StringUtils.replace(str, "'", "’"); str = StringUtils.replace(str, "\"", "”"); str = StringUtils.replace(str, ",", ","); str = StringUtils.replace(str, ";", ";"); str = StringUtils.replace(str, ".", "。"); str = StringUtils.replace(str, ":", ":"); str = StringUtils.replace(str, "?", "?"); str = StringUtils.replace(str, "!", "!"); str = StringUtils.replace(str, "\\", "\"); str = StringUtils.replace(str, "<", "<"); str = StringUtils.replace(str, ">", ">"); return str; } /** * 主方法 void * * @param argz * */ public static void main(String[] argz) throws DomainException { QBchange("abc"); } }