1

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

为此,我从一个非常基本的级别开始:

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)。但仍然没有成功。

谁能帮我解决这个问题?我缺少什么设置?

仅供参考 - 我可以在浏览器中打开印地语网站。所以语言设置不是问题。

编辑

由于我在视图中使用 JSP 文件,因此我已将以下内容添加到我web.xml的全局设置字符编码中。参考:关注这个

<jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <page-encoding>UTF-8</page-encoding>
    </jsp-property-group>
</jsp-config>

但是还是没有成功!

4

3 回答 3

9

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

至于 Eclipse 部分,您需要告诉它使用 UTF-8 作为其标准输出控制台。您可以通过Window > Preferences > General > Workspace > Text File Encoding进行设置。

在此处输入图像描述

至于 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.

也可以看看:

于 2013-02-08T13:11:25.370 回答
0

问题是您使用的输出流可能具有您平台的“默认”编码。在 Windows 上,这通常是一些糟糕的 MS 8 位代码页。

养成通过 PrintWriters 打印文本的习惯,并确保使用正确的编码创建它们。

于 2013-02-08T13:36:03.967 回答
0

以这种方式使用您的代码

System.out.println("\u0905\u092d\u0940\u0938\u092e\u092f\u0939\u0948\u091c");
于 2013-02-08T12:22:35.323 回答