Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java应用程序属性文件中保存印地语字符?_Java_Jsp_Internationalization_Properties_Hindi - Fatal编程技术网

如何在Java应用程序属性文件中保存印地语字符?

如何在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

我们正在尝试用印地语将SpringMVCWeb应用程序国际化。当我们尝试在属性文件中复制印地语文本时,属性文件会在印地语字符的位置显示小框

当我们运行应用程序并看到JSP时,它会显示问号(
)来代替印地语字符

编辑:

我的属性文件包含以下内容

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代码
  • 以浏览器能够理解的方式从Java代码中获取文本
  • 第一个有点奇怪:
    .properties
    文件是,它不支持任意Unicode字符,但幸运的是
    。properties
    文件支持与Java源代码同样支持的Unicode转义,即
    \uxxx

    现在,手写这些越狱记录可能会变得很糟糕,因此基本上有两种选择:

    • 用您选择的编码(可能是UTF-8)编写一个
      .properties
      文件,并将其转换为propper编码
    • 使用一个专门的
      .properties
      编辑器,它已经在幕后完成了这项工作(通常还有一点)
    一旦这样做成功(通过查看(某些本地化字符串的)字符值在调试器中进行验证),您需要确保浏览器实际以正确的方式接收数据

    这里最简单的方法是确保使用UTF-8编码将数据发送到浏览器,因为UTF-8可以表示所有可能的Unicode代码点

    如果您使用JSP生成输出,那么您可以使用类似以下内容来指定您想要UTF-8输出:

    <%@ 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应该在顶部有类似的内容:
    。请参见。