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).

主站蜘蛛池模板: 国产福利大秀91| 色天天综合| 午夜一区二区三区| 亚洲av中文无码乱人伦在线r| 五月六月伊人狠狠丁香网| 人妻无码一区二区视频| 国产成人8x视频一区二区| 999国产精品| 国产精品自在拍首页视频8| 亚洲视频在线网| 国产精品30p| 18禁黄无遮挡网站| 欧美中文字幕在线视频| 好吊色妇女免费视频免费| 日韩欧美国产成人| 精品视频第一页| 国产成人精品综合| 亚洲天堂视频网| 热99精品视频| 亚洲婷婷在线视频| 日韩一二三区视频精品| 91精品最新国内在线播放| 免费A∨中文乱码专区| 国产视频入口| 国产情精品嫩草影院88av| 一级福利视频| 91无码视频在线观看| 精品91在线| 亚洲成人网在线播放| 无码高潮喷水在线观看| 风韵丰满熟妇啪啪区老熟熟女| 欧美中文字幕无线码视频| 视频二区欧美| 九九九精品视频| 国产午夜福利亚洲第一| 国产福利拍拍拍| 毛片免费试看| 免费毛片视频| 精品日韩亚洲欧美高清a| 91尤物国产尤物福利在线| 欧美一区二区自偷自拍视频| 九月婷婷亚洲综合在线| 思思99热精品在线| 国产三级毛片| 日韩久草视频| 99人体免费视频| 久久精品国产精品国产一区| 免费无码网站| 91久久夜色精品国产网站| 人妻一本久道久久综合久久鬼色 | 黄片一区二区三区| 国产欧美日本在线观看| 中文字幕在线看视频一区二区三区| 亚洲av无码人妻| 亚洲精品国产自在现线最新| 亚洲一区毛片| 亚洲动漫h| 成人一区专区在线观看| 91精品国产91久久久久久三级| 国产91视频免费观看| 又爽又大又光又色的午夜视频| 中美日韩在线网免费毛片视频 | 一级做a爰片久久毛片毛片| 91人妻在线视频| 欧美一级99在线观看国产| 成人国内精品久久久久影院| 精品无码专区亚洲| 久久99精品久久久久久不卡| 人妻无码中文字幕第一区| 国产一级做美女做受视频| 麻豆精选在线| 国产三级国产精品国产普男人| 国产午夜福利在线小视频| 欧美一级高清视频在线播放| 区国产精品搜索视频| 亚洲中文字幕久久无码精品A| 人妻无码AⅤ中文字| 日日摸夜夜爽无码| 欧美精品一区二区三区中文字幕| 日本成人精品视频| 五月六月伊人狠狠丁香网| 亚洲自偷自拍另类小说|