`
夜枫舞影
  • 浏览: 50437 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用RESOURCE_BUNDLE注意文件编码

阅读更多
RESOURCE_BUNDLE 提供了一个键值对让我们更加容易将一些文本字符串信息放在外部,增加灵活性。
key1=value1
key2=value2



读的方法eclipse默认就带了


import java.util.MissingResourceException;
import java.util.ResourceBundle;
import java.util.Locale;

/**
 * @author liweigong
 */
public class Message
{
    private static final String BUNDLE_NAME = "message";

    private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle
            .getBundle(BUNDLE_NAME, Locale.getDefault());

    private Message()
    {
    }

    public static String getString(String key)
    {
        try
        {
            return RESOURCE_BUNDLE.getString(key);

        } catch (MissingResourceException e)
        {
            e.printStackTrace();
            return '!' + key + '!' + " Not Found!";
        }
    }
}


但是对所读的文件的编码要求一定要是iso8859-1,如果把文件换成GBK、UTF-8或者其他那么则无法读取,在上述代码则会炮出类似
Can't find resource for bundle java.util.PropertyResourceBundle, key WebImage

的异常。

所以要想读中文,只有把文件转换为UTF-8的ascii码才可以。
一般利用java自带的工具native2ascii便可。

联想:N年前一直纳闷什么时候才会用到这个工具。原来在文件读取的时候,读的文件与被读的文件之间的编码会成为问题。JAVA支持的字符编码集是unicode,即System.out.print("\uXXXX")便可以输出在UNICODE里对应的字符,native2ascii做的就是这件事,把每个各种编码的字符转换成unicode中对应的ascii码。在iso8859-1中根本没有对应中文的ascii码那么势必无法利用这样的文件保存中文了,所以,只有使用正确的字符集对编码进行解析才可以获得想要的字符。
分享到:
评论

相关推荐

    ios-Swift 拷贝文件到沙盒.zip

    - **编码问题**:在处理文件路径时,确保正确使用URL编码和解码。 - **线程安全**:如果你在多线程环境中操作文件,可能会出现并发冲突。确保操作是线程安全的。 - **资源未加载**:如果文件是随程序一起打包的,...

    java国际化中文乱码问题解决包

    5. **处理输入输出流**:如果涉及文件读写操作,确保在打开文件流时指定UTF-8编码,例如使用 `BufferedReader` 和 `FileReader` 的构造函数。 ```java InputStreamReader reader = new InputStreamReader(new ...

    java读取配置文件

    如果你的项目使用了Spring框架,可以利用Spring的`Resource`接口来读取配置文件,它支持从类路径、文件系统、URL等多种来源加载资源: ```java Resource resource = new ClassPathResource("config.properties");...

    ireport+web进行报表开发

    1. **修改jrxml文件编码**:确保`.jrxml`文件的编码设置为UTF-8,这可以在文件属性或者编辑器中设置。 2. **设置报表的文本域编码**:在`iReport`的设计界面中,选择文本框,然后在“Miscellaneous”选项卡中设置...

    java程序多国语言示例

    9. **编码与乱码问题**:确保所有.properties文件使用正确的字符编码(通常为UTF-8),以避免乱码问题。 10. **测试与调试**:在开发过程中,使用多种语言环境进行测试,确保每个语言版本的程序都能正常工作。 这...

    MyEclipse国际化插件

    1. **Resource Bundle编辑器**:ResourceBundleEditor_v0.7.7是这个插件的核心组件,它提供了一个图形化的界面,使得开发者能够轻松创建、编辑和管理Resource Bundle文件。这个编辑器支持.properties文件的编辑,这...

    MyEclipse中Properties文件插件

    - 打开MyEclipse,选择项目,右键点击“New” -> “Other” -> “Java” -> “Resource Bundle”,然后输入文件名(如`config.properties`)并确认。 - 创建完成后,MyEclipse会自动生成默认的键值对,如`key=...

    .vscode_JavaEE_

    1. **文件编码设置**:VSCode默认的文件编码可能是UTF-8,但根据项目的实际需求,可能需要设置为GBK或其他编码。这可以在VSCode的设置中完成,搜索"files.encoding"并设置为所需的编码格式。 2. **项目编码配置**:...

    解决JSP中文显示问题的几个方法

    - 如果涉及到多语言支持,正确设置`Resource Bundle`的编码,并在JSP中使用`fmt`标签库进行国际化处理。 解决JSP中文显示问题通常需要从多个层面进行排查和调整,包括但不限于上述方法。在实际操作中,应根据具体...

    Eclipse导入项目源码后中文乱码的解决办法

    此外,Eclipse还提供了其他方式来解决中文乱码问题,例如使用Resource Bundle或字符编码转换工具。但是,设置workspace编码方式是最简单和最直接的方法。 解决Eclipse中文乱码问题的关键在于设置正确的workspace...

    Struts2国际化支持引导(初)

    在Java中,这一过程通常通过使用Resource Bundle和Locale对象来完成。 1. **创建Resource Bundle**: Resource Bundle是一组按语言和国家/地区分组的属性文件,用于存储应用中的可变文本。在Struts2中,这些文件...

    计算机软件-商业源码-191 将声音文件打包到程序中.zip

    - 资源文件系统:许多编程语言或框架(如Java的Resource Bundle、C#的Resource Manager)提供了内置机制来管理程序中的资源。 4. **运行时加载**: - 内存映射:在程序启动时,可以将声音文件加载到内存中,以...

    liferay使用心得

    在创建portlet时,可以通过设置“Create resource bundle file”选项自动生成资源文件。若未自动创建,需要手动添加`<resource-bundle>`标签,并在`src/content/Language`目录下创建对应语言的`.properties`文件,如...

    native2ascii 命令的使用

    在实际开发中,`native2ascii`命令常用于处理Java的resource bundle文件,如.properties或.res文件。这些文件通常包含国际化字符串,可能包含非英文字符。在编译Java应用时,这些非ASCII字符需要转换为Unicode转义...

    “转”jsp中文乱码

    - 如果涉及到多语言支持,需要考虑`Accept-Language`头字段,以及`Resource Bundle`的编码设置。 10. **问题排查**: - 查看HTTP响应头的`Content-Type`,确认服务器返回的字符集。 - 检查JSP源代码,确认`...

    关于Servlet、Jsp中的多国语言显示

    为了更好地支持多国语言显示,Servlet与JSP项目通常会使用国际化资源文件(Resource Bundle)。这些文件以.properties或.xml格式存储,包含针对不同语言环境的键值对,如`message_zh_CN.properties`和`message_en_US...

    arb_editor:在线编辑器| 编辑您的.arb文件并以最简单的方式翻译您的应用

    arb 文件是 Application Resource Bundle 的缩写,主要用于存储应用程序的字符串,以便进行多语言支持。通过 arb_editor,用户可以高效地管理应用的本地化工作,无需离开浏览器即可实现翻译。 在 arb 文件中,每个...

    plist资源文件

    if let path = Bundle.main.path(forResource: "FileName", ofType: "plist") { let dict = NSDictionary(contentsOfFile: path) // 处理dict... } // 写入 let dict: [String: Any] = ["key": "value"] do ...

Global site tag (gtag.js) - Google Analytics