999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Java編程中的中文亂碼問(wèn)題的研究

2013-12-31 00:00:00陳璐強(qiáng)
消費(fèi)電子·下半月 2013年7期

摘要:中文亂碼是Java編程中的一類常見(jiàn)問(wèn)題,其主要是由于數(shù)據(jù)輸入輸出時(shí)的編解碼字符集不統(tǒng)一造成的。本文首先對(duì)該問(wèn)題出現(xiàn)的原因進(jìn)行了分析,然后分別就幾處最為常見(jiàn)的亂碼位置及其處理方式進(jìn)行了詳細(xì)分析。

關(guān)鍵詞:中文亂碼;Java編程;字符集

中圖分類號(hào):TP31 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-7712 (2013) 14-0000-01

Java語(yǔ)言具有靈活性高、可跨平臺(tái)等特點(diǎn),是當(dāng)前所使用的一種主流的編程語(yǔ)言。但是在使用Java編程過(guò)程中程序員經(jīng)常面臨的一個(gè)問(wèn)題就是中文漢字的顯示問(wèn)題,如何對(duì)帶有中文字符的JSP文件、使用JSP技術(shù)開(kāi)發(fā)的web網(wǎng)頁(yè)以及與java程序通信的數(shù)據(jù)庫(kù)進(jìn)行編程處理,以避免其中出現(xiàn)中文亂碼是java編程中需要重點(diǎn)注意的一類問(wèn)題。

一、中文亂碼在Java程序中出現(xiàn)的原因

Java程序規(guī)定的編碼字符集為Unicode字符集,但是我國(guó)很多本地系統(tǒng)或應(yīng)用所使用的編碼字符集則為GBK字符集,這就使得使用兩種不同字符集的應(yīng)用在進(jìn)行數(shù)據(jù)傳輸或交換時(shí)首先需要將傳輸或交換的信息轉(zhuǎn)換為本地可識(shí)別的字符集才可以進(jìn)入下一步處理。而由Java編程實(shí)現(xiàn)的應(yīng)用涉及多個(gè)領(lǐng)域,如瀏覽器、應(yīng)用、服務(wù)器、數(shù)據(jù)庫(kù)等,一旦其中某一部分所使用的字符集與其他部門出現(xiàn)不兼容或轉(zhuǎn)換錯(cuò)誤,就容易因輸入輸出編碼格式的不一致而出現(xiàn)亂碼問(wèn)題。

二、常見(jiàn)的Java中文亂碼位置及其解決方案

綜合來(lái)看,Java中文亂碼出現(xiàn)主要集中在以下幾個(gè)位置:(1)基于JSP的中文web頁(yè)面;(2)包含中文字符的提交數(shù)據(jù);(3)Java程序與數(shù)據(jù)庫(kù)之間的通信數(shù)據(jù)。

(一)基于JSP的中文web頁(yè)面亂碼分析

用戶在訪問(wèn)由JSP所生成的頁(yè)面時(shí)有可能出現(xiàn)中文亂碼,導(dǎo)致該亂碼出現(xiàn)的原因主要有兩種,一種原因是由JSP在后臺(tái)生成動(dòng)態(tài)頁(yè)面時(shí),其所生成的信息本身就是亂碼,另一種原因則是瀏覽器對(duì)編譯JSP文件時(shí)顯示不正確所導(dǎo)致的亂碼。

為提高解決效率,解決該問(wèn)題時(shí)可以先使用代碼查看工具對(duì)網(wǎng)頁(yè)的源文件進(jìn)行查看,確認(rèn)源文件中的中文信息是否能夠正確顯示,若源文件中的中文顯示正常則說(shuō)明該問(wèn)題是由瀏覽器解碼網(wǎng)頁(yè)錯(cuò)誤所導(dǎo)致的,若源文件中中文顯示不正常則說(shuō)明該問(wèn)題是由JSP后臺(tái)生成網(wǎng)頁(yè)時(shí)處理錯(cuò)誤所導(dǎo)致的。

