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

解決JSP/Servlet開發中的中文亂碼問題

2011-09-23 03:43:26
科技傳播 2011年1期
關鍵詞:解決方案數據庫

肖 英

1.武漢軟件工程職業學院,湖北武漢 430205 2.武漢市廣播電視大學,湖北武漢 430033

解決JSP/Servlet開發中的中文亂碼問題

肖 英1,2

1.武漢軟件工程職業學院,湖北武漢 430205 2.武漢市廣播電視大學,湖北武漢 430033

基于JSP/Servlet技術的Java Web應用開發中,中文亂碼是個惱人的問題,給開發者帶來不小的麻煩,本文就著重討論了JSP/Servlet開發中幾種典型的中文亂碼問題,并給出了相應的解決方案。

JSP/Servlet;中文亂碼

0 引言

基于JSP/Servlet技術的Java Web應用開發中,中文亂碼是個如影隨形的問題,總是揮之不去,對于Java Web應用開發的初學者造成不少的困擾。Java Web應用是由多種Web組件協同合作的,同時還需要瀏覽器和數據庫的支持,中文亂碼問題產生的根源就在于這些Web組件之間、或web組件與瀏覽器、與數據庫所使用的字符集標準不統一。因此,要解決中文亂碼,其基本原則就是:保持數據傳輸的起點、終點、傳輸通道上的編碼一致。

1 幾種典型亂碼情形解決方案

下面分幾種常見的情形給出中文亂碼的解決方案,這些解決方案統一使用UTF-8作為編碼字符集。

1.1 瀏覽器顯示中文時的亂碼

瀏覽器在顯示JSP頁面時,若頁面含中文內容,可能會出現中文亂碼,其原因是:JSP頁面與瀏覽器的字符集不匹配。

解決方案:讓JSP頁面與瀏覽器使用統一的編碼字符集。可在JSP中使用如下代碼實現:<%@page pageEncoding="utf-8"

contentType="text/html;charset=utf-8"%>

其中,pageEncoding="utf-8"代表JSP使用utf-8字符集,contentType="text/html;charset=utf-8"代表瀏覽器使用utf-8字符集解釋收到的數據。

若是從Servlet向瀏覽器輸出內容,可在Servlet中使用如下代碼使瀏覽器采用utf-8編碼進行顯示:

response.setContentType("text/html;charset=utf-8");

PrintWriter out = response.getWriter();

out.println("中文!");

1.2 獲取表單中文參數時的亂碼

對于<form>表單,在JSP/Servlet中可采用request.getParameter(“參數名”)來獲取參數值,但若不做適當處理,表單參數值為中文時就會發生亂碼問題。這是因為,<form>表單參數使用post方式提交時,是通過request對象傳輸的,且Tomcat對其的編碼方式是iso-8859-1,當表單頁和獲取表單的組件不是采用與之相同的字符集時就會出現亂碼了。

解決方案:讓表單頁、封裝表單數據的request對象和接收表單數據的組件采用統一的編碼字符集。假定表單頁為index.jsp,接收表單頁為receive.jsp,則具體如下:

若接收表單的是Servlet,則在Servlet中,取表單參數值之前先使用request.setCharacterEncoding("utf-8") 進行轉碼即可。

1.3 進行數據庫操作時的亂碼

這里數據庫以MySQL為例進行討論。當JSP/Servlet要與數據庫進行交互時,若JSP/Servlet、傳輸通道、數據庫三者采用的編碼字符集不一致也會導致亂碼問題的出現。傳輸通道是指:JSP/ Servlet連接數據庫的連接對象。

解決方案:

第一步:確定JSP/Servlet采用utf-8編碼,要寫至數據庫的中文數據正常,若數據來自表單,則參考1.2正確取到中文參數值。

第二步:確定數據庫采用utf-8編碼。對于MySQL而言,可以使用其配置向導設置數據庫采用utf-8作為默認字符集;創建表時,對于允許中文的字段,設字段的字符集為utf-8。

第三步:連接MySQL數據庫的連接對象上設置字符集為utf-8。假設數據庫名為db1,則獲取連接的數據庫URL如下:jdbc:mysql://localhost:3306/db1?user=root&password=123456

