操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊


    中文亂碼問題在我們?nèi)粘i_發(fā)中司空見慣,那么亂碼問題是如何產(chǎn)生的呢?又怎樣去解決亂碼問題呢?本文將結(jié)合基本概念和例子展開闡述,希望大家有收獲。

    一個簡單亂碼的例子

    package whx;
    
    import java.io.UnsupportedEncodingException;
    
    public class TestEncodeAndDecode {
        public static void main(String[] args) throws UnsupportedEncodingException {
    
            String str="測試中文亂碼";
            byte[] b=str.getBytes("GBK");
            System.out.println(new String (b,"UTF-8"));
        }
    }
    復制代碼

    用GBK編碼,用utf-8解碼,產(chǎn)生亂碼,運行結(jié)果如下:



    相關基礎概念

    要理解亂碼的根源,需要先了解清楚位、字節(jié)、字符、字符集等相關概念。

    位(bit)

    位是計算機存儲數(shù)據(jù)的最小單位,1或者0就表示1位,如10010010就表示8位的二進制數(shù)。

    字節(jié)

    字節(jié)是計算機信息技術用于計量存儲容量的一種計量單位,作為一個單位來處理的一個二進制數(shù)字串,是構成信息的一個小單位。

    1 B=8 bit (1字節(jié)等于8位)
    1 KB=1024 B=1024 字節(jié)
    1 MB=1024 KB 
    1 GB=1024 MB
    1 TB=1024 GB
    復制代碼

    字符

    字符是指計算機中使用的字母、數(shù)字、字和符號,是數(shù)據(jù)結(jié)構中最小的數(shù)據(jù)存取單位。如a、A、B、b、大、+、*、%等都表示一個字符;

    在 ASCII 編碼中,一個英文字母字符存儲需要1個字節(jié)。
    在 GB 2312 編碼或 GBK編碼中,一個漢字字符存儲需要2個字節(jié)。
    在UTF-8編碼中,一個英文字母字符存儲需要1個字節(jié),一個漢字字符儲存需要3到4個字節(jié)。
    在UTF-16編碼中,一個英文字母字符或一個漢字字符存儲都需要2個字節(jié)
    在UTF-32編碼中,世界上任何字符的存儲都需要4個字節(jié)
    復制代碼

    字符集

    字符集是多個字符的集合,字符集種類較多,每個字符集包含的字符個數(shù)不同。常見字符集名稱:

    ASCII字符集
    GB2312字符集
    Unicode字符集
    復制代碼

    編碼、解碼

    計算機只認識二進制的1和0,而人類都是有自己的語言的,雙方要能進行信息交流,必須要有從文字到0、1的轉(zhuǎn)化,以及0、1到文字轉(zhuǎn)化。

    編碼: 就是將文本字符轉(zhuǎn)換成計算機可以識別的0、1機器碼。

    解碼: 將存儲在計算機中的二進制數(shù)解析成文字、字符。

    常見字符集及其編碼方式

    常見字符集有ASCII、GBK、Unicode等

    ASCII字符集

    ASCII字符集:它包括英文字母、阿拉伯數(shù)字和西文符號等可顯示字符,以及回車鍵、退格等控制字符。

    ASCII 編碼:它是美國制定的字符編碼,用于將英語字符轉(zhuǎn)化為二進制,規(guī)定了128個字符的編碼。

    GBXXXX字符集

    GBXXXX系列包括GB2312、GBK、GB18030,適用于漢字處理、漢字通信等系統(tǒng)之間的信息交換。

    GB2312

    • 全稱是《信息交換用漢字編碼字符集》,支持六千多漢字。
    • 國家簡體中文字符集,兼容ASCII,中國大陸和新加坡都采用此編碼。
    • 每個漢字及符號以兩個字節(jié)來表示。
    • 高字節(jié)從A1~F7, 低字節(jié)從A1~FE。將高字節(jié)和低字節(jié)分別加上0XA0即可得到編碼。

    GBK

    • GBK全稱《漢字內(nèi)碼擴展規(guī)范》,擴展了GB2312,加入對繁體字的支持,支持兩萬多漢字。
    • 每個漢字及符號也是以兩個字節(jié)來表示。
    • 高字節(jié)從81~FE,低字節(jié)從40~FE。

    GB18030

    • GB 18030,全稱《信息技術 中文編碼字符集》,與GB2312、GBK編碼兼容,可支持27484個文字
    • 采用變長多字節(jié)編碼,每個字可以由1個、2個或4個字節(jié)組成。
    • 1字節(jié)從00~7F; 2字節(jié)高字節(jié)從81~FE,低字節(jié)從40到7E和80到FE;4字節(jié)第一三字節(jié)從81~FE,第二四字節(jié)從30~39。

    Unicode 字符集

    Unicode是國際組織制定的可以容納世界上所有文字和符號的字符編碼方案。UNICODE字符集有多種編碼方式,分別是UTF-8,UTF-16和UTF-32。

    UTF-8

    • 是針對Unicode的一種可變長度字符編碼。
    • 它可以用來表示Unicode標準中的任何字符,而且其編碼中的第一個字節(jié)仍與ASCII相容,使得原來處理ASCII字符的軟件無須或只進行少部份修改后,便可繼續(xù)使用。
    • UTF-8使用1~4字節(jié)為每個字符編碼(ASCIl字符只需1字節(jié)編碼, 拉丁文、希臘文等需要兩個字節(jié)編碼, 中日韓文字使用三字節(jié)編碼, 其他極少使用的語言字符使用4字節(jié)編碼號)

    UTF-16

    • 把Unicode字符集的抽象碼位映射為16位長的整數(shù)(即碼元)的序列,用于數(shù)據(jù)存儲或傳遞。
    • UTF-16比起UTF-8,好處在于大部分字符都以固定長度的字節(jié) (2字節(jié)) 儲存,但UTF-16卻無法兼容于ASCII編碼。

    UTF-32

    • 一種將Unicode字符編碼的協(xié)定,對每一個Unicode碼位使用恰好32位元,其它的 Unicode 編碼方式則使用不定長度編碼。
    • 采用4字節(jié)編碼,處理速度比較快,但是浪費空間,傳輸速度慢。

    一個例子理解編碼解碼的廬山面目

    我們敲代碼的程序員,接觸最多的就是“hello word”。計算機只認識0和1,它是怎么展示hello word的呢?

    上一小節(jié),我們已經(jīng)知道編碼、字符集的知識。我們可以用ASCII編碼,把“hello word”翻譯成計算機認識的0、1。有興趣的朋友可以去查一下 ASCII對照表

    計算機存儲的是hello world的0、1二進制碼,先將二進制碼解碼成對應的字符,然后在屏幕上渲染出來,我們看到的就是hello world了

    亂碼如何產(chǎn)生的呢?

    亂碼產(chǎn)生的原因主要有兩個,一是文本字符編碼過程與解碼過程使用了不同的編碼方式,二是使用了缺少某種字體庫的字符集引起的亂碼

    編碼與解碼使用了不同的編碼方式

    例子中,用了utf-8編碼,使用了GBK解碼,結(jié)果產(chǎn)生了亂碼。因為在utf-8中,一個漢字用三個字節(jié)編碼,而GBK中,每個漢字用兩個字節(jié)表示,所以產(chǎn)生了亂碼。

    使用了缺少某種字體庫的字符集

    我們知道GB2312是不支持繁體字的,所以使用缺少某種字體庫的字符集編碼,會產(chǎn)生亂碼。

    亂碼又如何解決呢

    使用支持要展示字體的字符集編碼,并且編解碼使用同一種編碼方式,就可以解決亂碼問題了。

    接下來列舉一下亂碼的經(jīng)典場景與解決方案

    IntelliJ Idea亂碼問題

    IDE項目中的中文亂碼問題?File->settings->Editor->File Encodings,設置一下編碼方式utf-8

    IDE控制臺中文亂碼?嘗試一下這種方式,打開IDE安裝目錄,找到

    在文本末尾添加-Dfile.encoding=UTF-8

    數(shù)據(jù)庫亂碼問題

    查看數(shù)據(jù)庫編碼:

    show variables like 'character_set%'
    復制代碼

    設置session、global范圍的編碼方式

    //session 范圍
    set character_set_server=utf8;
    set character_set_database=utf8;
    //global 范圍
    set global character_set_database=utf8;
    set global character_set_server=utf8;
    復制代碼

    session、global范圍編碼,重啟mysql可能編碼又變回去了,可以嘗試另外一種方式。在mysql(windows環(huán)境)的my.ini配置文件中修改或添加下列內(nèi)容

    [mysql]
    default-character-set=utf8 
    [mysqld]
    default-character-set=utf8 
    [client]
    default-character-set=utf8
    復制代碼

    編碼角度的亂碼問題

    寫代碼的時候出現(xiàn)中文亂碼?追蹤定位到編碼解碼的地方,設置用同一種編碼方式。

    寫在最后

    需更加深入學習java知識的小伙伴以及即將參加面試的小伙伴可以購買以下教程哦!

    一種辦法:

    Win7系統(tǒng)出現(xiàn)亂碼,原因應該是語言設置的非Unicode設置出問題而導致的,因為中文不是Unicode語言,所以才會亂碼,一般設置一下非Unicode的語言為中文就可以了。方法如下:

    第一,打開控制面板,在區(qū)域和語言設置-管理中,選擇更改顯示語言。

    第二,選擇管理標簽,并點擊更改系統(tǒng)區(qū)域設置。
    第三,將非Unicode語言更改為簡體中文即可可以正常顯示了。如果已經(jīng)是中文.需要先改成英文然后再改成中文 重啟就可以解決了

    第四,如果以上的方法使用后,還有部分的軟件有亂碼,可通過修改注冊表來解決全部的問題。方法是:打開注冊表,進入到如下目錄[HKEY_CURRENT_USER/Control Panel International],將其中的"Locale"鍵值修改成"00000804" ,保存然后關閉注冊表。你會發(fā)現(xiàn)所有的軟件系統(tǒng)亂碼問題均會解決。

    臺式電腦比起筆記本電腦來說,相對笨重、不易攜帶,但是臺式電腦依然有筆記本電腦沒辦法替代的優(yōu)點,尤其是對于游戲玩家而言,臺式電腦更容易能帶動現(xiàn)在的大型游戲,且游戲體驗感更好。但是我們使用鍵盤的時候也會遇到一些問題,就有用戶反映說自己的鍵盤最近老是出現(xiàn)亂碼的情況,在鍵盤上打字輸入后出現(xiàn)一大堆亂碼,該怎么解決呢?小編來給大家講講吧!

      電腦鍵盤出現(xiàn)亂碼的原因及解決方法:

      用鼠標查找故障。打開設備管理器看到鍵盤那項里應該是一個驚嘆號

      查看詳細信息:

      設備管理器顯示:代碼 19:由于其配置信息(注冊表中的)不完整或已損壞,Windows 無法啟動這個硬件設備

      左下角開始---運行----regedit

      打開注冊表regedit,定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318} ,刪除UpperFilters項

      卸載設備,重新啟動

      然后設備管理器里變成:代碼 10:該設備無法啟動

      定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318}

      添加字符串UpperFilters項,內(nèi)容是kbdclass 臺式機失靈


      臺式機鍵盤亂碼可能有以下原因:

      1、如果是串口鍵盤(圓孔接入口鍵盤),在電腦啟動前就需接入主機連接正常,因為在我們的電腦每次開機時它都都會檢測,等啟動完再插上的話那就檢測不到了喲;如果是USB口則無此問題,開機關機接上都可以

      2、連接線或接口接觸不良造成,換一個能正常使用的鍵盤測試一下排除問題

      3、如果鍵盤是USB接口,換一個USB接口試一下能否使用

      4、換鍵盤

      硬件準備: 電腦必須安裝一塊無線網(wǎng)卡,建議直接購買USB接口無線網(wǎng)卡。 臺式機接收wifi 1 硬件準備: 電腦必須安裝一塊無線網(wǎng)卡,建議直接購買USB接口無線網(wǎng)卡

      安裝網(wǎng)卡驅(qū)動: 確保網(wǎng)卡被電腦正確識別,是使用無線網(wǎng)絡的首要條件。在購買無線網(wǎng)卡時,通過會自帶一張驅(qū)動光盤,直接運行光盤中的可執(zhí)行文件即可自動完成整個驅(qū)動的安裝

      當無線網(wǎng)卡驅(qū)動安裝完成后,插入USB無線網(wǎng)卡,并打開“控制面板”,點擊“網(wǎng)絡和共享中心”項進入


      解決筆記本電腦鍵盤亂碼的方法有:

      方法1(如有外接鍵盤)

      1、給筆記本電腦外接一個鍵盤

      2、把外接鍵盤的數(shù)字小鍵盤關掉

      3、此時發(fā)現(xiàn)筆記本鍵盤恢復正常了

      方法2(沒有外接鍵盤)

      1、找到筆記本鍵盤上的fn鍵,一般來說都是在win鍵的旁邊

      2、先按住fn鍵,再按NumLk鍵

      3、然后松開兩個按鍵。此時鍵盤輸入亂碼問題解決

      4、如果你喜歡使用數(shù)字小鍵盤,可以按住fn鍵+NumLk鍵,打開數(shù)字小鍵盤


      臺式電腦鍵盤亂碼的兩種解決方法就為大家介紹到這里了。是不是非常簡單呢?感興趣的朋友們,不妨一起動手操作看看!

網(wǎng)站首頁   |    關于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有