對(duì)于解碼錯(cuò)誤導(dǎo)致的中文亂碼可以通過(guò)設(shè)置JSP中的contentType屬性為可支持中文的國(guó)標(biāo)字符集即可,即

<%@ page contentType=”text/html;charset=GB2312”>

對(duì)于后臺(tái)網(wǎng)頁(yè)處理錯(cuò)誤所導(dǎo)致的中文亂碼可以在輸出頁(yè)面前向其中添加支持中文顯示的字符集,即

;

response.setContentType(“text/html;charset=GB2312”)

(二)包含中文字符的提交數(shù)據(jù)亂碼分析

中文字符填寫和提交是web網(wǎng)頁(yè)表單填寫的基本功能之一。但是在提交過(guò)程中有可能出現(xiàn)用戶輸入和顯示的中文文本正確,而后臺(tái)傳輸錯(cuò)誤的現(xiàn)象發(fā)生。解決該問(wèn)題可以從以下三方面著手。

首先,使用Post的方式進(jìn)行數(shù)據(jù)提交時(shí)要注意對(duì)tpye參數(shù)的值進(jìn)行確認(rèn)或修正。該提交方式會(huì)在提交前對(duì)JSP中的contentType屬性進(jìn)行查詢,然后根據(jù)該屬性中定義的編解碼方式對(duì)提交數(shù)據(jù)進(jìn)行編碼,經(jīng)由HTTP轉(zhuǎn)發(fā)和傳輸后提交給后臺(tái)的服務(wù)器端,服務(wù)器端在存儲(chǔ)前同樣會(huì)對(duì)contentType屬性中的字符集關(guān)鍵字查詢后再進(jìn)行解碼。

其次,使用Get的方式進(jìn)行數(shù)據(jù)提交時(shí)要注意對(duì)服務(wù)器相關(guān)屬性進(jìn)行確認(rèn)或修正。目前是使用的Tomcat配置文件默認(rèn)的字符集為ISO-8859-1,該字符集是無(wú)法處理中文字符的,為保證Get方式下的表單提交正確,需要手動(dòng)修改Tomcat中的server.xml文件,使服務(wù)器能夠支持中文編解碼。需要注意的是,該修改需要重啟服務(wù)器后才能生效。

再次,由request中相關(guān)數(shù)據(jù)的解碼方式不當(dāng)所引起的亂碼需要對(duì)request中的濾波器相關(guān)函數(shù)進(jìn)行重新設(shè)置,以便于發(fā)現(xiàn)問(wèn)題時(shí)能夠根據(jù)過(guò)濾規(guī)則對(duì)相關(guān)的數(shù)據(jù)信息進(jìn)行檢查或修改。具體的,濾波器的過(guò)濾規(guī)則設(shè)置代碼如下:

Public void doFilter(ServletRequest request, ServletResponse respone, FilterChain chain)

Throws IOException, ServletException

{

If(!ignore||(request.getCharacterEncoding()==1)) //該語(yǔ)句用于查看濾波器中的編碼是否能夠編譯中文字符,若不能夠編譯,需要對(duì)其進(jìn)行設(shè)置

{ String encoding=selectEncoding(request);

If (encoding!=1)

request.setCharcterEncoding(encoding);}//查詢字符集關(guān)鍵字類型,并根據(jù)查詢結(jié)果進(jìn)行配置

chain.doFilter(request,response); }

(三) Java程序與數(shù)據(jù)庫(kù)之間的通信數(shù)據(jù)亂碼分析

該亂碼問(wèn)題主要集中在使用JDBC驅(qū)動(dòng)的數(shù)據(jù)庫(kù)與Java程序之間。JDBC默認(rèn)的編碼格式同樣為ISO標(biāo)準(zhǔn),該標(biāo)準(zhǔn)是無(wú)法識(shí)別中文字符的。在數(shù)據(jù)輸入輸出之前沒(méi)有進(jìn)行編碼轉(zhuǎn)換,就會(huì)導(dǎo)致亂碼現(xiàn)象發(fā)生。其解決方式同上述亂碼問(wèn)題解決方式,需要對(duì)數(shù)據(jù)庫(kù)中與編碼格式有關(guān)的.ini文件進(jìn)行編碼修改。

