Java如何将单引号和双引号编码为HTML实体?
如何将Java如何将单引号和双引号编码为HTML实体?,java,html,Java,Html,如何将“编码为&&34;和”编码为&&39; 我很惊讶HTML Entities 4.0中没有定义单引号和双引号,因此StringEscapeUtils无法将这两个字符转义到各自的实体中 是否有其他与字符串相关的工具能够做到这一点 HTML Entities 4.0中没有定义单引号和双引号的原因是什么 除了单引号和双引号外,有没有任何框架能够将所有unicode字符编码为各自的实体?因为所有unicode都可以手动转换为十进制实体并显示在HTML中,所以想知道是否有任何工具能够自动转换它 HTM
“
编码为&&34;
和”
编码为&&39;
我很惊讶HTML Entities 4.0中没有定义单引号和双引号,因此StringEscapeUtils
无法将这两个字符转义到各自的实体中
是否有其他与字符串相关的工具能够做到这一点
HTML Entities 4.0中没有定义单引号和双引号的原因是什么
除了单引号和双引号外,有没有任何框架能够将所有unicode字符编码为各自的实体?因为所有unicode都可以手动转换为十进制实体并显示在HTML中,所以想知道是否有任何工具能够自动转换它
“
启动HTML2.0
StringEscapeUtils
中的escapeXml11
将单引号转换为&apos代码>
例如:
StringEscapeUtils.escapeXml11("'"); //Returns '
StringEscapeUtils.escapeHtml4("\""); //Returns "
是否有其他与字符串相关的工具能够做到这一点
从Spring框架处理单引号和双引号开始,它还将值转换为十进制(如&&39;
&&&34;
)。
以下示例取自对此问题的回答:
HTML Entities 4.0中没有定义单引号和双引号的原因是什么
根据,未定义单个报价。双引号可从HTML2.0获得。而单报价单是支持的一部分
将所有unicode字符编码为相应实体的工具或方法
这里有一个非常好且简单的java实现,作为回答这个问题的一部分
以下是基于该答案的示例程序:
import org.apache.commons.lang3.StringEscapeUtils;
public class HTMLCharacterEscaper {
public static void main(String[] args) {
//With StringEscapeUtils
System.out.println("Using SEU: " + StringEscapeUtils.escapeHtml4("\" ¶"));
System.out.println("Using SEU: " + StringEscapeUtils.escapeXml11("'"));
//Single quote & double quote
System.out.println(escapeHTML("It's good"));
System.out.println(escapeHTML("\" Grit \""));
//Unicode characters
System.out.println(escapeHTML("This is copyright symbol ©"));
System.out.println(escapeHTML("Paragraph symbol ¶"));
System.out.println(escapeHTML("This is pound £"));
}
public static String escapeHTML(String s) {
StringBuilder out = new StringBuilder(Math.max(16, s.length()));
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c > 127 || c == '"' || c == '<' || c == '>' || c == '&' || c == '\'') {
out.append("&#");
out.append((int) c);
out.append(';');
} else {
out.append(c);
}
}
return out.toString();
}
}
import org.apache.commons.lang3.StringEscapeUtils;
公共类HTMLCharacterEscaper{
公共静态void main(字符串[]args){
//带弦逃逸器
System.out.println(“使用SEU:+StringEscapeUtils.escapeHtml4(\”);
System.out.println(“使用SEU:+StringEscapeUtils.escapeXml11(“”));
//单报价和双报价
System.out.println(escapeHTML(“它很好”);
System.out.println(escapeHTML(“砂砾”);
//Unicode字符
System.out.println(escapeHTML(“这是版权符号”);
System.out.println(escapeHTML(“段落符号”);
System.out.println(escapeHTML(“这是英镑”);
}
公共静态字符串escapeHTML(字符串s){
StringBuilder out=新的StringBuilder(Math.max(16,s.length());
对于(int i=0;i127 | | c=''''''''''''.| | c=''''.'c='.''.'{
out.追加()号;
out.append((int)c);
out.append(“;”);
}否则{
附加(c);
}
}
return out.toString();
}
}
以下是一些有趣的链接,我在寻找答案的过程中遇到了这些链接:
import org.apache.commons.lang3.StringEscapeUtils;
public class HTMLCharacterEscaper {
public static void main(String[] args) {
//With StringEscapeUtils
System.out.println("Using SEU: " + StringEscapeUtils.escapeHtml4("\" ¶"));
System.out.println("Using SEU: " + StringEscapeUtils.escapeXml11("'"));
//Single quote & double quote
System.out.println(escapeHTML("It's good"));
System.out.println(escapeHTML("\" Grit \""));
//Unicode characters
System.out.println(escapeHTML("This is copyright symbol ©"));
System.out.println(escapeHTML("Paragraph symbol ¶"));
System.out.println(escapeHTML("This is pound £"));
}
public static String escapeHTML(String s) {
StringBuilder out = new StringBuilder(Math.max(16, s.length()));
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c > 127 || c == '"' || c == '<' || c == '>' || c == '&' || c == '\'') {
out.append("&#");
out.append((int) c);
out.append(';');
} else {
out.append(c);
}
}
return out.toString();
}
}