成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java中的亂碼問(wèn)題研究(二)

mochixuan / 1647人閱讀

摘要:一前言上面寫(xiě)了的亂碼問(wèn)題,接下來(lái)寫(xiě)的是中中的問(wèn)題,大楷我比較關(guān)心一點(diǎn),因?yàn)橛龅竭@個(gè)的情況多一些吧。注意是就行了,之前采用是由用戶設(shè)置的編碼方式解析,過(guò)后有個(gè)參數(shù)被默認(rèn)了,就使用了解析了,這兒是配置中的關(guān)鍵。

一、前言

上面寫(xiě)了console的亂碼問(wèn)題,接下來(lái)寫(xiě)的是web中servlet中的問(wèn)題,大楷我比較關(guān)心一點(diǎn),因?yàn)橛龅竭@個(gè)的情況多一些吧。直接開(kāi)始吧。

二、jsp和servlet中的亂碼問(wèn)題

其實(shí)在java文件的編譯的情況和(一)中的情況是一樣的,不過(guò)這里是由WEB容器去調(diào)用JVM而已,那么我們得知道一些默認(rèn)的東西

比如特別重要的:(摘要)

如果Servlet 在運(yùn)行的過(guò)程中,需要接受從客戶端傳來(lái)的字符如:表單輸入的值和URL中傳入的值,此時(shí)如果程序中沒(méi)有設(shè)定接受參數(shù)時(shí)采用的編碼格式,則WEB 容器會(huì)默認(rèn)采用ISO-8859-1 編碼格式來(lái)接受傳入的值并在JVM 中轉(zhuǎn)化為UNICODE 格式的保存在WEB 容器的內(nèi)存中。Servlet 運(yùn)行后生成輸出,輸出的字符串是UNICODE 格式的,緊接著,容器將Servlet 運(yùn)行產(chǎn)生的UNICODE 格式的串(如html語(yǔ)法,用戶輸出的串等)直接發(fā)送到客戶端瀏覽器上并輸出給用戶,如果此時(shí)指定了發(fā)送時(shí)輸出的編碼格式,則按指定的編碼格式輸出到瀏覽器上,如果沒(méi)有指定,則默認(rèn)按ISO-8859-1 編碼發(fā)送到客戶的瀏覽器上。

注意是ISO-8859-1就行了,tomcat 5.0之前采用是由用戶設(shè)置的編碼方式解析,tomcat 5.0過(guò)后有個(gè)參數(shù)(useBodyEncodingForURI)被默認(rèn)了false,就使用了ISO-8859-1解析了,這兒是配置中的關(guān)鍵。

public class Hello extends HttpServlet {
    private static final long serialVersionUID = 4878915372815719687L;
    