&useUnicode=true&characterEncoding=utf8

其中,useUnicode=true&characterEncoding=utf8為關鍵代碼,表示連接對象(即數據的傳輸通道)采用utf-8編碼字符集。

2 結論

JSP/Servlet開發Java Web應用時的中文亂碼問題雖然惱人,但只要把握住解決問題的基本原則:保持數據傳輸的起點、終點、傳輸通道上的編碼一致,在出現中文亂碼后仔細檢查各處的編碼字符集是否一致并即時予以糾正,相信初學者也能很好地解決中文亂碼問題了。

[1]孫衛琴.Tomcat與Java Web開發技術詳解[M].電子工業出版社,2005,8.

[2]王國輝,等.JSP數據庫系統開發完全手冊[M].人民郵電出版社,2006,3.

TP39

A

1674-6708(2011)34-0193-01

肖英,講師,工作單位:武漢軟件工程職業學院軟件技術系,研究方向:軟件開發

猜你喜歡
解決方案數據庫
艾默生自動化解決方案
解決方案和折中方案
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
4G LTE室內覆蓋解決方案探討
7大睡眠問題解決方案
母子健康(2015年1期)2015-02-28 11:21:44
Moxa 802.11n WLAN解決方案AWK-1131A系列
主站蜘蛛池模板: 亚洲一区二区视频在线观看| 久久这里只精品热免费99| 国产极品美女在线播放| 免费看av在线网站网址| 国产在线无码一区二区三区| 国产av一码二码三码无码| 亚洲无码精彩视频在线观看| 久久国产高潮流白浆免费观看| 免费看av在线网站网址| 亚洲天堂精品视频| 国产麻豆精品久久一二三| 国产精品尤物在线| 精品视频一区二区三区在线播| 99久久这里只精品麻豆| 免费在线色| 又猛又黄又爽无遮挡的视频网站| 色噜噜狠狠狠综合曰曰曰| 成人国产精品2021| 午夜啪啪福利| 五月天丁香婷婷综合久久| 超碰aⅴ人人做人人爽欧美| 一级毛片不卡片免费观看| 免费A级毛片无码无遮挡| 国产大片黄在线观看| 欧美成人看片一区二区三区 | 在线观看视频一区二区| 国产国语一级毛片| 亚洲精选高清无码| 欧美视频在线第一页| 亚洲VA中文字幕| 午夜视频在线观看免费网站| 日韩视频免费| av无码久久精品| 亚洲国产精品VA在线看黑人| 亚洲精品欧美日本中文字幕| 免费毛片全部不收费的| 国产成人a在线观看视频| 欧美日韩国产在线播放| 国产精品女在线观看| 亚洲大尺度在线| 亚洲欧美自拍中文| a级毛片一区二区免费视频| 香蕉色综合| 91福利在线观看视频| 91免费国产在线观看尤物| 亚洲欧美日本国产综合在线| 爆乳熟妇一区二区三区| 国产成人精品第一区二区| 精品久久久无码专区中文字幕| 99精品福利视频| 2021国产在线视频| 伊人久久久大香线蕉综合直播| 男女性色大片免费网站| 一级香蕉人体视频| 亚洲午夜片| 在线观看国产黄色| 国产91丝袜在线播放动漫 | 永久天堂网Av| 欧美人在线一区二区三区| 五月天久久综合国产一区二区| 自拍偷拍欧美| 亚洲永久色| 午夜激情婷婷| 日韩最新中文字幕| 国产成人精品一区二区不卡| 99在线观看视频免费| 久久无码免费束人妻| 国产二级毛片| 国产午夜福利在线小视频| 国产精品99一区不卡| 国产a在视频线精品视频下载| 免费aa毛片| 国产av色站网站| 一本色道久久88综合日韩精品| 国产精品毛片在线直播完整版| 一本大道东京热无码av | 国产精品区网红主播在线观看| 久久一日本道色综合久久| 无码免费视频| 久久亚洲日本不卡一区二区| 草草影院国产第一页| 久久久成年黄色视频|