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

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

为此,我从一个非常基本的层面开始,具体如下:

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以便全局设置字符编码。 参考: 跟着这个

   *.jsp UTF-8   

但仍然没有成功!

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

对于Eclipse部分,您需要告诉它使用UTF-8作为其stdout控制台。 您可以通过Window> Preferences> General> Workspace> Text File Encoding来设置它。

在此处输入图像描述

对于JSP部分,您需要告诉它使用UTF-8编写HTTP响应主体。 您可以通过其中任何一个设置

 <%@page pageEncoding="UTF-8"%> 

在每个单独的JSP中,或者在整个应用程序中

   *.jsp UTF-8   

web.xml

也可以看看:

  • Unicode – 如何使角色正确?

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

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

以这种方式使用你的代码

 System.out.println("\u0905\u092d\u0940\u0938\u092e\u092f\u0939\u0948\u091c");