A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 宋蕈 中级黑马   /  2012-4-8 09:58  /  2834 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在java.util.Lacale中使用了构造函数:
Locale(String language, String country)
          根据语言和国家/地区构造一个语言环境。

   程序是:import java.util.*;

public class ClassTest_3{

        public static void main(String[] args){
                Locale zh_locale=new Locale("zh","CN");  
                Locale en_locale=new Locale("en","US");
                Locale fr_locale=new Locale("fr","FR");
                ResourceBundle zh_bundle=ResourceBundle.getBundle("Message",zh_locale);
                ResourceBundle en_bundle=ResourceBundle.getBundle("Message",en_locale);
                ResourceBundle fr_bundle=ResourceBundle.getBundle("Message",fr_locale);
               
               
                System.out.println(zh_bundle.getString("info"));
                System.out.println(en_bundle.getString("info"));
                System.out.println(fr_bundle.getString("info"));
        }
}

在文件 Message_zh_CN.properties 中:  // <---  问题所在!!
info=你好!

结果在dos窗口中出现了 中文显示为:?????的问题?即乱码。
(其他的文件 如:Message_en_US.properties 和 Message_fr_FR.properties中由于没有中文出现。所以显示正常!)

4 个回复

正序浏览
就小说艺术的角度而言,这篇帖子不算太成功,但它的实验意义却远远大于成功本身。正所谓:【一马奔腾,射雕引弓,天地都在我心中!】楼主真是英俊潇洒,风流倜傥,玉树临风,年少多金,神勇威武,天下无敌,宇内第一,寂寞高手,刀枪不入,唯我独尊,玉面郎君,仁者无敌,勇者无惧,金刚不坏,英明神武,侠义非凡,义薄云天,古往今来,无与伦比,谦虚好学,不耻下问,聪明伶俐,活泼可爱,待友热情,对敌冷酷,阴险狡诈,无所不为,心狠手辣,无恶不作,对友赴汤蹈火,再所不辞,两肋插刀,枪林弹雨,勇往直前,慷慨大方, 头脑精明,仙福永享,寿与天齐,百折不饶,百打不死,侠中豪杰,人中龙凤,有情有义,有胆有色,举世无双,既酷又帅,人之表率,诚实可信,谈吐大方,风度翩翩,气势凌人,气质高贵,单身贵族,貌赛潘安,智胜孔明,勇比子龙,义超关羽,巧越鲁班,至尊至圣,至高无上,华丽绚烂,英勇无比,道德榜样,千杯不醉,坐怀不乱,知识渊博,才高八斗,傲视众生,世外高人,光明磊落,公正无私,震古烁今,第一大英雄大豪杰大侠客大宗师,急如风,静如林,掠如火,不动如山,号称一朵梨花压海棠,人送绰号天下地无所不能玉面小飞龙,英俊与智慧的化身,侠义与仁义的糅合,前辈高人巨侠是也。楼主真不愧为无厘界新一代的开山怪才!、
回复 使用道具 举报
根据我上面说的那些,所以你应该明白你的那个读出来为什么显示的乱码了吧
回复 使用道具 举报
因为在属性文件中是不能直接写入中文的,就算是写入了中文,读出来也必然是乱码,因此必须将中文变为Unicode编码才可以,要成功将一个中文编码变为Unicode编码,可以直接在运行处执行"native2ascii.exe"命令,输入相应的中文后会自动将其进行编码
回复 使用道具 举报
在做Java开发的时候,常常会出现一些乱码,或者无法正确识别或读取的文件,比如常见的validator验证用的消息资源(properties)文 件就需要进行Unicode重新编码。原因是java默认的编码方式为Unicode,而计算机系统编码常常是GBK等编码。需要将系统的编码转换 为java正确识别的编码问题就解决了。
用法:
native2ascii 工具将带有本机编码字符(非拉丁 1 和非单一码字符)的文件转换成带有Unicode编码字符的文件。 假设需要转化的属性文件为:D:\src\resources.properties(含有中文字符) ,转化后的属性文件为:D:\classes\resources.properties(中文字符统一转化为Unicode) 那么使用如下命令
  JAVA_HOME\bin\native2ascii -encoding GBK D:\src\resources.properties D:\classes\resources.properties
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马