?打印心形符号时

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工作台中,请找到输出:-? ? â™ 代码为:- public static void main(String[] args) String t = "\u2665";字符串 myUnicodeSymbol = "\u05D0";字符串空心=“\u2661”;字符串空心钻石 = "\u2662";字符串铲 = "\u2660";字符串俱乐部 = "\u2663";打印流输出;尝试 out = new PrintStream(System.out, true, "UTF-8"); out.println(铲子); catch (UnsupportedEncodingException e) e.printStackTrace();

以上是关于?打印心形符号时的主要内容,如果未能解决你的问题,请参考以下文章

csharp 用符号“o”打印心形图。

为啥红色心形表情符号需要两个代码点,而其他彩色心形需要一个?

如何用python打印我爱你心形图案?

打印心形---print 的基础使用

打印心形图案---程序猿才有的浪漫---入门级---C语言实现

C语言for语句简单打印心形。