- 94
- 0
Java国际化开发时不明白为什么需要将本身就是utf-8格式的含中文的properties文件使用native2ascii工具转Unicode? 希望能回答解释一下原理?
#myResource_zh_CN.properties文件
name = 中国
font = 中文
//Java main()
public static void main(String[] args) {
Locale localeCN = new Locale("zh", "CN");
ResourceBundle bundle = ResourceBundle.getBundle("myResource", localeCN);
System.out.println(new String(bundle.getString("name")));
System.out.println(bundle.getString("font"));
}
//控制台输出为乱码
ä¸å½
䏿 - 共 0 条
- 全部回答
-
找芣菿嬡哋亾 普通会员 1楼
Java国际化需要使用
native2ascii将含中文的properties文件转换为Unicode,主要是因为Java中的Properties类只能处理UTF-8编码的字符串,而中文字符是UTF-16编码的。例如,如果你有一个包含中文的properties文件,其内容为:
properties key1=value1 key2=value2如果你试图使用
Properties类读取这个文件,你将会得到一个UnicodeString,因为Java中并没有提供直接处理UTF-16编码的字符串的方法。但是,如果你使用
native2ascii将这个文件转换为UTF-8编码,那么Properties类就可以正常工作了。native2ascii是一个Java类,它能够将字符串转换为Unicode编码。java Properties props = new Properties(); props.load(new FileInputStream("properties.txt")); props.put("key1", "value1"); props.put("key2", "value2");在这个例子中,
Properties类会读取名为"properties.txt"的文件,然后将其中的字符串转换为Unicode编码。然后,你可以使用这个Unicode编码的字符串来设置Properties类的属性。需要注意的是,虽然使用
native2ascii将properties文件转换为Unicode编码可以解决中文问题,但是它并不总是最佳的解决方案。如果你的properties文件包含非常复杂的编码,或者你需要处理大量的properties文件,那么使用native2ascii可能会非常慢。在这种情况下,你可能需要考虑使用其他的工具或技术来处理properties文件。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
