BBS水木清华站∶精华区

发信人: goldstar (淡水河畔的烟火), 信区: Java        
标  题: 问个java中文的问题 
发信站: BBS 水木清华站 (Sat Mar 10 13:43:46 2001) 
 
 
在处理中文的时候经常是new String(str.getBytes("编码方式1"), "编码方式2"); 
在这里我的理解有3点: 
1。java里的字符串都是Unicode来表示的 
2。String.getBytes("编码方式")是将用unicode表示的字符串 按照指定的编码方式转换 
   为一个byte数组 
3。new String(byte[], "编码方式"),则是将给定的byte数组按照指定编码方式来解释, 
   得到一个unicode编码的字符串。 
 
而通常的乱码问题是因为: 
   传送字符串给java程序时,没有考虑读入的字符串的实际编码类型(GBK),统一按照某一 
编码方式(比如8859)来编码,这样我们在程序里就需要先getBytes("8859")还原得到 
按照实际编码类型组织的byte数组,然后在new String(byte, "GBK")就可以得到正确的 
字符串了. 
 
以上是我对中文问题的理解。 
我的说法是否正确的关键是上面我列出的那3点是不是正确的。 
问题已经困饶我好久了,请高手指点。 
多谢,多谢。 
 
-- 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 162.105.183.50] 
发信人: FoolsGarden (和水木清华谈恋爱), 信区: Java        
标  题: Re: 问个java中文的问题 
发信站: BBS 水木清华站 (Sat Mar 10 13:59:34 2001) 
 
关于这个问题,我曾经有过研究,你的理解错了,呵呵 
【 在 goldstar (淡水河畔的烟火) 的大作中提到: 】 
 在处理中文的时候经常是new String(str.getBytes("编码方式1"), "编码方式2"); 
 在这里我的理解有3点: 
 1。java里的字符串都是Unicode来表示的 
默认编码 
 2。String.getBytes("编码方式")是将用unicode表示的字符串 按照指定的编码方式转换 
    为一个byte数组 
这个没有错,不过本来就是这样的 
 3。new String(byte[], "编码方式"),则是将给定的byte数组按照指定编码方式来解释, 
    得到一个unicode编码的字符串。 
这个错了,也是你有错误结论的地方 
 而通常的乱码问题是因为: 
    传送字符串给java程序时,没有考虑读入的字符串的实际编码类型(GBK),统一按照某一 
 编码方式(比如8859)来编码,这样我们在程序里就需要先getBytes("8859")还原得到 
 按照实际编码类型组织的byte数组,然后在new String(byte, "GBK")就可以得到正确的 
 ................... 
 
-- 
秀才戒网了…… 
 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.77.2] 
发信人: goldstar (淡水河畔的烟火), 信区: Java        
标  题: Re: 问个java中文的问题 
发信站: BBS 水木清华站 (Sat Mar 10 14:02:25 2001) 
 
呵呵,太好了,请指点一下吧。 
多谢,多谢 
//bow 
 
 
【 在 FoolsGarden (和水木清华谈恋爱) 的大作中提到: 】 
 关于这个问题,我曾经有过研究,你的理解错了,呵呵 
 默认编码 
 这个没有错,不过本来就是这样的 
 这个错了,也是你有错误结论的地方 
 
 
-- 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 162.105.183.50] 
发信人: goldstar (淡水河畔的烟火), 信区: Java        
标  题: Re: 问个java中文的问题 
发信站: BBS 水木清华站 (Sat Mar 10 14:04:22 2001) 
 
new String到底是什么意思? 
//bow 
 
【 在 FoolsGarden (和水木清华谈恋爱) 的大作中提到: 】 
 关于这个问题,我曾经有过研究,你的理解错了,呵呵 
 默认编码 
 这个没有错,不过本来就是这样的 
 这个错了,也是你有错误结论的地方 
 
 
-- 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 162.105.183.50] 
发信人: FoolsGarden (和水木清华谈恋爱), 信区: Java        
标  题: Re: 问个java中文的问题 
发信站: BBS 水木清华站 (Sat Mar 10 14:05:30 2001) 
 
类的构造,就是一个实例产生了 
【 在 goldstar (淡水河畔的烟火) 的大作中提到: 】 
 new String到底是什么意思? 
 //bow 
 
 
-- 
秀才戒网了…… 
 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.77.2] 
