Java中文问题

    技术2022-05-11  123

    在处理中文的时候经常是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的字符串

    最新回复(0)