0

我有一个包含泰语字符的资源文件(.properties 文件)。

当我使用下面的代码读取该文件时,它会显示像“?”这样的垃圾字符。

package RD1.Common;

import java.util.Enumeration;
import java.util.Locale;
import java.util.ResourceBundle;

public class LabelManagerRD {

   public static String[] getLabel(String ParamString1)
    {

      String NextEle = "";
      String str2 = ParamString1;
      int i = 1;

      String Final[] = new String[1000];

      ResourceBundle bundle =
              ResourceBundle.getBundle("rd", Locale.US);

      Enumeration<String> enumeration = bundle.getKeys();

      while (enumeration.hasMoreElements()) 
        {
             NextEle = enumeration.nextElement();

             if (NextEle.toLowerCase().contains(str2.toLowerCase()))
             {
                 Final[i] = NextEle+"="+bundle.getString(NextEle);
                 i++;
             }
      }

    return Final;

    }


   public static void main(String[] args)
    {
       try
       {
        String TestValue[] = getLabel("RD.RDRAPCEX");
        for(int i=1;i<=TestValue.length;i++)
        {   
            if (!(TestValue[i].length()==0))
            {
                System.out.println(i+" - "+TestValue[i]);
            }

        }
       }
       catch (Exception e)
       {

       }


    }
}

属性文件(rd_en_US.properties)如下

BL_BLNG_GROUP.BL_BLNG_GRP.BLNG_GRP_ID.IP=รสสรืเ เพนีย รก~^PAGE_1~^Y~^N
BL_BLNG_GROUP.BL_BLNG_GRP.LONG_DESC.IP=Long Desc~^PAGE_1~^Y~^N
BL_BLNG_GROUP.BL_BLNG_GRP.SHORT_DESC.IP=Short Desc~^PAGE_1~^Y~^N
BL_BLNG_GROUP.BL_BLNG_GRP.DETAIL_DESC.IP=Explanatory Note~^PAGE_1~^Y~^N

请建议如何进行此操作。

在此先感谢,桑迪

4

2 回答 2

1

属性文件通常以 ISO 8859-1 编码进行解释。如果您需要此集合中未包含的其他字符,请使用 unicode 转义符,例如\uxxxx. 还有一些工具可用于将具有不同编码的属性文件转换为这个文件(请参阅 参考资料native2ascii)。

于 2014-01-03T09:39:52.463 回答
1

如果您的文件编码正确,那么您必须注意,System.out使用默认控制台设置将无法打印 UTF-8 字符。确保用于显示输出的控制台也以 UTF-8 编码。

例如,在 Eclipse 中,您需要转到 Run Configuration > Common 来执行此操作。

在此处输入图像描述

于 2014-01-03T09:33:46.573 回答