将HTML中的特殊字符转化为可显示的字符
2013-03-06 15:33
288 查看
很多时候丛网页中抽取的内容中都含有很多特殊的转义字符,网页中显示的要么是实体名称,要么是实体编码,如
这里有前人写好的,将实体编码转化为可显示字符的代码:Java的HTML的URL字符编码转换为Java字符串的函数 | 中文Flex例子。原理是根据实体编码中的数字,得到对应的字符。但上述方法不支持将实体名称转化为可显示字符,如能将"""转化为双引号,却不能识别"""。这次没有固定的规律,只能自己作映射了。比较折中的做法是转化如下几个常见的:
修改后的代码如下:
比较全的编码表参见:常用HTML转义字符,html转义符,JavaScript转义符,html转义字符表,HTML语言特殊字符对照表(ISO Latin-1字符集) 。
显示 | 说明 | 实体名称 | 实体编号 |
---|---|---|---|
半方大的空白 | |||
全方大的空白 | |||
不断行的空白格 | |||
< | 小于 | < | < |
> | 大于 | > | > |
& | &符号 | & | & |
" | 双引号 | " | " |
© | 版权 | © | © |
® | 已注册商标 | ® | ® |
™ | 商标(美国) | ™ | ™ |
× | 乘号 | × | × |
÷ | 除号 | ÷ | ÷ |
> | > |
" | " |
  | |
' | ‘ |
/** * Convert HTML character enitities(Unicode) to part of a Java String */ import java.util.regex.*; public class UnicodeCeToJavaString { static final String mbs = "(\\d+);"; // like "ロ" public static String EncodeCesToChars(String paramStr) { paramStr = paramStr.replace("&","&") .replace("<","<") .replace(">",">") .replace(""","\"") .replace(" "," ") .replace("'","'"); String mbChar; StringBuffer sb = new StringBuffer(); Pattern pat = Pattern.compile(mbs); Matcher mat = pat.matcher(paramStr); while (mat.find()) { mbChar = getMbCharStr(mat.group(1)); // pass the digit part mat.appendReplacement(sb, mbChar); } mat.appendTail(sb); return new String(sb); } /* worker method */ static String getMbCharStr(String digits) { // handle "12525" part which is // a char[] cha = new char[1]; // Unicode value stringnized try { int val = Integer.parseInt(digits); char ch = (char) val; cha[0] = ch; } catch (Exception e) { System.err.println("Error from getMbCharStr:"); e.printStackTrace(System.err); } return new String(cha); // easy!, because Java uses Unicode } public static void main(String[] args) { System.out.println(UnicodeCeToJavaString.EncodeCesToChars("George's War in North America")); } }
比较全的编码表参见:常用HTML转义字符,html转义符,JavaScript转义符,html转义字符表,HTML语言特殊字符对照表(ISO Latin-1字符集) 。
相关文章推荐
- HTML特殊字符显示
- HTML 显示特殊字符时转义操作
- TextField htmlText 以及xml里"<" 和 ">" 等特殊字符的显示问题
- html特殊字符的显示
- Java如何将html转以后的字符转化成正常显示的字符
- iOS中的UIlabel在html中显示文字(特殊字符显示为&hellip,¥等样式)
- Java 如何将html转以后的字符转化成正常显示的字符
- HTML中特殊字符的显示
- HTML快速入门8——HTML分隔符,一般语法,PRE标签,特殊字符显示
- HTML那点事之【特殊字符的显示】
- 用Javascript(js)进行HTML转义工具(处理特殊字符显示)
- HTML特殊字符显示
- html 特殊字符 显示平方米
- javascript学习手记(HTML特殊字符显示)
- HTML中显示特殊字符,如尖括号 “<”,">"等等
- HTML特殊字符显示
- HTML中显示特殊字符,如尖括号 “<”,">"等等
- 用Javascript(js)进行HTML转义工具(处理特殊字符显示)
- HTML特殊字符显示
- html中字体,特殊字符和标签如何显示呢?