HTML页面中,转义字符的处理问题。
首先说明一下转义字符,通常是这样来定义的:
所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它
本来的ASCII字符意思了。
<是转义字符,这个在写入最终的java文件时,如果我们不处理,最后会显示成这样:
上面列举的几个是HTML中常见的转义字符。还有常见的转义字符,后续还有研究
首先说明一下转义字符,通常是这样来定义的:
所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它
本来的ASCII字符意思了。
首先来看一下,下面这一行HTML源代码:
<span class="sourceLineNo">033</span> * <p><a name="line.33"></a>
<是转义字符,这个在写入最终的java文件时,如果我们不处理,最后会显示成这样:
* <p>
再看下面的HTML源代码:
<span class="sourceLineNo">084</span> private boolean hasChar() {<a name="line.84"></a>
<span class="sourceLineNo">085</span> return this.pos < this.len;<a name="line.85"></a>
<span class="sourceLineNo">086</span> }<a name="line.86"></a>
如果不对转义字符进行处理,得到的是下面的内容:
private boolean hasChar() {
return this.pos < this.len;
}
而我们需要的是这样的内容:
private boolean hasChar() {
return this.pos < this.len;
}
这显然不是我们想要的结果,所以这些转义字符,必须要转化成符合java规范的字符
我们使用下面这个工具类,来完成转义字符的翻译:
/*
* HTML转义字符处理方法private String escapeCharacterUtil(String parseredLine)
*
* HTML中的转义字符:
* 1,< 表示java中的小于号 <
* 2,> 表示java中的大于号 >
* 3,& 表示java中的逻辑与 &
* 4," 表示java中的双引号 "
* 5,© 表示java中的版权符号 ©
*/
private String escapeCharacterUtil(String parseredLine){
//转义处理
final_line = parseredLine.replaceAll("<", "<").replace(">", ">").replace("&", "&").replace(""", "\"");
return final_line;
}
上面列举的几个是HTML中常见的转义字符。还有常见的转义字符,后续还有研究