亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Web開發(fā)中的常見錯(cuò)誤及處理研究

        2020-03-16 02:31:30張仁美
        電子技術(shù)與軟件工程 2020年24期
        關(guān)鍵詞:編碼方式亂碼字符

        張仁美

        (貴州輕工職業(yè)技術(shù)學(xué)院 貴州省貴陽(yáng)市 550025)

        隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,為人類文明創(chuàng)新發(fā)展提供了推動(dòng)力,人們之間的距離也明顯縮小,借助微信或MSN 等手機(jī)APP 社交軟件人們就可隨時(shí)隨地進(jìn)行交流。當(dāng)前,互聯(lián)網(wǎng)技術(shù)發(fā)展水平不斷提高并廣泛應(yīng)用于日常生活與工作中,確保人們足不出戶就可知曉天下事。與此同時(shí)移動(dòng)支付、網(wǎng)購(gòu)等逐漸發(fā)展成為我國(guó)新四大發(fā)明,日常生活與工作更加便利。互聯(lián)網(wǎng)行業(yè)快速發(fā)展的同時(shí),各行業(yè)應(yīng)用網(wǎng)絡(luò)信息資源構(gòu)建信息安全機(jī)制保障網(wǎng)絡(luò)環(huán)境的安全與綠色性是十分必要的。在Web 開發(fā)中加強(qiáng)各類技術(shù)優(yōu)化,以此推動(dòng)網(wǎng)絡(luò)信息可持續(xù)發(fā)展。

        1 Web開發(fā)編碼機(jī)制、規(guī)則等相關(guān)知識(shí)概述

        1.1 編碼機(jī)制

        不同語(yǔ)言平臺(tái)中,為了確保Java Web 程序運(yùn)行更加穩(wěn)定,統(tǒng)一采用Unicode 字符集表示其內(nèi)部語(yǔ)言。Web 開發(fā)中,其源程序要求先應(yīng)用默認(rèn)操作系統(tǒng)編碼方法轉(zhuǎn)碼操作,借助I/O 操作取得對(duì)應(yīng)編碼字節(jié)流,最后在Class 文件中輸入轉(zhuǎn)換后的UTF-8 字符編碼。

        文件操作如果屬于簡(jiǎn)體中文格式,GBK 就成為默認(rèn)編碼格式,開發(fā)工作中GBK 轉(zhuǎn)換成Unicode 的方法,最后在Class 文件中輸入最終UTF-8 字符編碼。要注意此過(guò)程中原系統(tǒng)不會(huì)發(fā)生亂碼問(wèn)題,假若在英文系統(tǒng)中移入該編碼,就會(huì)加大中文亂碼問(wèn)題的發(fā)生幾率,這主要是因Java 借助UTF-8 字符集讀取Class 文件內(nèi)容,并最終轉(zhuǎn)換為Unicode 編碼方式。實(shí)際轉(zhuǎn)換過(guò)程中,以Unicode 編碼為中介完成操作,此種情況下出現(xiàn)亂碼主要是因字符解碼字節(jié)流不正確或給出的字節(jié)流用所選字符集解碼存在偏差。

        1.2 Web編碼規(guī)則

        (1)ISO8859-1 編碼方式。通常也被看作是Latin-1 亦或是西歐語(yǔ)言,屬于單字節(jié)編碼方式的一種,其可表示的所有字符在0-255個(gè),因而英文狀態(tài)編程下有很強(qiáng)的適用性。Java 網(wǎng)絡(luò)傳輸為標(biāo)準(zhǔn)字符集的形成創(chuàng)造了條件。其能夠兼容ASCII 編碼,表示256 個(gè)字符但對(duì)中文編碼卻是不支持的。

        (2)GB2312/GBK 編碼。國(guó)家標(biāo)準(zhǔn)編碼內(nèi)容中,漢字信息交換法編碼是重要構(gòu)成,只可用于表示漢字。該編碼流程中,GBK編碼有效擴(kuò)充了雙字節(jié)形式的編碼內(nèi)涵,對(duì)簡(jiǎn)體與繁體字有明顯的兼容性,而GB2312 只能對(duì)簡(jiǎn)體字進(jìn)行表示,但GBK 卻對(duì)此種編碼形式有一定的兼容性。作為一種中文字符簡(jiǎn)體中文雙字節(jié)編碼方式,涵蓋的漢字總量達(dá)到了6763 個(gè)。對(duì)于GB2312 編碼方式而言,GBK 屬于一種擴(kuò)展模式,兼容性比較強(qiáng)。

        (3)Unicode 編碼方式,其代表著全部語(yǔ)言字符,對(duì)編碼操作有明顯統(tǒng)一性。通過(guò)定長(zhǎng)雙或者四字節(jié)方式進(jìn)行編碼流程開發(fā),還要為每一字符設(shè)置唯一相對(duì)應(yīng)的二進(jìn)制編碼。對(duì)于ISO8859-1 編碼方法,該編碼形式是不兼容的,其它任何編碼也不能兼容。該編碼能夠?qū)崿F(xiàn)跨語(yǔ)言與平臺(tái)的文本轉(zhuǎn)換與處理要求,因而也稱為萬(wàn)國(guó)碼。Unicode 編碼是在ASCII 字元集擴(kuò)展基礎(chǔ)上產(chǎn)生中,其應(yīng)用全16 位元字元集,可用于表示所有語(yǔ)言字符,利于統(tǒng)一進(jìn)行編碼。

        (4)UTF-8 編碼。該方式對(duì) ISO8859-1 與Unicode 形式的編碼有一定的兼容性,還能對(duì)全部語(yǔ)言字符進(jìn)行表示。定長(zhǎng)編碼方法中該編碼不包含在內(nèi),每一字符為1-6 個(gè)長(zhǎng)度不同的字符。另外,該編碼方法自身還能夠發(fā)揮校驗(yàn)作用,一個(gè)字節(jié)就可表示一個(gè)英文字符,而漢字則至少需要3 個(gè)字節(jié)才能完全表示出來(lái)。

        1.3 Web開發(fā)常用編碼

        Java Web 開發(fā)中,字符編碼轉(zhuǎn)換是十分必要的。計(jì)算機(jī)設(shè)備只能對(duì)二進(jìn)制數(shù)做出識(shí)別,日常程序開發(fā)中,會(huì)用到很多的字母、阿拉伯?dāng)?shù)字及漢字等,要注意通過(guò)二進(jìn)制方法在電腦上存儲(chǔ)字符編碼。Web 開發(fā)中,計(jì)算機(jī)設(shè)備處理字符分為編碼與解碼,字符儲(chǔ)存到電腦上后轉(zhuǎn)換成二進(jìn)制數(shù)位,此過(guò)程即為編碼;反之,如果電腦上二進(jìn)制編碼是用字符形式顯現(xiàn)出來(lái),這一過(guò)程即為解碼。實(shí)際開發(fā)過(guò)程中,ISO8859- 1,UTF-8,Unicode,GB2312 及GBK 等是常用編碼方式,要注意編碼方式的不同,其要合理選擇相應(yīng)的編碼規(guī)則。

        2 Web開發(fā)過(guò)程中常見亂碼問(wèn)題及其解決途徑

        2.1 Eclipse環(huán)境編碼問(wèn)題與相應(yīng)的解決方法

        Eclipse 為核心的Web 開發(fā)設(shè)計(jì)過(guò)程中,為了盡可能預(yù)防中文亂碼問(wèn)題的出現(xiàn),在jsp 頁(yè)面中做好默認(rèn)編碼的設(shè)置。此時(shí),為了保障中文顯示效果,大多數(shù)情況下會(huì)以UTF-8 設(shè)置Eclipse 編碼方式。實(shí)際工作中,可從以下幾方面入手進(jìn)行。首先,在jsp 頁(yè)面中做好編碼設(shè)置,程序語(yǔ)言為window-preferences-General Content Type -Text -Jsp,利用UTF-8 編碼有效設(shè)置Default En Coding。其次,基于Eclipse 設(shè)置環(huán)境工作編碼。Window-preferences General -workspace面板中基于UTF-8編碼加強(qiáng)Text file encoding設(shè)置。最后,jsp 文件編碼的設(shè)置,電腦程序面板中以UTF-8 加強(qiáng)Encoding 編碼設(shè)置。

        2.2 jsp頁(yè)面中文顯示方面

        Jsp 頁(yè)面訪問(wèn)時(shí),網(wǎng)頁(yè)開發(fā)過(guò)程中中文亂碼是普遍存在的一種較為復(fù)雜的亂碼問(wèn)題。編碼設(shè)置過(guò)程中,為了減小這一問(wèn)題發(fā)生幾率,一般將字符集添加到j(luò)sp 文件頂部,再借助UTF-8 形式為頁(yè)面設(shè)置相應(yīng)的編碼格式,其設(shè)置的具體代碼主要為:

        另外,在服務(wù)器tomcat Web 文件配置Server.xml 中Connect 項(xiàng)中加入“URI Encoding=UTF-8”,再對(duì)tomcat 進(jìn)行重新啟動(dòng)服務(wù)。

        2.3 信息提交方面的問(wèn)題

        瀏覽器會(huì)以get 與post 方式將信息傳遞給服務(wù)器,實(shí)際工作中要根據(jù)實(shí)際情況選用相應(yīng)的方式解決亂碼問(wèn)題。以get 方式提交信息時(shí),基于“?參數(shù)名1=值1&參數(shù)名2=值2…”的方式將URL 及相關(guān)參數(shù)連接起來(lái),選用ASCII 字符提交相關(guān)數(shù)據(jù)。提交表單時(shí),瀏覽器選用ISO8859-1 編碼方式向URL 中非ASCII 設(shè)計(jì)URL 編碼傳遞相關(guān)的數(shù)據(jù),服務(wù)器接收到此類數(shù)據(jù)后實(shí)施編碼。因而,get 方式提交數(shù)據(jù)過(guò)程中出現(xiàn)亂碼問(wèn)題后,業(yè)務(wù)層利用String類get Bytes 解碼手段接收信息參數(shù),而New String(request.get Parameter("name").get Bytes("ISO-8859-1"),"客戶編碼方法")是其編碼的具體語(yǔ)言形式。

        2.4 頁(yè)面鏈接方面的問(wèn)題

        在頁(yè)面查詢或者提交信息過(guò)程中,一旦URL 鏈接中有中文字符出現(xiàn),閱讀中文目錄與文件名時(shí)出現(xiàn)亂碼。這主要是因?yàn)閼?yīng)用URL 進(jìn)行參數(shù)傳遞時(shí),瀏覽器編碼環(huán)境直接決定著程序編碼,換言之UEL 中如果目錄或文件名是中文情況下,通過(guò)瀏覽器進(jìn)行參數(shù)等編碼的設(shè)置,進(jìn)而將這些編碼有效的傳遞到后臺(tái)之中。如果沒有經(jīng)過(guò)處理,就請(qǐng)求URL,如果URL 存在中文,就會(huì)引起中文亂碼問(wèn)題。研究測(cè)試發(fā)現(xiàn),鏈接編碼與解碼是有效解決這一問(wèn)題的辦法。其中編碼主要關(guān)鍵代碼是:

        鏈接地址進(jìn)行解碼是,主要代碼為:

        java.net.URL Decoder.decode(request.get Request URI(),"UTF-8"

        2.5 My AQL 數(shù)據(jù)庫(kù)設(shè)置方面的問(wèn)題

        對(duì)于My SQL 數(shù)據(jù)庫(kù)而言,ISO8859-1 是編碼的默認(rèn)格式,數(shù)據(jù)存取過(guò)程中為了預(yù)防中文亂碼問(wèn)題,可利用UTF-8 修改MUSQL默認(rèn)編碼格式并解決亂碼問(wèn)題。日常工作中,主要通過(guò)安裝目錄中找到my.ini 文件方式進(jìn)行。

        將default-character-set=utf8引入到client、my sqld、my sql、my sql.server 及my sqld_safe 等項(xiàng)目下。此外,數(shù)據(jù)庫(kù)連接URL 中將“jdbc:my sql://local host:3306/db1?use Encode=true&character Encoding=UTF8”視為URL 連接字符串,關(guān)鍵代碼為character Encoding=utf8,表示以UTF-8 編碼字符集進(jìn)行對(duì)象連接。

        2.6 中文亂碼問(wèn)題及解決方法

        中文字符輸入Servlet 中時(shí),假若瀏覽器頁(yè)面看到的內(nèi)容為很多個(gè)“?”,那么表明出現(xiàn)中文亂碼問(wèn)題。實(shí)際工作中,此類亂碼問(wèn)題是如何形成的。當(dāng)我們采用response 對(duì)象輸出流編碼過(guò)程中,選用ISO-8859-1 字符編碼表,該字符表對(duì)中文不能支持,此時(shí)ISO-8859-1 字符編碼表中就無(wú)法查詢到與中文字符相對(duì)應(yīng)的編碼。如果查不到就要這些中文字符統(tǒng)一編碼對(duì)應(yīng)個(gè)數(shù)“63”。瀏覽器接收到該數(shù)據(jù)后實(shí)施解碼,解碼過(guò)程中選用默認(rèn)支持中文字符編碼表GB2312。而在GB2312 字符編碼表中,“63”對(duì)應(yīng)字符為“?”,實(shí)際操作中將“63”解碼成“?”,就會(huì)形成亂碼1。

        Web日常開發(fā)工作中,對(duì)于中文輸出亂碼問(wèn)題,可采取以下方法解決這一亂碼問(wèn)題。一方面,采用HTTP Servlet Response 接口提供的 set Character Encoding()的方法合理設(shè)置字符編碼方法。眾所周知,UTF-8 字符集只支持中文,可利用代碼設(shè)置字符編碼方式形成UTF-8 字符編碼表。瀏覽器中,以UTF-8 設(shè)置其編碼形式,為中文輸出亂碼問(wèn)題的解決創(chuàng)造條件。另一方面,編碼或解碼方式都借助HTTP Servlet Response 對(duì)象提供的方式設(shè)計(jì)。利用response.set Character Encoding(“UTF-8”)通過(guò)UTF-8 編碼字符表設(shè)置編碼方式;還要借助UTF-8 字符表設(shè)置瀏覽器解碼表,選用相同的編碼與解碼表?xiàng)l件下,就不會(huì)發(fā)生中文亂碼問(wèn)題。這兩條語(yǔ)句功能還可利用 response.set Content Type(“text/HTML;char set=utf-8”)語(yǔ)言代碼實(shí)現(xiàn)。

        3 結(jié)束語(yǔ)

        綜上所述,軟件對(duì)計(jì)算機(jī)系統(tǒng)而言是非常重要的,要加強(qiáng)軟件系統(tǒng)測(cè)試、設(shè)計(jì)與后期維護(hù)等方面的設(shè)計(jì),結(jié)合軟件系統(tǒng)要求構(gòu)建層次相同的模塊。隨著時(shí)代的進(jìn)步,國(guó)家科學(xué)技術(shù)水平不斷提高,所以軟件開發(fā)過(guò)程也不斷優(yōu)化與完善。研究分析相關(guān)問(wèn)題,以此深入解決軟件開發(fā)設(shè)計(jì)中出現(xiàn)的問(wèn)題,為順利進(jìn)行Web 開發(fā)奠定良好的基礎(chǔ)。

        猜你喜歡
        編碼方式亂碼字符
        尋找更強(qiáng)的字符映射管理器
        這些真的不是亂碼,是漢字
        字符代表幾
        一種USB接口字符液晶控制器設(shè)計(jì)
        電子制作(2019年19期)2019-11-23 08:41:50
        消失的殖民村莊和神秘字符
        GCOA算法
        可穿戴式多通道傳感系統(tǒng)功能需求分析及設(shè)計(jì)
        混合編碼方式自適應(yīng)差分進(jìn)化算法優(yōu)化設(shè)計(jì)寬帶天線
        炫邁:用神奇亂碼勾引你視線
        淺談?dòng)?jì)算機(jī)網(wǎng)絡(luò)通信中實(shí)時(shí)差錯(cuò)控制技術(shù)
        精品久久人妻av中文字幕| 精品国内自产拍在线视频| 亚洲av无码国产精品色软件下戴| 人妻av乱片av出轨| 久热在线播放中文字幕| av狼人婷婷久久亚洲综合| 亚洲av综合色区久久精品| 日本一区二区三区四区在线视频| 精品露脸国产偷人在视频| 专干老肥熟女视频网站300部| 国产成人综合亚洲精品| 日韩AVAV天堂AV在线| a午夜国产一级黄片| 成人精品国产亚洲av久久| 久久精品不卡一区二区三区| 亚洲av无码无线在线观看| 四川少妇大战4黑人| 欧美日韩国产免费一区二区三区欧美日韩| 男女视频在线一区二区| 口爆吞精美臀国产在线| 夜夜夜夜曰天天天天拍国产| 天天色影网| 久久av无码精品人妻糸列| 中文字幕一区二区三区四区久久| 午夜亚洲精品视频在线| 欧美老妇多毛xxxxx极瑞视频| 国产mv在线天堂mv免费观看| 视频在线观看一区二区三区| 青青草视频在线观看视频免费 | 日韩精品免费av一区二区三区| 少妇被又大又粗又爽毛片| 欧洲freexxxx性少妇播放| 暖暖免费 高清 日本社区在线观看| 久久久久国产精品四虎| 亚洲精品综合久久国产二区| 后入内射国产一区二区| 国产女女做受ⅹxx高潮| 精品不卡久久久久久无码人妻 | 亚洲午夜福利在线视频| 国产xxxxx在线观看免费| 国产精品农村妇女一区二区三区|