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");