IntelliJ-输入未转义的UTF-8非ASCII字符

时间:2018-08-04 09:23:09

标签: java intellij-idea utf

我有一个程序要在其中放入包含未转义的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。

1 个答案:

答案 0 :(得分:1)

基本上,当您阅读类似Java的String时,可以保留演示文稿,请参见此处的示例:https://ideone.com/krMJRf

同一件事在新的InteliJ hello-world模板应用中也能很好地发挥作用。

我想,但您没有在问题中提及-您正在读取文件。该文件需要具有良好的编码才能使其正常工作。