Unicode字符(阿拉伯字母),显示在IDE控制台问号(Unicode characters (A

2019-07-03 22:57发布

我使用JSF 2.0,我有文本字段

<h:form>
    <h:inputText value="#{myBean.myValue}" />
    <h:commandButton value="Submit" action="#{myBean.printMe()}" />
</h:form>

public void printMe() {
    System.out.println("first line==" + myValue + "==");
    System.out.println("second line==يشسيبشسيبشسيبشيس==");
}

当我运行该项目,并进入يشسيبشسيبشسيبشيس在文本框,在IDE控制台我看到如下。

INFO: first line==????????????????==
INFO: second line==????????????????==

任何想法,为什么发生这种情况?

Answer 1:

这是通过使用了错误的控制台编码造成的。

该生产线

System.out.println("My Data is " + fullName);

打印到标准输出(stdout)。 您需要将它配置为使用UTF-8也是如此。 假设你正在使用Eclipse,那么你需要通过窗口>首选项>常规>工作空间>文本文件编码更改的标准输出编码为UTF-8。

如果你正在使用NetBeans,我不能从头部,头部到这个答案的顶端回答: 希伯来语出现在NetBeans问号其中包含该链接的Netbeans的Wiki ,其中提到了以下几点:

要更改项目的语言编码:

  1. 右键单击项目窗口项目节点,并选择属性。
  2. 下源,选择从编码下拉场的编码值。

也可以看看:

  • Unicode的-如何让人物吧?

无关的具体问题,在过滤器中的那些行是不必要

    res.setCharacterEncoding("UTF-8");
    res.setContentType("text/html;charset=utf-8");

他们在默认JSF2 / Facelets的情况下已经正确的价值观。 删除这些行。



Answer 2:

如果数据来自数据库,请检查现场的数据类型类型为nvarchar。



文章来源: Unicode characters (Arabic letters) show up as question marks in IDE console