IntelliJ - 输入未转义的 UTF-8 非 ASCII 字符
IntelliJ - inputting unescaped UTF-8 non ASCII characters
我有一个程序,我想在其中放入包含未转义 Unicode 字符的字符串,例如
String s = "(¬(a) ∨ ((¬(b) ∧ (c ∨ d)) ∨ e))"
问题是这个字符串已经被错误读取,因为 Unicode 字符没有转义,所以如果我立即打印它,我得到:
(¬(a) ⨠((¬(b) ⧠(c ⨠d)) ⨠e))
当然,如果我转义字符串中的 Unicode 字符,它就可以正常工作:
String s = "(\u00AC(a) \u2228 ((\u00AC(b) \u2227 (c \u2228 d)) \u2228 e))"
System.out.println(s);
Output:
(¬(a) ∨ ((¬(b) ∧ (c ∨ d)) ∨ e))
但是,相比于第一个输入,第二个只能用不祥来形容,一目了然。
有没有办法保持视觉表现,并且仍然有效?
文件编码为 UTF-8。
基本上,当您阅读 String
时,就像 java 中那样,您可以继续演示,请参见此处的示例:https://ideone.com/krMJRf
同样的事情也适用于新的 InteliJ hello-world
模板应用程序。
我猜你没有在问题中提到——你正在读取一个文件。该文件需要具有良好的编码才能使其正常工作。
我有一个程序,我想在其中放入包含未转义 Unicode 字符的字符串,例如
String s = "(¬(a) ∨ ((¬(b) ∧ (c ∨ d)) ∨ e))"
问题是这个字符串已经被错误读取,因为 Unicode 字符没有转义,所以如果我立即打印它,我得到:
(¬(a) ⨠((¬(b) ⧠(c ⨠d)) ⨠e))
当然,如果我转义字符串中的 Unicode 字符,它就可以正常工作:
String s = "(\u00AC(a) \u2228 ((\u00AC(b) \u2227 (c \u2228 d)) \u2228 e))"
System.out.println(s);
Output:
(¬(a) ∨ ((¬(b) ∧ (c ∨ d)) ∨ e))
但是,相比于第一个输入,第二个只能用不祥来形容,一目了然。
有没有办法保持视觉表现,并且仍然有效?
文件编码为 UTF-8。
基本上,当您阅读 String
时,就像 java 中那样,您可以继续演示,请参见此处的示例:https://ideone.com/krMJRf
同样的事情也适用于新的 InteliJ hello-world
模板应用程序。
我猜你没有在问题中提到——你正在读取一个文件。该文件需要具有良好的编码才能使其正常工作。