    public Hello() {
        super();
    }
    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
        //輸入:設(shè)置請(qǐng)求編碼格式
        request.setCharacterEncoding("GBK");
        //輸出:設(shè)置響應(yīng)編碼格式
        response.setContentType("text/html; charset=GBK");
        PrintWriter out = response.getWriter();
        out.write("
"); out.write("Hello, 中文!"); out.write("
"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //輸入:設(shè)置請(qǐng)求編碼格式 request.setCharacterEncoding("GBK"); //輸出:設(shè)置響應(yīng)編碼格式 response.setContentType("text/html; charset=GBK"); //從請(qǐng)求中接收參數(shù) String input_str = request.getParameter("input_str"); String url_arg = request.getParameter("url_arg"); //出錯(cuò)處理 input_str = (null == input_str) ? "" : input_str; url_arg = (null == url_arg) ? "" : url_arg; PrintWriter out = response.getWriter(); out.write("
"); out.println("您輸入的字符串是:" + input_str); out.write("
"); //out.println("您的表單傳遞的URL參數(shù)是:" + new String(url_arg.getBytes("ISO-8859-1"), "GBK")); out.println("您的表單傳遞的URL參數(shù)是:" + url_arg); out.write("
"); } public void init() throws ServletException { // Put your code here } }

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/64744.html

相關(guān)文章

  • Java中的亂碼問(wèn)題研究(一)

    摘要:一前言最近感覺(jué)自己對(duì)編碼的理解還不夠透徹,研究一下編碼的問(wèn)題,我覺(jué)得這個(gè)是值得研究的地方。自己開(kāi)始研究的時(shí)候,很細(xì)心的看了不少的資料,這里和大家分享一下,希望對(duì)大家有用,原理有些我就不一條一條的來(lái)了,重點(diǎn)描述下吧。 一、前言 最近感覺(jué)自己對(duì)編碼的理解還不夠透徹,研究一下編碼的問(wèn)題,我覺(jué)得這個(gè)是值得研究的地方。自己開(kāi)始研究的時(shí)候,很細(xì)心的看了不少的資料,這里和大家分享一下,希望對(duì)大家有用...

    godlong_X 評(píng)論0 收藏0
  • JavaWeb 亂碼問(wèn)題終極解決方案!

    摘要:經(jīng)常有讀者在公眾號(hào)上問(wèn)亂碼的問(wèn)題,昨天又有一個(gè)小伙伴問(wèn)及此事,其實(shí)這個(gè)問(wèn)題很簡(jiǎn)單,但是想要說(shuō)清楚卻并不容易,因?yàn)槊總€(gè)人亂碼的原因都不一樣,給每位小伙伴都把亂碼的原因講一遍也挺費(fèi)時(shí)間的,因此,松哥今天決定寫(xiě)一篇文章,和大伙好好捋捋中的亂碼問(wèn)題 經(jīng)常有讀者在公眾號(hào)上問(wèn) JavaWeb 亂碼的問(wèn)題,昨天又有一個(gè)小伙伴問(wèn)及此事,其實(shí)這個(gè)問(wèn)題很簡(jiǎn)單,但是想要說(shuō)清楚卻并不容易,因?yàn)槊總€(gè)人亂碼的原因...

    canger 評(píng)論0 收藏0
  • JavaWeb中文亂碼初探

    摘要:一前言在開(kāi)發(fā)的過(guò)程中,難免會(huì)出現(xiàn)中文亂碼的問(wèn)題。接下來(lái)寫(xiě)的是我在解決中文亂碼問(wèn)題時(shí)的學(xué)習(xí)心得,一是為了能加深印象,二是希望能幫初學(xué)者們解決一些疑惑。二正文之所以會(huì)出現(xiàn)中文亂碼,是因?yàn)樵谶M(jìn)行時(shí)的編碼方式不正確。 一、前言  在開(kāi)發(fā)JavaWeb的過(guò)程中,難免會(huì)出現(xiàn)中文亂碼的問(wèn)題。接下來(lái)寫(xiě)的是我在解決中文亂碼問(wèn)題時(shí)的學(xué)習(xí)心得,一是為了能加深印象,二是希望能幫初學(xué)者們解決一些疑惑。如有說(shuō)的不...

    eccozhou 評(píng)論0 收藏0
  • 菜鳥(niǎo)筆記(一) - Java常見(jiàn)的亂碼問(wèn)題

    摘要:本文將介紹一種開(kāi)發(fā)常見(jiàn)的亂碼問(wèn)題。前提摘要在學(xué)習(xí)的過(guò)程中,亂碼問(wèn)題是經(jīng)常遇到的,無(wú)論是頁(yè)面亂碼還是數(shù)據(jù)庫(kù)亂碼。本文將羅列筆者在開(kāi)發(fā)過(guò)程中常常遇到幾種亂碼場(chǎng)景。菜鳥(niǎo)筆記下周不見(jiàn)不散 本文將介紹一種Java Web/Api 開(kāi)發(fā)常見(jiàn)的亂碼問(wèn)題。 前提摘要:在學(xué)習(xí)Java Web的過(guò)程中,亂碼問(wèn)題是經(jīng)常遇到的,無(wú)論是頁(yè)面亂碼還是數(shù)據(jù)庫(kù)亂碼。本文將羅列筆者在開(kāi)發(fā)過(guò)程中常常遇到幾種亂碼場(chǎng)景。 一...

    ixlei 評(píng)論0 收藏0
  • 各瀏覽器下載文件名不亂碼的解決辦法

    摘要:在項(xiàng)目中發(fā)現(xiàn),使用下載中文名文件的時(shí)候,下載的文件名是亂碼的問(wèn)題。但是這個(gè)問(wèn)題在,,中是沒(méi)有的。原先以為是的,但是細(xì)細(xì)研究之下你會(huì)發(fā)現(xiàn)這個(gè)簡(jiǎn)單的文件下載問(wèn)題在協(xié)議里經(jīng)歷了多少波折。 在項(xiàng)目中發(fā)現(xiàn),使用Safari下載中文名文件的時(shí)候,下載的文件名是亂碼的問(wèn)題。但是這個(gè)問(wèn)題在IE,F(xiàn)irefox,Chrome中是沒(méi)有的。原先以為是Safari的bug,但是細(xì)細(xì)研究之下你會(huì)發(fā)現(xiàn)這個(gè)簡(jiǎn)單的文...

    VishKozus 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

mochixuan

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<