UTF-8文本(印地语)未显示在浏览器窗口或Eclipse控制台上

时间:2013-02-08 12:10:48

标签: java unicode character-encoding

我必须在浏览器屏幕上以印地语(或任何区域语言)显示文字。我将从数据库中获取此文本。

为此,我从以下基础开始:

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>

但仍然没有成功!

3 个答案:

答案 0 :(得分:8)

  

但是当我在eclipse控制台或浏览器屏幕上打印时,我只得到???? ?? ??

至于Eclipse部分,你需要告诉它使用UTF-8作为它的stdout控制台。您可以通过 Window&gt;设置它。偏好&gt;一般&gt;工作区&gt;文本文件编码

enter image description here

对于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打印文本的习惯,并确保使用正确的编码创建文本。