新聞資訊
記錄首創點滴進步 見(jiàn)證遠(yuǎn)行(xíγ₩×ng)
我們一(yī)直緊跟時(shí)代前沿,聚焦行(xíng)業(yè)實時♠¶φ₹(shí)動态,發布公司最新資訊,歡迎您的(de)關注

輕松解決網站(zhàn)亂碼現(xiàn)象

日(rì)期:2013-05-03發布:首創網絡浏覽:797次

    輕松解決網站(zhàn)亂碼現(xiàn)象。相(xε≤©iàng)信各位同行(xíng)或多(duō)或少π∑♥(shǎo)都(dōu)會(huì)碰到(dào)過亂碼的(≠π¶ de)問(wèn)題。從(cóng)來(lái)沒有∞≠≥π(yǒu)?相(xiàng)信我,隻是(shì)時(shí)候未到↓•φ(dào),在這(zhè)行(xíng)混,∑λ遲早會(huì)碰到(dào)的(de)。當δ→然,如(rú)果你(nǐ)對(duì)各類編碼非常了(le)解,對Ω∏(duì)浏覽器(qì)脾氣摸得(de)很(hěn)清楚了(le),你↑¶(nǐ)可(kě)以避開(kāi)或者快(kuài)速解決此類問(w¶×èn)題。希望這(zhè)篇文(wén)章(zhāng)對(duì)你₹≈(nǐ)有(yǒu)所幫助。 一(yī)

    本文(wén)關鍵字:輕松,解決,網站(zhàn),亂碼,×≤現(xiàn)象,輕松,解決,網站(zhàn),

  輕松解決網站(zhàn)亂碼現(xiàn)象★±€↓。相(xiàng)信各位同行(xíng)或多(duō)或少(shǎo)都(dō×≠u)會(huì)碰到(dào)過亂碼的(de)問(wèn)題。從(c≈§óng)來(lái)沒有(yǒu)?相(xiàng)信我,δ 隻是(shì)時(shí)候未到(dào),在這(zhè)行(xíng)混,★$≠遲早會(huì)碰到(dào)的(de)。當然,如(rú)果你(nǐ☆ε)對(duì)各類編碼非常了(le)解,對↓'$®(duì)浏覽器(qì)脾氣摸得(de)很(hěn)清楚了(le),你(♦↔¥♠nǐ)可(kě)以避開(kāi)或者快(kuài)速解決此類問(wèn)題。希∑δ望這(zhè)篇文(wén)章(zhāng)對(duì)你(nǐ)→↔ >有(yǒu)所幫助。

  一(yī)、為(wèi)什(shén)麽會(huì)出現(x≥✔☆♠iàn)亂碼?

  在計(jì)算(suàn)機(jī)中,₩✘☆我們儲存的(de)信息都(dōu)是(shì)用(₽₩"↔yòng)二進制(zhì)碼表示的(de)。我們文(≈₩‍wén)字和(hé)符号用(yòng)的(de)二進制(zhì)代碼的(de¥∑π)互相(xiàng)轉換,就(jiù)是​≤<(shì)編碼,轉換需要(yào)一(yī)種¶ε ★規則,就(jiù)是(shì)字符集(charset),我們常用(yòng≤♣≥)的(de)字符集例如(rú):ascii‍♣,gb2312,unicode。

  不(bù)同的(de)字符集所存儲的(de)內&★∏(nèi)容不(bù)同,比如(rú)&ldqu↑←o;太平洋”三個(gè)字采用(yòng)g₹∑§b2312對(duì)應的(de)值為(wèi)441138294983,ut₹★f-8對(duì)應為(wèi)E5A4A →σδAE5B9B3E6B48B,這(zhè)樣,當一(yī)個♦±δΩ(gè)gb2312的(de)文(wén)件(j←≥iàn)嵌入一(yī)個(gè)utf-8的(de)文(wén)件 ←±♦(jiàn)的(de)時(shí)候,問(wèn)題就(jiù)來•σ$(lái)了(le)。

  二、ANSI,Unicode,UT♦₹αF-8,Encode,Charset,HTML實體(®<tǐ)…我快(kuài)瘋了(le)

  瘋完了(le)沒,沒昏就(jiù)行(xíng)了(le),别±δ著(zhe)急,聽(tīng)我一(yī)一(y✘δ•≥ī)道(dào)來(lái)。其實這(zhè)隻是(shì)同一(yīש)樣東(dōng)西(xī)在不(bù)同場(chǎng)合的(de)應用(≠®•βyòng)。

  A.ANSI,Unicode,UT&λ↑F-8

  這(zhè)幾個(gè)歸為(wèi)一(yī)★✔類,它們是(shì)文(wén)件(jiàn)編碼。

  ANSI指當地(dì)編碼,比如(rú)在大(dà)陸§♦•↔它指GB2312,在台灣它指GBK(Win中記事(shì)本保存文(w↓₽↓λén)件(jiàn)的(de)時(shí)候的(de)默認選項就(★★jiù)是(shì)它)。

  Unicode是(shì)一(yī)個(gè)通(tōng)用(yòn©♠$ g)字符集,它是(shì)一(yī)個(gè)編碼标準,這(zhè)±♥∑₽個(gè)和(hé)GB2312是(shì)對(duì)應的​↓‍(de),但(dàn)因為(wèi)字符集過大(dà),Un♠★←icode有(yǒu)它的(de)特殊性,在不(bù)同應用(yòng)₹"場(chǎng)合,有(yǒu)不(bù↔$ε)同的(de)具體(tǐ)實現(xiàn)手法,比如(rú)應用(y✘ >òng)于互聯網傳輸,采用(yòng)的(de)存儲與傳送格式是(sh γ±ì)UTF-8,Windows應用(yòng)α ₩™UTF-16,Linux應用(yòng)UTF-32。

  B.Charset

  HTML中的(de)Charset,C≠×♥SS中的(de)@charset,XML中的(de)encod>ε∑ing等,這(zhè)幾個(gè)歸為(wèi)£™一(yī)類。

  它們是(shì)告訴浏覽器(qì)如(r✔↑₩ ú)何解碼。比如(rú)psd後綴是(shì)告訴系統這(zhè)是(sh€β≈αì)Photoshop源文(wén)件(jiàn),同樣charset設為®♥(wèi)gb2312是(shì)告訴浏覽器(qì)這(zhè)是(shì)♣≥一(yī)個(gè)簡體(tǐ)中文(wén)的(de)網頁。

  C.Encode

  Encode和(hé)encodeURI,e$✔&ncodeURIComponent歸為(♠≥""wèi)一(yī)類。

  這(zhè)在下(xià)一(yī)節中進行(xín≤≈₩g)比較詳細的(de)介紹。當浏覽器(qì)提↕§交數(shù)據給服務器(qì)時(shí),特殊字符中文(wén)Ω≠♠一(yī)般浏覽器(qì)會(huì)自(zì)動編碼,但(dàn$♥₽)存在部分(fēn)保留字符,比如(rú)”#/&★∑rdquo;等,這(zhè)時(shí)候需要(yà≥ o)encode等進行(xíng)轉換。

  D.HTML實體(tǐ)

  當網頁中需要(yào)插入某些(xiē)特殊字符×↓時(shí),需要(yào)用(yòng)到(dγ××ào)HTML實體(tǐ),比如(rú)插入<,可(kě)以使用(yòng)<>

  三、JavascriptURI編碼/解碼

  A.為(wèi)什(shén)麽需要(yào¶∞)URI編碼?

  通(tōng)常來(lái)說(shuō),之所以U"¥₽RI需要(yào)進行(xíng)編碼,是(shì)因為(wèi↓÷₩)URI中有(yǒu)些(xiē)字符可(kě)能(néng) •✔♣會(huì)引起歧義或者有(yǒu)隐私的(de)數(sδ∞& hù)據。

  B.編碼與解碼的(de)函數(shù)?

  JS對(duì)文(wén)字進行(xíng)編碼涉及3個(gè)函數Ω§(shù):escape,encodeURI,encodeURI<δComponent,相(xiàng)應3Ω¶個(gè)解碼函數(shù):unescape$δ→,decodeURI,decodeURIComponent

  C.如(rú)何選擇?

  首先,範圍不(bù)同。Escape不(bù)能(néng)編碼的♠ (de)字符有(yǒu):@*/+;encodeUφ✘ ₩RI:!@#$&*()=:/;?+&ls ®quo;;encodeURIComponent:!*()。

  其次,編碼類型不(bù)同。encodeURI、eε±ncodeURIComponent采用(₹φyòng)utf-8進行(xíng)編碼;而Escape采用(yòng€βλ★)系統編碼。

  所以,怎麽選擇?例如(rú)內(n <×$èi)容中要(yào)存在URI标識,則用(yòng)encodeURI,如(←•ε±rú)果想把”#,/”也(yě)要(yào)編♦™→碼用(yòng)escape或encod'>♥eURIComponent。

  四、Ajax加載的(de)文(wén)件(jiàn)中不(bù)±¶能(néng)用(yòng)中文(wén)?

  這(zhè)一(yī)直是(shì)讓開( >♦∏kāi)發人(rén)員(yuán)很(hěn)頭疼的✔ (de)問(wèn)題之一(yī),也(yě)是(shì)常見(j×₩•iàn)的(de)編碼問(wèn)題,原因很(hβ←ěn)簡單,你(nǐ)非得(de)拿(ná)羊城(chén✔α↔£g)通(tōng)往ATM上(shàng)插,結果當然是(shì)讀(d>δ×ú)不(bù)出來(lái)或者讀(dú)錯(cuò)。編碼問(wèn)題也(§φyě)是(shì)一(yī)樣,通(tōng)常出錯(cuò)的♠γ×(de)情況是(shì),文(wén)檔編碼是★ ₩₹(shì)GB2312,而浏覽器(qì)↓λ♠以UTF-8(Ajax默認解碼方式)來(lái)解碼,自(zφ↔ì)然亂碼。

  怎麽解決呢(ne)?

  1、文(wén)檔采用(yòng)UTF-↕¶♥8編碼,不(bù)會(huì)産生(shēng)任何問± ↔(wèn)題。

  2、如(rú)果不(bù)能(néng)用(yòng)UT≤$≤‍F-8,XML文(wén)檔可(kě)以指定它的(de)✘→$Encoding,JS文(wén)件(jiàn)和 ♥ (hé)JSON數(shù)據目前沒有(yǒu)好(hǎo)的(de)解α•≠≠決辦法。

  五、GB2312,UTF-8都(dōu)可(kě)>‌ 以顯示中文(wén),如(rú)何選擇?

  可(kě)以顯示中文(wén)的(de)編碼有(yǒu)•βε<GB2312、GBK、GB18030、Unicode。前三個(gè)保持向↑♦後兼容,比如(rú)“邯鄲網站(zhàn)建設”這(zhè)幾個(gè)字在這γ★‍(zhè)幾個(gè)編碼規則中內(nèi)碼是(s&™≤≈hì)一(yī)樣的(de)。它們的(de)不(bù)同之處ε™÷在于字符集不(bù)同,GB2312隻包括≠♦ ♣簡體(tǐ)中文(wén),GBK還(hái)包括繁§∑∑•體(tǐ),GB18030再加入了(le)•♠↔δ少(shǎo)數(shù)民(mín)族語言,比如(≥≤rú)藏文(wén)。那(nà)如(rú)¥ ÷>果顯示簡體(tǐ)中文(wén)可(kě)以任意選擇 ♦✘?據我目前測試了(le)解,應該都(dōu)是(shì)↕≤可(kě)以的(de),至于速度上(sh•¶àng)是(shì)否有(yǒu)差異,還(hái)未深究,但(dàn)GBαδε♠2312肯定更為(wèi)通(tōng)用(y∞Ωγòng),而且據我測試已經包含了(le)相(xiàng)☆∞當部分(fēn)繁體(tǐ)。至于Unicode,應用(yòng)在網頁中↓&≠​的(de)UTF-8,中文(wén)一(yī)般需要(yà¥∏‌o)占據3個(gè)字節(前三種2個(gè)字節),所以當中文(≠₽↓∞wén)較多(duō)的(de)網頁用(yòn←δ£♣g)UTF-8文(wén)件(jiàn)将變得(de)更大(d‌αà)(我們公司大(dà)部分(fēn)網頁4%左右)。

  六、UTF-8、UTF-16、UTF-32什(shén)麽區(q∑λ≈ū)别?

  Unicode所做(zuò)的(de)是(shì)為(wèi)每個₹•α✘(gè)字符定義了(le)一(yī)個(gè)相(xiàn£•g)應的(de)數(shù)字表示。比如(rú),&ldq₽Ωuo;a“的(de)Unicod•​e值是(shì)0×0061,&ldqπ≠uo;一(yī)”的(de)Unicde值是(shì)0&tδ•imes;4E00,這(zhè)是(shì)最簡單的(de)情αΩ<≈況,每個(gè)字符用(yòng)2個(gè↓↔)字節表示。Unicode定義了(le)百萬個(g÷♥™è)以上(shàng)的(de)字符,如(rú)果将所有(ε©yǒu)的(de)字符用(yòng)統一(yī)的(de)格式表示,需要(yàφ↓←$o)的(de)是(shì)4個(gè)字節。&ldq•φ¥uo;a“的(de)Unicode表示就(jiù)會(huì)變±≤成0×00000061,而“∑≤¶♥一(yī)“的(de)Unicod ÷e值是(shì)0×00004E00。實際上(shàng),這(λ‍ €zhè)就(jiù)是(shì)UTF32,Linux操作♦λ(zuò)系統上(shàng)所使用(yòng)的>®≥α(de)Unicode方案。但(dàn)是(shì),仔細分(fēn)析可(k $β♦ě)以發現(xiàn),其實絕大(dà)部分(fēn)字符隻使用(yòng)↑¥✘≈2個(gè)字節就(jiù)可(kě)以表示了(le)。英文(wλ∞én)的(de)Unicode範圍是(shì)0×0↔≤000-0×007F,中文(wén)的(de)U♦≈nicode範圍是(shì)0×4E00-0×9F‌↓ →**,真正需要(yào)擴展到(dào)4個(gè)字節來(lái)♥×&表示的(de)字符少(shǎo)之又(yòu)少★γ(shǎo),所以有(yǒu)些(xiē)系統直接使用(yòng)2個(gèφ↓φ±)字節來(lái)表示Unicode。比如(rú)Windows系統上(shà✔♦γng),Unicode就(jiù)是(sh±<•βì)兩個(gè)字節的(de)。對(duì)于那(nà)些(xiē)需要(yà×σ↕‌o)4個(gè)字節才能(néng)表示的(de)字符,使用(yòn→±g)一(yī)種代理(lǐ)的(de)手法來(lái)擴展(®∑其實就(jiù)是(shì)在低(dī)兩個(gè)字節上×γ↓↕(shàng)做(zuò)一(yī)個(gè)标記,表示這(z"✔hè)是(shì)一(yī)個(gè)代理(lǐ),需要(↓≈≤yào)連接上(shàng)随後的(de)兩個(gè)字節,才能(néng♣‍)組成一(yī)個(gè)字符)。這(zhè)樣的€×(de)好(hǎo)處是(shì)大(dà)量的(de)節約了(le)存取空∑™(kōng)間(jiān),也(yě)提高(gāo)了(le)處&÷理(lǐ)的(de)速度。這(zhè)種Unico±​¥₩de表示方法就(jiù)是(shì)UTF16。一(yī)般在Win≈™λdows平台上(shàng),提到(dào)Unicode,那(n¥​↑à)就(jiù)是(shì)指UTF16了(leβ₹∑)。而UTF-8更有(yǒu)意思,它的(de)字節數(shù)1-4個(‌§‍∞gè)不(bù)等,如(rú)果純英文(wén)的(de)∞♥應用(yòng)環境,自(zì)然用(yòng)它更加節省。

  七、CSS、JS的(de)編碼可(k ↓ ě)以和(hé)HTML不(bù)一(yī)緻嗎≈¥(ma)?

  可(kě)以。但(dàn)最好(hǎo)在引用(yòng)時(s≠↓hí)手動設置Charset,值得(de)注意的(de)是(shì)IE、♦☆★FF默認根據當前頁面編碼,而Chrome默認↑★₹是(shì)UTF-8。

    歡迎大(dà)家(jiā)閱讀(dú)浏覽,'φ部分(fēn)內(nèi)容來(lái)源于網絡♠¶,如(rú)有(yǒu)侵權,請(qǐng)聯系我們删除!

+ 查看(kàn)更多(duō)我們的(de)客戶 / Our client

    24小(xiǎo)時(shí)技(jì)術(shù)支持>&↕α
    18931045623
    在線客服

首創簡介

    首創網絡成立于2012年(nián),是(shì)一(yī)家(ji♦↔™ ā)專業(yè)的(de)品牌網站(zhàn)設計(jì)和(hé)網絡營銷α→λ推廣公司,服務領域涵蓋網站(zhàn)設計(jì)、市( •¥shì)場(chǎng)策劃、企業(yè)畫(huà)冊及VI視(shì)¶₩覺設計(jì)、網站(zhàn)域名空(kōng)間(jiān)等領域,公司¶&<擁有(yǒu)一(yī)批高(gāo)素質人(∑↔rén)才,著(zhe)力打造品牌網站(zhàn)設計(jì)制(zhì)♣"γ作(zuò)和(hé)網上(shàng)營銷Ω♠♣&策略執行(xíng)兩大(dà)優勢。

    十年(nián)來(lái),憑借對(duì)市(shì)場(c §‌&hǎng)趨勢敏銳的(de)洞察,和(hé)對(duì)消費(fèi)者、'↔企業(yè)形态深刻的(de)理(lǐ)解,我們服務的(Ω↑ ∞de)已遍及京津冀、長(cháng)三角、珠三角等領域,行(xíng)業(yè♠¶₹)覆蓋政府機(jī)構、企事(shì)業(yè)單位、無線通(tō©φ₹Ωng)訊、環保、電(diàn)子(zǐ)、≠★醫(yī)藥、交通(tōng)、園林(lín≈€)、地(dì)産等行(xíng)業(yè),諸多(duō)知(zhΩβ  ī)名企業(yè),如(rú)廣州京信集團、廣東(dōn ®™g)聯通(tōng)廣州分(fēn)公司、搜狐家★±(jiā)居廣州站(zhàn)、搜狐家(jiā)居邯鄲站(zhàn)等,都&φ(dōu)鑒證了(le)首創設計(jì)公司的(de)品牌設♦¶$★計(jì)思想與能(néng)力,首創設計(j♥←δ‌ì)公司也(yě)與諸多(duō)企業(yè)勃的(de)市(sh‌∞↓ì)場(chǎng)經濟中互促共生(shēnδ♥♥®g)。

在線客服


  • 掃描加微(wēi)信

  • 掃描加QQ

  • 掃描浏覽手機(jī)版
首創網絡邯鄲公司
邯鄲公司
服務熱(rè)線:0310-4559740 / 18931045‌♦623  公司地(dì)址:邯鄲市(shì)叢台區(qūδ∞σ<)頤高(gāo)廣場(chǎng)B座13層1304室 ♦÷π 客戶接待:邯鄲市(shì)陵園路(lù)669号康橋國(λ£λεguó)際B06