九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
java亂碼問題分析

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();
        }
    }
}

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
struts原理與實(shí)踐(4)
java中文GBK和UTF-8編碼轉(zhuǎn)換亂碼的分析
Java中g(shù)etBytes()的用法
解決web服務(wù)器各種應(yīng)用的亂碼問題,歡迎補(bǔ)充和討論
java 字符編碼處理
java 中String編碼和byte 解碼 總結(jié)
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服