我使用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==????????????????==
任何想法,为什么发生这种情况?
这是通过使用了错误的控制台编码造成的。
该生产线
System.out.println("My Data is " + fullName);
打印到标准输出(stdout)。 您需要将它配置为使用UTF-8也是如此。 假设你正在使用Eclipse,那么你需要通过窗口>首选项>常规>工作空间>文本文件编码更改的标准输出编码为UTF-8。
如果你正在使用NetBeans,我不能从头部,头部到这个答案的顶端回答: 希伯来语出现在NetBeans问号其中包含该链接的Netbeans的Wiki ,其中提到了以下几点:
要更改项目的语言编码:
- 右键单击项目窗口项目节点,并选择属性。
- 下源,选择从编码下拉场的编码值。
也可以看看:
无关的具体问题,在过滤器中的那些行是不必要
res.setCharacterEncoding("UTF-8");
res.setContentType("text/html;charset=utf-8");
他们在默认JSF2 / Facelets的情况下已经正确的价值观。 删除这些行。
如果数据来自数据库,请检查现场的数据类型类型为nvarchar。
文章来源: Unicode characters (Arabic letters) show up as question marks in IDE console