首页 > 解决方案 > IntelliJ - 输入未转义的 UTF-8 非 ASCII 字符

问题描述

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

标签: javaintellij-ideautf

解决方案


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

同样的事情也适用于新的 InteliJhello-world模板应用程序。

我想,但你没有在问题中提到 - 你正在阅读一个文件。该文件需要具有良好的编码才能使其工作。


推荐阅读