我试图将日语xml转义为普通日语字符串,而不是unicode xml。我不能使用apache.commons.lang3,最好只使用apache.commons.lang。如果你有任何其他建议没有在这个图书馆,请自由分享。提前感谢!
final String xmlToEscape = "言語が良くない"; final String escapedXml = StringEscapeUtils.escapeXml(xmlToEscape);
指纹:
言;語;が;良;く;な;い;
应打印:
言語が良くない
发布于 2021-05-22 20:02:02
StringEscapeUtils.escapeXml() in apache.commons.lang 总是转义非ASCII字符。.
如果不想转义日语字符,则只需将字符串中的ASCII字符传递给StringEscapeUtils.escapeXml(),如下所示:
package org.example;
import java.util.Arrays;
import org.apache.commons.lang.StringEscapeUtils;
public class Test {
public static void main(String[] args) {
// You will get "言語が良くない <ABC>"
System.out.println(StringEscapeUtils.escapeXml("言語が良くない <ABC>"));
// You will get "言語が良くない <ABC>"
System.out.println(escapeXml("言語が良くない <ABC>"));
}
public static String escapeXml(String str) {
return Arrays.stream(str.split("")).map(s -> escapeCharacter(s)).collect(StringBuilder::new, StringBuilder::append, StringBuilder::append).toString();
}
public static String escapeCharacter(String str) {
if (str.matches("\\p{ASCII}")) {
return StringEscapeUtils.escapeXml(str);
} else {
return str;
}
}
}https://stackoverflow.com/questions/54345886
复制相似问题