国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

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

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

0 引言

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

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

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

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

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

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

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

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

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

3 對(duì)字符亂碼問(wèn)題定位的常用技巧

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

4 JDBC與數(shù)據(jù)庫(kù)數(shù)據(jù)交換時(shí)的編輯問(wèn)題

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

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

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

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

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

參考文獻(xiàn):

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

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

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

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

04-01.

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

作者簡(jiǎn)介:

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

猜你喜歡
處理方案亂碼
對(duì)癥下藥解決多種亂碼難題
這些真的不是亂碼,是漢字
戶(hù)外干式空心電抗器全絕緣問(wèn)題探討
云南省昆安高速公路滑坡處理方案
注射用頭孢哌酮鈉及其復(fù)方制劑所致皮膚不良反應(yīng)的臨床分析
電力機(jī)車(chē)制動(dòng)系統(tǒng)故障類(lèi)型及處理方案探究
南水北調(diào)防洪影響處理工程穿越鄭州城區(qū)存在問(wèn)題及處理方案
科技視界(2016年21期)2016-10-17 20:45:03
隧道襯砌拱頂脫空原因分析和處理及防治
炫邁:用神奇亂碼勾引你視線
如何解決Tomcat的亂碼
雷山县| 滦平县| 庆云县| 武安市| 普兰店市| 特克斯县| 寻甸| 资中县| 宁化县| 新巴尔虎左旗| 安平县| 乐山市| 涞源县| 丹江口市| 南宫市| 安泽县| 余干县| 凤冈县| 阿克苏市| 常熟市| 周口市| 商丘市| 密山市| 古交市| 永德县| 陆良县| 喜德县| 临桂县| 南安市| 台中市| 安阳市| 绥阳县| 和田市| 五原县| 龙南县| 马公市| 昌邑市| 钦州市| 双桥区| 永吉县| 凤翔县|