【发布时间】:2018-08-09 18:37:54
【问题描述】:
每当我打印或写下 £ 符号,甚至用它做任何事情时,它总是显示为 £,而  没有任何理由存在。我试过用 unicode 写这个字符,但它仍然导致了这种奇怪的组合。有什么办法可以消除或阻止它发生?
public class GenericClass
{
public static void main(String[] args)
{
System.out.println("£");
}
}
这就是打印出来的全部内容:
【问题讨论】:
-
你在哪里打印?可能是屏幕/工具等无法正确处理 unicode。
-
只是到命令行,这不是问题,因为当我只是 System.out.println() 时它不起作用。
-
public class GenericClass { public static void main(String[] args) { System.out.println("£".substring(1)); } }这对你有什么好处? -
这很好用,我研究一下子字符串,看看我如何将它应用到我需要的地方。谢谢
-
@Dr3amer17 这是我希望 StackOverflow 允许对 cmets 投票的情况之一。你的提议完全是错误的。它完全有效的事实意味着
£在编译时没有按预期进行编码。对于以 UTF-8 编码的 Unicode 字符,您的提议惨遭失败,以至于第二个字节的值与正在编码的代码点的值不匹配。 真正的解决方案是修复编码,而不是解决它。
标签: java string unicode printing file-writing