发信人: goldstar (淡水河畔的烟火), 信区: Java        
标  题: Re: 问个java中文的问题 
发信站: BBS 水木清华站 (Sat Mar 10 14:47:20 2001) 
 
不是,我是问,new String(byte[], "encodeMethod"); 
中指定的编码方式和byte数组的关系是什么? 
 
【 在 FoolsGarden (和水木清华谈恋爱) 的大作中提到: 】 
 类的构造,就是一个实例产生了 
 
 
-- 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 162.105.183.50] 
发信人: FoolsGarden (和水木清华谈恋爱), 信区: Java        
标  题: Re: 问个java中文的问题 
发信站: BBS 水木清华站 (Sat Mar 10 14:54:02 2001) 
 
byte是什么,就是2进制数的三说 
当然计算机中信息都是以二进制存储的,编码方式的指定 
只是为构造String类是对byte数组怎么解码后构成String 
的,如果编码方式不同,相信Sring也不一样 
【 在 goldstar (淡水河畔的烟火) 的大作中提到: 】 
 不是,我是问,new String(byte[], "encodeMethod"); 
 中指定的编码方式和byte数组的关系是什么? 
 
 
-- 
秀才戒网了…… 
 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.77.2] 
发信人: goldstar (淡水河畔的烟火), 信区: Java        
标  题: Re: 问个java中文的问题 
发信站: BBS 水木清华站 (Sat Mar 10 14:58:05 2001) 
 
 
那我第3点错在哪呢? 
 
呵呵,我悟性不高,还请指点的说 //blush 
//bow 
【 在 FoolsGarden (和水木清华谈恋爱) 的大作中提到: 】 
 byte是什么,就是2进制数的三说 
 当然计算机中信息都是以二进制存储的,编码方式的指定 
 只是为构造String类是对byte数组怎么解码后构成String 
 的,如果编码方式不同,相信Sring也不一样 
 
 
-- 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 162.105.183.50] 
发信人: FoolsGarden (和水木清华谈恋爱), 信区: Java        
标  题: Re: 问个java中文的问题 
发信站: BBS 水木清华站 (Sat Mar 10 15:01:10 2001) 
 
得到unicode有误,自己理解吧,我要走了 
【 在 goldstar (淡水河畔的烟火) 的大作中提到: 】 
 那我第3点错在哪呢? 
 呵呵,我悟性不高,还请指点的说 //blush 
 //bow 
 
 
-- 
秀才戒网了…… 
 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.77.2] 
发信人: goldstar (淡水河畔的烟火), 信区: Java        
标  题: Re: 问个java中文的问题 
发信站: BBS 水木清华站 (Sat Mar 10 15:04:20 2001) 
 
好吧,多谢指点 
//bow 
 
【 在 FoolsGarden (和水木清华谈恋爱) 的大作中提到: 】 
 得到unicode有误,自己理解吧,我要走了 
 
 
-- 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 162.105.183.50] 
发信人: goldstar (淡水河畔的烟火), 信区: Java        
标  题: Re: 问个java中文的问题 
发信站: BBS 水木清华站 (Sat Mar 10 15:11:35 2001) 
 
我觉得是new String(byte[], "编码方式")中,按照编码方式来解释byte数组 
得到一个按指定编码方式编码字符串,又因为java里字符串都是Unicode表示的。 
所以,最终是得到了一个Unicode的字符串 
 
 
【 在 FoolsGarden (和水木清华谈恋爱) 的大作中提到: 】 
 得到unicode有误,自己理解吧,我要走了 
 
 
-- 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 162.105.183.50] 
发信人: goldstar (淡水河畔的烟火), 信区: Java        
标  题: Re: 问个java中文的问题 
发信站: BBS 水木清华站 (Sat Mar 10 15:20:22 2001) 
 
 
领悟了,领悟了,的确错了。 
感谢FoolsGarden的大力帮助。 
//bow 
也祝愿本版越来越火 
【 在 goldstar (淡水河畔的烟火) 的大作中提到: 】 
 我觉得是new String(byte[], "编码方式")中,按照编码方式来解释byte数组 
 得到一个按指定编码方式编码字符串,又因为java里字符串都是Unicode表示的。 
 所以,最终是得到了一个Unicode的字符串 
 
 
-- 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 162.105.183.50] 

BBS水木清华站∶精华区