【问题标题】:? 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

标签: java printing symbols


【解决方案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(); }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-19
  • 1970-01-01
  • 1970-01-01
  • 2020-06-30
  • 2022-08-23
  • 2022-11-03
相关资源
最近更新 更多