一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

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

  • 相關(guān)推薦

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

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

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

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

  引言

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

  一、數據庫本身亂碼的解決方案

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

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

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

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

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

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

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

  三、對字符亂碼問(wèn)題定位的常用技巧

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

  四、JDBC與數據庫數據交換時(shí)的編輯問(wèn)題

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

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

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

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

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

  參考文獻:

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

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

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

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

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

【W(wǎng)EB開(kāi)發(fā)中不同情況下的亂碼處理方案】相關(guān)文章:

程序開(kāi)發(fā)中異常的理解及處理異常03-20

利用PowerBuilder開(kāi)發(fā)WEB應用03-19

不同情況下病人的心理護理03-06

論利用ebXML和SOAP開(kāi)發(fā)Web服務(wù)03-18

基于Web的多媒體CAI課件開(kāi)發(fā)過(guò)程中若干問(wèn)題的研究和實(shí)踐03-18

新準則中研究開(kāi)發(fā)費用會(huì )計處理的分析03-11

基于A(yíng)SP技術(shù)開(kāi)發(fā)Web數據庫檢索程序03-18

談不同體裁聲樂(lè )作品的藝術(shù)處理03-19

異地并行設計中WEB數據庫設計*03-18

關(guān)于研究與開(kāi)發(fā)費用處理的思考03-24

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看