?打印心形符号时
Posted
技术标签:
【中文标题】?打印心形符号时【英文标题】:? while printing heart symbol 【发布时间】:2012-02-24 09:17:25 【问题描述】:很抱歉问了一个愚蠢的问题,我们正在尝试将心形符号从数据库打印到 Java XML 文件。但同样被打印为“?”不知道我在哪里失踪。已经尝试过char unicode。作为一种练习,我尝试在 main 方法中使用它。请找到示例 java 类。
public static void main(String[] args)
String t = "\u2665";
String myUnicodeSymbol = "\u05D0";
char hollowHeart = '\u2661';
String hollowDiamond = "\u2662";
String spade = "\u2660";
String club = "\u2663";
StringBuffer buffer = new StringBuffer("<HEAD>");
buffer.append("<HEART>").append(hollowHeart).append("</HEART>");
buffer.append("</HEAD>");
System.out.println(t);
System.out.println(buffer.toString());
输出是:- ? ?
不知道我错过了什么。
【问题讨论】:
只是出于好奇,为什么当所有其他都是字符串时,hollowHeart 是唯一由 char 表示的常量?您是否尝试将其表示为字符串?您尝试过什么,效果如何? 我过去也遇到过类似的问题。我创建了一个写入 XML 文件的程序。如果该程序是从 Eclipse IDE 启动的,那么 XML 文件的内容与预期的一样,但如果它是从 Windows 控制台启动的,那么它有很多“?”符号。您如何编写 XML? 曾尝试过各种方式,之前尝试过使用 String 然后测试更改为 char 【参考方案1】:我认为这取决于输出所在的控制台的设置。
我已经在 Eclipse 中编译并运行了您的代码,并且看到了心形符号。但是,如果我从标准 Windows 控制台运行程序,那么我会看到“?”而不是心形符号。
但是您需要更改 Eclipse 中的标准设置。
Window -> Preferences -> General -> Workspace -> set "Text file encoding" to "Other: UTF-8"
【讨论】:
+1 这么认为,但从我的工作电脑无法确认这一点:D【参考方案2】:System.out.println 不支持我认为 MAC 中的 Unicode 字符。
参考From MACWORLD
试试这个
PrintStream out = new PrintStream(System.out, true, "UTF-8");
out.println(t);
您还需要抛出 UnsupportedEncodingException 或处理它。
【讨论】:
没有运气,我也试过了,在eclipse工作台中,请找到输出:-?以上是关于?打印心形符号时的主要内容,如果未能解决你的问题,请参考以下文章
为啥红色心形表情符号需要两个代码点,而其他彩色心形需要一个?