• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      WEB開發(fā)中不同情況下的亂碼處理方案

      2015-06-11 16:00:48曹露
      關(guān)鍵詞:處理方案亂碼

      摘 要:隨著時代的改變,現(xiàn)在人們與計算機已經(jīng)是密不可分,信息技術(shù)的應(yīng)用顯得異常重要。而在WEB系統(tǒng)開發(fā)中經(jīng)常出現(xiàn)一些亂碼狀況,本文針對WEB開發(fā)中遇到的不同亂碼情況研究不同的處理方案。在整個B/S請求從客戶端頁面提交內(nèi)容到服務(wù)器,服務(wù)器接收響應(yīng),并從數(shù)據(jù)庫中獲取數(shù)據(jù),經(jīng)過一番處理之后再返回給客戶端的瀏覽器頁面顯示的過程中,只要一個環(huán)節(jié)在轉(zhuǎn)碼過程中有錯誤就會導(dǎo)致亂碼的現(xiàn)象發(fā)生。在計算機系統(tǒng)上突然出現(xiàn)亂碼情況,需要先判斷亂碼的現(xiàn)象,要根據(jù)現(xiàn)象,查出數(shù)據(jù)在整個數(shù)據(jù)流向的過程中,數(shù)據(jù)到底從什么時候什么地方開始由正常開始變?yōu)閬y碼,即找出數(shù)據(jù)變成亂碼的分界點。

      關(guān)鍵詞:WEB開發(fā);亂碼;處理方案

      0 引言

      亂碼是應(yīng)用系統(tǒng)運行中經(jīng)常出現(xiàn)的一個問題,也是應(yīng)用系統(tǒng)中非常突出而且必須解決的一個問題。由于引起出現(xiàn)亂碼的因素很多,例如:數(shù)據(jù)庫本身的亂碼,字符的亂碼,JDBC與數(shù)據(jù)庫數(shù)據(jù)交換時的編輯問題,所以解決亂碼問題比較復(fù)雜,本文針對這幾個亂碼問題提出了相應(yīng)的解決方案。本文從編碼原理到實際案例對亂碼原因進(jìn)行詳細(xì)的分析,并且整理和歸納了多個項目出現(xiàn)亂碼現(xiàn)象的解決經(jīng)驗,總結(jié)了解決一般性亂碼的辦法和過程。針對我們遇到亂碼問題的經(jīng)驗總結(jié),同時,列出了不同環(huán)境下經(jīng)常遇到過的亂碼問題的解決過程:

      1 數(shù)據(jù)庫本身亂碼的解決方案

      1.1 比如:Oracle數(shù)據(jù)庫在安裝的過程中就可以選擇某種字符集:ALTER DATABASE CHARACTER SET ZHS16GBK。

      查找當(dāng)前字符集:select userenv('language') from dual;DB2在創(chuàng)建數(shù)據(jù)庫的時候可以指定字符集:create database sccrm using codeset UTF-8 territory CN。

      MySQL在創(chuàng)建數(shù)據(jù)庫的時候可以指定字符集:create database testxxx default charset=UTF-8。

      1.2 操作系統(tǒng)是否安裝相應(yīng)的字符集(unix下可以用locale查看當(dāng)前字符集),將相應(yīng)的數(shù)據(jù)打印出來即可。

      1.3 Java程序是否存在轉(zhuǎn)碼錯誤,字符集經(jīng)常是在UTF-8、GBK、ISO-8859-1之間轉(zhuǎn)換。

      2 應(yīng)用服務(wù)器各個相關(guān)設(shè)置字符集的地方是否設(shè)置正確

      找到分界點之后,針對分界點之前和之后,查找在什么地方可以設(shè)置字符集,每一個分界點可以在哪些地方設(shè)置相關(guān)的字符集。如果是程序,可以查找到哪一行代碼獲取數(shù)據(jù)的時候開始亂碼,從而可以考慮修改代碼。如果不是程序,需要查看當(dāng)前應(yīng)用有哪些地方可以設(shè)置字符集,并且要了解每個設(shè)置字符集的地方,他們之間的相互關(guān)系。

      3 對字符亂碼問題定位的常用技巧

      在網(wǎng)絡(luò)系統(tǒng)中經(jīng)常會出現(xiàn)字符亂碼的情況,在這種情況下,首先要對字符亂碼問題定位:如對中文encoding問題的定位基本采用在認(rèn)為有可能的程序處理后打印字符串的內(nèi)碼,這是最簡單的也是最直接的辦法。

      4 JDBC與數(shù)據(jù)庫數(shù)據(jù)交換時的編輯問題

      在JAVA運行期時,內(nèi)容交換的編碼為unicode編碼,JDBC接收到的字符流必須是合法的編碼格式,然后由JDBC向數(shù)據(jù)庫提交數(shù)據(jù)請求。

      JSP/Servlet 編程中經(jīng)常出現(xiàn)編碼問題,除了上述討論的方面,另一方面是讀寫數(shù)據(jù)庫中的數(shù)據(jù)。

      在目前的行業(yè)里經(jīng)常使用的關(guān)系數(shù)據(jù)庫的系統(tǒng)大多都支持?jǐn)?shù)據(jù)庫多語言編碼,在創(chuàng)建數(shù)據(jù)庫時基本上都可以制定它自己的字符集設(shè)置,數(shù)據(jù)庫的數(shù)據(jù)就將以指定的編碼形式存儲。當(dāng)應(yīng)用程序訪問數(shù)據(jù)時,在入口和出口處都會有encoding 轉(zhuǎn)換。對于中文數(shù)據(jù),數(shù)據(jù)庫字符編碼的設(shè)置應(yīng)當(dāng)保證數(shù)據(jù)的完整性。GB2312、GBK、UTF-8、ISO-8859-1等都是可選的數(shù)據(jù)庫編碼。但是如果編碼設(shè)置成了ISO-8859-1,則應(yīng)用程序在寫數(shù)據(jù)之前須將16Bit的一個漢字或 Unicode 拆分成兩個8-bit的字符,讀數(shù)據(jù)之后則需將兩個字節(jié)合并起來,同時還要判別其中的SBCS字符。這種情況沒有充分利用數(shù)據(jù)庫編碼的作用,反而增加了編程的復(fù)雜度。因此ISO-8859-1不是推薦的數(shù)據(jù)庫編碼。針對上述狀況,下列代碼示例了如果Java應(yīng)用是基于GB18030編碼,而數(shù)據(jù)庫編碼是ISO-8859-1的情況,如何通過Java代碼轉(zhuǎn)換字符而不會產(chǎn)生亂碼。

      5 客戶端與服務(wù)器之間的數(shù)據(jù)交換編碼問題

      從browser到web server,我們可以在表單中指定出提交內(nèi)容的時候所用到的這些字符集,否則我們就會使用頁面指定的這些編碼。但是如果在url中直接用?的方式輸入?yún)?shù)的話,那么編碼往往會是操作系統(tǒng)本身的這些編碼,因為此時是和頁面無關(guān)緊要的。Web server它所接收到的是字節(jié)流的,默認(rèn)是(getParameter)會以iso8859-1編碼處理,結(jié)果肯定是不對的,所以就需要進(jìn)行處理解決。我們?nèi)绻崆霸O(shè)置了編碼(通過request. setCharacterEncoding ),那么就可以直接獲取到正確的結(jié)果。

      參考文獻(xiàn):

      [1]周兵.Java Web開發(fā)中的中文亂碼問題分析及解決方[J].電腦知識與技術(shù),2014-10-15.

      [2]楊金花.JSP技術(shù)中文亂碼的原因及解決方法[J].電子設(shè)計工程,2011-01-05.

      [3]張瑋,文福安,李江濤.J2EE Web應(yīng)用中URL中文亂碼問題的研究[J].計算機時代,2008-10-02.

      [4]朱明倫.管理技術(shù)在Web2.0應(yīng)用中的研究[J].上海師范大學(xué),2006-

      04-01.

      [5]鄒俊.基于Oracle數(shù)據(jù)庫系統(tǒng)性能調(diào)整與優(yōu)化研究[J].江西財經(jīng)大學(xué),2006-10-01.

      作者簡介:

      曹露,女,1982年11月,河南洛陽人,漢,就職于河南省農(nóng)業(yè)經(jīng)濟學(xué)校,研究方向:信息技術(shù)方面。

      猜你喜歡
      處理方案亂碼
      對癥下藥解決多種亂碼難題
      這些真的不是亂碼,是漢字
      戶外干式空心電抗器全絕緣問題探討
      云南省昆安高速公路滑坡處理方案
      價值工程(2017年4期)2017-02-16 11:34:52
      注射用頭孢哌酮鈉及其復(fù)方制劑所致皮膚不良反應(yīng)的臨床分析
      電力機車制動系統(tǒng)故障類型及處理方案探究
      南水北調(diào)防洪影響處理工程穿越鄭州城區(qū)存在問題及處理方案
      科技視界(2016年21期)2016-10-17 20:45:03
      隧道襯砌拱頂脫空原因分析和處理及防治
      炫邁:用神奇亂碼勾引你視線
      如何解決Tomcat的亂碼
      曲阳县| 柯坪县| 蕉岭县| 苗栗市| 大埔区| 鹤峰县| 寿光市| 尚义县| 兴海县| 公安县| 岱山县| 泾川县| 丰镇市| 淄博市| 呈贡县| 绵竹市| 中卫市| 子长县| 织金县| 江源县| 青浦区| 湘潭市| 福建省| 喀喇沁旗| 洛川县| 信丰县| 广元市| 讷河市| 宁化县| 文山县| 昆山市| 井研县| 潢川县| 阿荣旗| 诸暨市| 乌兰县| 普定县| 浏阳市| 鱼台县| 中宁县| 新泰市|