如何在Java应用程序属性文件中保存印地语字符?
我们正在尝试用印地语将SpringMVCWeb应用程序国际化。当我们尝试在属性文件中复制印地语文本时,属性文件会在印地语字符的位置显示小框 当我们运行应用程序并看到JSP时,它会显示问号(如何在Java应用程序属性文件中保存印地语字符?,java,jsp,internationalization,properties,hindi,Java,Jsp,Internationalization,Properties,Hindi,我们正在尝试用印地语将SpringMVCWeb应用程序国际化。当我们尝试在属性文件中复制印地语文本时,属性文件会在印地语字符的位置显示小框 当我们运行应用程序并看到JSP时,它会显示问号(?)来代替印地语字符 编辑: 我的属性文件包含以下内容 login.message=\u0915\u0943\u092a\u092f\u093e \u0905\u092a\u0928\u0947 \u0916\u093e\u0924\u0947 \u092e\u0947\u0902 \u0932\u0949\u
?
)来代替印地语字符
编辑:
我的属性文件包含以下内容
login.message=\u0915\u0943\u092a\u092f\u093e \u0905\u092a\u0928\u0947 \u0916\u093e\u0924\u0947 \u092e\u0947\u0902 \u0932\u0949\u0917 \u0911\u0928 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0928\u0940\u091a\u0947 \u0915\u0947 \u092b\u093e\u0930\u094d\u092e \u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0915\u0930\u0947\u0902
我使用了以下命令来获取这个编码字符串
native2ascii -encoding utf-8 ApplicationResources_hi.properties gen\ApplicationResources_hi.properties
我的JSP页面在标题部分有以下行
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
我还需要做什么吗?对不起,我可能遗漏了一些东西 确保
.properties
文件以UTF-8编码保存,并且JSP页面中的charset
也设置为UTF-8
在IDE中(例如Eclipse),转到窗口->首选项->工作区,然后确保文本文件编码也设置为UTF-8
更新您可能需要将文件转换为Ascii,Java已经有了这个工具。 从命令行导航到Java SDK文件夹,然后尝试以下操作:
..\Java\bin>native2ascii -encoding utf-8 Labels.txt Labels_locale.properties
将
\u locale
设置为您的印地语本地语言(仅限两个字母)您实际上必须执行两个单独的步骤才能正常工作:
.properties
文件中的文本正确地输入Java代码.properties
文件是,它不支持任意Unicode字符,但幸运的是。properties
文件支持与Java源代码同样支持的Unicode转义,即\uxxx
现在,手写这些越狱记录可能会变得很糟糕,因此基本上有两种选择:
- 用您选择的编码(可能是UTF-8)编写一个
文件,并将其转换为propper编码.properties
- 使用一个专门的
编辑器,它已经在幕后完成了这项工作(通常还有一点).properties
<%@ page contentType="text/html; charset=utf-8" language="java" %>
有关详细信息,请参阅。这是因为字符集问题。请使用UTF8used@JigarJoshi Hi Jigar。感谢您的快速回复。我已尝试以UTF-8格式保存属性文件。但它仍然不起作用。UTF-8编码的属性文件显示\u0915\u0943\u092A\u092F\u093E。是的,所以现在问题可能是在读取/显示Hi中。我做了所有这些,但我已经用我到目前为止所做的事情更新了我的问题。你指定了页面应该使用的编码(即,你向浏览器承诺你正在编写UTF-8),但我看不出你实际上在哪里确保你会编写UTF-8。你的JSP应该在顶部有类似的内容:
。请参见。