黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 解決JavaWeb亂碼問題的方法

解決JavaWeb亂碼問題的方法

更新時間:2021-09-06 11:05:25 來源:動力節(jié)點 瀏覽1120次

作為一個合格的web開發(fā)人員應(yīng)該是什么問題都遇到過的,尤其是亂碼問題。大家也許都體會到了,我們中國人學(xué)編程,很大的一個不便就是程序的編碼問題,無論學(xué)習(xí)什么技術(shù),我們都需要探討他的編碼問題。

來講一下關(guān)于解決javaweb亂碼出現(xiàn)的原因與解決辦法。

首先,先明確兩個問題,為什么會出現(xiàn)亂碼?我們在編寫web應(yīng)用時什么時候會出現(xiàn)亂碼?

第一個問題:很多初學(xué)者會發(fā)現(xiàn),我們在自己的客戶機上編寫的web應(yīng)用程序時,明明是正常的漢字,但是發(fā)布到服務(wù)器上訪問的時候瀏覽器就會看到亂碼。

出現(xiàn)這種問題的原因是:通常中文windows系統(tǒng)中系統(tǒng)默認(rèn)的編碼是GBK(大家可以進(jìn)入DOS窗口下,輸入chcp進(jìn)行查詢),而我們編寫web應(yīng)用時,myeclipse默認(rèn)的編碼通常是iso8859-1,瀏覽器也會有自己的編碼選擇。。。這么多地方使用的不同編碼,如果兩個編碼不對口,當(dāng)然就會出現(xiàn)亂碼。

第二個問題:出現(xiàn)亂碼的地方可以歸結(jié)為三類:1.基本jsp頁面顯示亂碼,2.表單提交亂碼,3.數(shù)據(jù)庫亂碼

下面為大家依次講解:

1.基本jsp頁面顯示亂碼

這種情況比較簡一般只有初學(xué)者會出現(xiàn),原因是因為jsp頁面保存,轉(zhuǎn)換時的編碼與瀏覽器解析的編碼不一樣。這里涉及到三個解決方案

(1)我們都知道,jsp就是servlet,jsp會轉(zhuǎn)換成servlet之后轉(zhuǎn)換為相關(guān)的java代碼再發(fā)給客戶端。

那么jsp中就需要有語句可以控制jsp是以什么編碼轉(zhuǎn)換為servlet的。上述編碼就是控制,jsp以UTF-8的編碼方式保存,也就是說以UTF-8的編碼方式轉(zhuǎn)換成servlet。

(2)熟悉HTTP協(xié)議的朋友都不陌生這一句代碼,charset="UTF-8",就是設(shè)置響應(yīng)頭編碼方式為UTF-8。

(3)同上一句代碼,只不過這一句使用HTML控制瀏覽器解析方式。

示例:

我們在一個簡單的jsp頁面中寫下這樣的代碼,頁面中有漢字,卻默認(rèn)pageEncoding="iso8859-1"

<%@ page language="java" import="java.util.*" pageEncoding="iso8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'index.jsp' starting page</title>
  </head>
  <body>
        <form action="encoding.jsp" method="get">
            username:<input type="text" name="name" /><br>
            性別:<input type="text" name="sex" /><br>
            <input type="submit" value="submit" />
        </form>
  </body>
</html>

頁面顯示:

HTTP報文請求頭:

大家只要按照上述修改響應(yīng)時的默認(rèn)編碼即可。

2.表單提交亂碼

我們在使用表單提交中文時也會出現(xiàn)亂碼,原因就是Tomcat服務(wù)器內(nèi)部編碼默認(rèn)是iso8859-1,Tomcat會以編碼的缺省方式利用iso8859-1來解析中文。

表單get方式提交時,服務(wù)器會用默認(rèn)的編碼對提交的數(shù)據(jù)進(jìn)行解析,并添加到url后面?zhèn)鞯较乱粋€頁面。

