我必须在浏览器屏幕上以印地语(或任何区域语言)显示文字。我将从数据库中获取此文本。
为此,我从以下基础开始:
String escapedStr = "\\u0905\\u092d\\u0940 \\u0938\\u092e\\u092f \\u0939\\u0948 \\u091c\\u0928\\u0924\\u093e";
String hindiText = StringEscapeUtils.unescapeJava(escapedStr);
System.out.println(hindiText);
return hindiText;
我能够在变量hindiText
中完美地获得印地语文本。
但是当我在eclipse控制台或浏览器屏幕上打印时,我只得到???? ?? ??
我将浏览器的默认字符编码以及我的eclipse控制台设置为UNICODE(UTF-8)。但仍然没有成功。
任何人都可以帮我解决这个问题吗?我缺少什么设置?
只是fyi - 我可以在浏览器中打开印地文网站。所以语言设置不是问题。
修改
当我在浏览器中使用JSP文件时,我已将以下内容添加到web.xml
中,以便全局设置字符编码。参考:Followed this
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF-8</page-encoding>
</jsp-property-group>
</jsp-config>
但仍然没有成功!
答案 0 :(得分:8)
但是当我在eclipse控制台或浏览器屏幕上打印时,我只得到???? ?? ??
至于Eclipse部分,你需要告诉它使用UTF-8作为它的stdout控制台。您可以通过 Window&gt;设置它。偏好&gt;一般&gt;工作区&gt;文本文件编码。
对于JSP部分,您需要告诉它使用UTF-8编写HTTP响应主体。您可以通过
设置<%@page pageEncoding="UTF-8"%>
在每个单独的JSP中,或者在整个应用程序中
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF-8</page-encoding>
</jsp-property-group>
</jsp-config>
web.xml
中的。
答案 1 :(得分:0)
以这种方式使用您的代码
System.out.println("\u0905\u092d\u0940\u0938\u092e\u092f\u0939\u0948\u091c");
答案 2 :(得分:0)
问题是您使用的输出流可能具有平台的“默认”编码。在Windows上,这通常是一些糟糕的MS 8位代码页。
养成通过PrintWriters打印文本的习惯,并确保使用正确的编码创建文本。