StringEscapeUtils escapeJava 正在转义井号
StringEscapeUtils escapeJava is escaping pound signs
我正在尝试对字符串进行转义以确保转义特殊字符。
使用
StringEscapeUtils.escapeJava("") escapes to \uD83D\uDE00
StringEscapeUtils.escapeJava("% ! @ $ ^ & * ") doesn't escape any of the characters
StringEscapeUtils.escapeJava("£") escapes to \u00A3
我能理解表情符号包含反斜杠,因此会被转义,但为什么井号会被转义,我该如何阻止它被转义?
StringEscapeUtils.escapeJava()
的文档对 "Java String rules" 到底是什么含糊不清。
我猜它指的是 JLS Chapter 3 中的位:
Programs are written in Unicode (§3.1), but lexical translations are provided (§3.2) so that Unicode escapes (§3.3) can be used to include any Unicode character using only ASCII characters.
和
ASCII (ANSI X3.4) is the American Standard Code for Information Interchange. The first 128 characters of the Unicode UTF-16 encoding are the ASCII characters.
所以这可能意味着 转义字符串,以便仅使用 ASCII 字符编写它。
%
、!
、@
、$
、^
、&
、*
都是ASCII字符.它们的值小于 128(即它们在 7 位块中)。
£
不是 ASCII 字符:在 ISO8859-1 中,它被编码为 163 (0xA3),在 7 位 ASCII 块之外。
如果您在字符串文字中打开一个带有 £
的文件,如果该编辑器没有正确设置字符编码,它可能会呈现为其他内容。例如,如果在 ISO8859-2 中解释它,它可能是 Ł
。
为了明确起见,所以把井号转义了。
how do I stop it from being escaped
你不能,用这个方法;你需要找到一个替代方案。您唯一可以做的就是再次将字符串中的 \u00A7
替换为 £
。
我正在尝试对字符串进行转义以确保转义特殊字符。
使用
StringEscapeUtils.escapeJava("") escapes to \uD83D\uDE00
StringEscapeUtils.escapeJava("% ! @ $ ^ & * ") doesn't escape any of the characters
StringEscapeUtils.escapeJava("£") escapes to \u00A3
我能理解表情符号包含反斜杠,因此会被转义,但为什么井号会被转义,我该如何阻止它被转义?
StringEscapeUtils.escapeJava()
的文档对 "Java String rules" 到底是什么含糊不清。
我猜它指的是 JLS Chapter 3 中的位:
Programs are written in Unicode (§3.1), but lexical translations are provided (§3.2) so that Unicode escapes (§3.3) can be used to include any Unicode character using only ASCII characters.
和
ASCII (ANSI X3.4) is the American Standard Code for Information Interchange. The first 128 characters of the Unicode UTF-16 encoding are the ASCII characters.
所以这可能意味着 转义字符串,以便仅使用 ASCII 字符编写它。
%
、!
、@
、$
、^
、&
、*
都是ASCII字符.它们的值小于 128(即它们在 7 位块中)。
£
不是 ASCII 字符:在 ISO8859-1 中,它被编码为 163 (0xA3),在 7 位 ASCII 块之外。
如果您在字符串文字中打开一个带有 £
的文件,如果该编辑器没有正确设置字符编码,它可能会呈现为其他内容。例如,如果在 ISO8859-2 中解释它,它可能是 Ł
。
为了明确起见,所以把井号转义了。
how do I stop it from being escaped
你不能,用这个方法;你需要找到一个替代方案。您唯一可以做的就是再次将字符串中的 \u00A7
替换为 £
。