解決方法:在Tomcat 服務(wù)器的server.xml文件中進(jìn)行配置,在Connector節(jié)點中加入useBodyEncodingForURI="true" URIEncoding=”UTF-8”,這樣接收頁面就會利用UTF-8進(jìn)行解碼了。

表單post方式提交時,提交的數(shù)據(jù)不再加入到url中,我們可以在web應(yīng)用中添加一個servlet過濾器來設(shè)置編碼統(tǒng)一(servlet過濾器會在訪問設(shè)置的相關(guān)url之前執(zhí)行)。

過濾器相關(guān)代碼:

public class ConvertEncoding implements Filter {
    private String encoding;
    @Override
    public void destroy() {
    }
    @Override
    public void doFilter(ServletRequest req, ServletResponse resp,
            FilterChain chain) throws IOException, ServletException {
        req.setCharacterEncoding(encoding);//設(shè)置請求編碼
        resp.setContentType("text/html;charset="+encoding);//設(shè)置響應(yīng)編碼
        chain.doFilter(req,resp);
    }
    @Override
    public void init(FilterConfig config) throws ServletException {
        this.encoding = config.getInitParameter("encoding");//讀取默認(rèn)編碼
    }
}

這樣我們會發(fā)現(xiàn)即使是post方式提交的數(shù)據(jù),也不會出現(xiàn)亂碼情況。、

3.數(shù)據(jù)庫亂碼

對于大多數(shù)數(shù)據(jù)庫的JDBC驅(qū)動程序,在Java程序和數(shù)據(jù)庫之間傳遞數(shù)據(jù)都是以ISO8859-1為默認(rèn)編碼格式,所以,在程序中向數(shù)據(jù)庫存儲包含中文的數(shù)據(jù)時,驅(qū)動程序受限把程序內(nèi)部Unicode編碼格式的數(shù)據(jù)轉(zhuǎn)換為ISO8859-1編碼,然后傳遞到數(shù)據(jù)庫中,如果要解決數(shù)據(jù)庫亂碼問題,最簡單的就是更改數(shù)據(jù)庫默認(rèn)編碼格式。

以上就是動力節(jié)點小編介紹的"解決JavaWeb亂碼問題的方法",希望對大家有幫助,想了解更多可查看JavaWeb教程。動力節(jié)點在線學(xué)習(xí)教程,針對沒有任何Java基礎(chǔ)的讀者學(xué)習(xí),讓你從入門到精通,主要介紹了一些Java基礎(chǔ)的核心知識,讓同學(xué)們更好更方便的學(xué)習(xí)和了解Java編程,感興趣的同學(xué)可以關(guān)注一下。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 精品视频手机在线观看免费 | 天天干天天干天天天天天天爽 | m3u8久久国产精品影院 | 黄色片视频在线免费观看 | 成人18免费视频 | 日韩一区二区三区四区不卡 | 天天摸天天躁天天添天天爽 | 亚洲精品高清中文字幕 | 欧美一区二区三区在线 | 美女黄18| 黄色视屏日本 | 国产免费理论片在线观看 | 日本黄在线观看免费播放 | 欧美亚洲国产日韩 | 男女在线视频 | 欧美四区| 黄色一级片免费观看 | 亚洲狠狠婷婷综合久久久图片 | 免费在线欧美 | 成人久久18免费网站游戏 | 尼龙丝袜社区aaaaa视频 | 成人精品一区二区三区校园激情 | 性欧美videos另类hd | 日本三级日本三级人妇三级四 | 中国xxxx视频播放50 | 综合在线视频精品专区 | 中文字幕天天躁日日躁狠狠 | 日本va视频 | 欧美视频不卡一区二区三区 | 最近的最新的中文字幕视频 | 操你啦在线播放 | 999久久免费高清热精品 | 看全色黄大色黄大片色责看的 | 国产性xxx | 色费女人18毛片a级视频在线 | 国产欧美成人不卡视频 | 在线播放人成午夜免费视频 | 国产高清视频免费 | 亚洲mv日韩mv欧美mv | 成人影院一区二区三区 | 18av黄动漫网站在线观看 |