三、總結(jié)

Java是當(dāng)前跨平臺(tái)應(yīng)用所使用的主要編程語(yǔ)言之一,其應(yīng)用過(guò)程中出現(xiàn)中文亂碼的根本原因在于字符編碼格式不匹配。為避免該情況的出現(xiàn),一方面要盡快制定和使用統(tǒng)一、規(guī)范的Java開(kāi)發(fā)標(biāo)準(zhǔn),另一方面要在Java編程時(shí)在出現(xiàn)數(shù)據(jù)傳輸?shù)牡胤阶龊米址幋a轉(zhuǎn)換相關(guān)工作。

參考文獻(xiàn):

[1]任平紅,陳矗,鄭秋梅.Java中文亂碼問(wèn)題研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013,23(3).

[2]王子君,范學(xué)峰,張志浩.Java 編碼問(wèn)題研究與應(yīng)用[J].計(jì)算機(jī)工程,2002,28(3).

[3]曹莉,趙文靜.Java中文處理研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2006,16(5)

[4]彭利民,孫素云.JSP和Servlet網(wǎng)絡(luò)編程設(shè)計(jì)中漢字編碼的研究[J].計(jì)算機(jī)與現(xiàn)代化,2006(3).

主站蜘蛛池模板: 日本www在线视频| 国产成人综合在线观看| 欧美精品H在线播放| 亚洲第一区在线| 国产色婷婷| 看国产毛片| 色综合天天综合中文网| 亚洲综合日韩精品| 免费观看亚洲人成网站| 国产精品污视频| 1769国产精品免费视频| 在线免费无码视频| 日本成人不卡视频| 一区二区三区国产| 久久精品视频一| 色噜噜狠狠色综合网图区| 日本人真淫视频一区二区三区| 欧美中日韩在线| 国产激情无码一区二区APP | 亚洲第一成网站| 波多野结衣的av一区二区三区| 午夜免费视频网站| 片在线无码观看| 日韩中文精品亚洲第三区| 国产最爽的乱婬视频国语对白| 亚洲国产天堂久久综合| 国产精品99r8在线观看| 国产欧美专区在线观看| 国产成人a毛片在线| 青青草国产在线视频| 欧美一级色视频| 国产精品成| 日韩AV无码一区| 欧美一级一级做性视频| 在线观看亚洲人成网站| 欧美日韩综合网| 91啦中文字幕| 麻豆精品国产自产在线| 亚洲人精品亚洲人成在线| 伊人色天堂| 亚洲欧洲日韩久久狠狠爱 | jizz亚洲高清在线观看| 婷婷六月激情综合一区| 国产精品区网红主播在线观看| 青青热久免费精品视频6| 人妻少妇久久久久久97人妻| 2021亚洲精品不卡a| 国产在线自乱拍播放| 99re热精品视频国产免费| 国产美女主播一级成人毛片| 亚洲成AV人手机在线观看网站| 欧美福利在线观看| 欧美激情福利| 国产亚洲精品自在线| 国内毛片视频| 免费又爽又刺激高潮网址 | 国产在线一区视频| 好久久免费视频高清| 久久精品亚洲热综合一区二区| 欧美一区二区自偷自拍视频| 国产免费人成视频网| 久草视频一区| 青青草国产精品久久久久| 青青青草国产| 国产亚洲欧美日韩在线一区| 久久青草免费91观看| 成人福利在线视频| 波多野结衣一区二区三区88| 婷婷在线网站| 一级黄色欧美| 亚洲国产成人精品青青草原| 国产尹人香蕉综合在线电影| 999精品视频在线| 视频二区亚洲精品| 日韩欧美91| 99久久精品免费看国产电影| 日韩小视频在线观看| 日韩欧美视频第一区在线观看| 一区二区影院| 国产又粗又猛又爽| 国产精品网曝门免费视频| 一级毛片网|