一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

java亂碼問題分析

 素行 2007-05-07

java 采用unicode 編碼來處理字符。Java 程序無論是從/往文件系統(tǒng)以字符流讀/寫文件,還是往URL 連接寫 HTML 信息,或從URL 連接讀取參數(shù)值,都會(huì)有字符編碼的轉(zhuǎn)換。編/解碼過程如下圖:

 

亂碼產(chǎn)生的根源是由于編碼和解碼采用的不是同一種碼(gbk,utf-8,iso8859-1)。

字符串(String 或char[])"123你" 經(jīng)過java 編碼后的字節(jié)流(unicode 字節(jié)流)為31 00 32 00 33 00 60 4f。如果你用new String("123你".getBytes("iso8859-1"), "gbk") 就會(huì)產(chǎn)生亂碼。

因?yàn)間etBytes("iso8859-1") 取得的是"123你" 經(jīng)過iso8859-1 編碼后的字節(jié)流31 32 33 3f(iso8859字節(jié)流),而在用new String(bytes, "gbk") 構(gòu)造字符串時(shí)java 則將iso8859字節(jié)流(31 32 33 3f)當(dāng)作是unicode 字節(jié)流(因?yàn)閖ava 是采用unicode 來處理字符的,所以它把字節(jié)流統(tǒng)統(tǒng)當(dāng)作是unicode 字節(jié)流),因此它把31 32 33 3f 也看成是unicode 字節(jié)流。而unicode 字節(jié)流(31 32 33 3f)經(jīng)過gbk 編碼后當(dāng)然是123? 了。于是,亂碼產(chǎn)生了。下面的是一個(gè)測(cè)試程序:

public class Charset {

    public static void main(String[] args) {
        String str = "123你";

        try {
            byte[] unicode = str.getBytes("unicode");
            for (int i=0; i<unicode.length; i++)
                System.out.print(Integer.toHexString(unicode[i]) + " ");
            System.out.println(new String(unicode));        // ??1 2 3 `O

            byte[] utf8 = str.getBytes("utf-8");
            for (int i=0; i<utf8.length; i++)
                System.out.print(Integer.toHexString((utf8[i])) + " ");
            System.out.println(new String(utf8));        // 123浣?

            byte[] iso88591 = str.getBytes("iso8859-1");
            for (int i=0; i<iso88591.length; i++)
                System.out.print(Integer.toHexString((iso88591[i])) + " ");
            System.out.println(new String(iso88591));        // 123?

            byte[] gbk = str.getBytes("gbk");
            for (int i=0; i<gbk.length; i++)
                System.out.print(Integer.toHexString((gbk[i])) + " ");
            System.out.println(new String(gbk));        // 123你

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    国产福利一区二区三区四区| 国产欧美日韩在线精品一二区| 黑丝袜美女老师的小逼逼| 欧美精品一区二区三区白虎| 欧美黑人暴力猛交精品| 亚洲妇女作爱一区二区三区| 日韩一级免费中文字幕视频| 欧美色婷婷综合狠狠爱| 福利专区 久久精品午夜| 国产精品午夜福利免费阅读| 国产福利一区二区久久| 午夜福利黄片免费观看| 亚洲一区二区三区av高清| 激情亚洲内射一区二区三区| 欧美日韩三区在线观看| 久久精品色妇熟妇丰满人妻91| 亚洲综合色在线视频香蕉视频| 中文字幕在线五月婷婷| 富婆又大又白又丰满又紧又硬| 亚洲中文字幕三区四区| 欧美激情一区=区三区| 日本免费一区二区三女| 热久久这里只有精品视频| 日本人妻的诱惑在线观看| 五月婷婷欧美中文字幕| 91麻豆视频国产一区二区| 五月激情婷婷丁香六月网| 国产高清一区二区白浆| 永久福利盒子日韩日韩| 中文字日产幕码三区国产| 国产一区欧美一区二区| 日本人妻精品中文字幕不卡乱码| 国产日韩欧美一区二区| 91超频在线视频中文字幕| 国产日韩欧美一区二区| 五月婷婷欧美中文字幕| 中国少妇精品偷拍视频 | 日韩欧美中文字幕av| 国产丝袜女优一区二区三区| 五月天丁香婷婷一区二区| 麻豆tv传媒在线观看|