<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-17  評論-64  文章-79  trackbacks-1
     寫在前面:
         
          這段時間在深圳一家公司實習(xí),公司規(guī)定要做2個課題來考驗我們水平,遇到一個模塊只有用AJAX實現(xiàn)才是最完美的,這讓我我想起最初接觸AJAX時就是由于中文亂碼問題讓我放棄了使用這個技術(shù),但是這次我沒有放棄選擇權(quán),我不得不開啟喜愛的百度,搜索著解決方案,但是用來網(wǎng)上所說的好幾個方法都無法解決,所以不得不自己思考一下解決亂碼的方法。
           現(xiàn)在WEB系統(tǒng)基本上都要用到過濾流技術(shù)可是幾乎所有的公司都是用GBK編碼來過濾字符,但是AJAX是老外的技術(shù)他們用UTF-8編碼,怎么解決這個問題呢,我想到的昨天一個double類型轉(zhuǎn)換為金錢格式顯示問題,如果在后臺處理這個問題要花費很多功夫,但是放在前臺用javascript處理就很好,這樣既不影響后臺業(yè)務(wù),又實現(xiàn)了前臺顯示格式的要求。那么AJAX編碼能不能在前臺轉(zhuǎn)換了,立刻尋找相關(guān)質(zhì)料在下面列出。
     
    URL編碼方法有3種
    escape() ,unescape()      encodeURI(),decodeURI()       encodeURIComponent(),decodeURIComponent() 這幾種編碼所起的作用各不相同

    escape() 方法  

    采用ISO Latin字符集對指定的字符串進行編碼。所有的空格符、標點符號、特殊字符以及其他非ASCII字符都將被轉(zhuǎn)化成%xx格式的字符編碼(xx等于該字符在字符集表里面的編碼的16進制數(shù)字)。比如,空格符對應(yīng)的編碼是%20。

    不會被此方法編碼的字符: @ * / +

    encodeURI() 方法:

    把URI字符串采用UTF-8編碼格式轉(zhuǎn)化成escape格式的字符串。

    不會被此方法編碼的字符:! @ # $& * ( ) = : / ; ? + '

    encodeURIComponent() 方法:

    把URI字符串采用UTF-8編碼格式轉(zhuǎn)化成escape格式的字符串。與encodeURI()相比,這個方法將對更多的字符進行編碼,比如 / 等字符。所以如果字符串里面包含了URI的幾個部分的話,不能用這個方法來進行編碼,否則 / 字符被編碼之后URL將顯示錯誤。

    不會被此方法編碼的字符:! * ( ) '

    因此,對于中文字符串來說,如果不希望把字符串編碼格式轉(zhuǎn)化成UTF-8格式的(比如原頁面和目標頁面的charset是一致的時候),只需要使用escape。如果你的頁面是GB2312或者其他的編碼,而接受參數(shù)的頁面是UTF-8編碼的,就要采用encodeURI或者encodeURIComponent。

    在后臺JAVA處理函數(shù):

    JS是:escape()函數(shù)    
    Java是:   
    java.net.URLEncoder.encode()   
    java.net.URLDecoder.decode()  
    但是這個函數(shù)已經(jīng)不推薦使用了
    現(xiàn)在推薦使用
    java.net.URLEncoder.encode(str,encode);
    java.net.URLDecoder.decode(str,encode);

    這樣就構(gòu)成了統(tǒng)一的編碼格式下面舉簡單的個例子:
    在服務(wù)器端:
    String encode=java.net.URLEncoder.encode("大家好","utf-8");
    //encode=("%E5%A4%A7%E5%AE%B6%E5%A5%BD"
    String decode=java.net.URLDecoder.decode("%E5%A4%A7%E5%AE%B6%E5%A5%BD","utf-8");

    客戶端解碼Javascript:
    decodeURIComponent(xmlHttp.responseText);
    客戶端傳送時編碼:
    encodeURIComponent("大家好")

    encodeURI("大家好")
    這樣就可以解決中文亂碼編碼問題了。

    下面方一個最簡單的AJAX給大家下載:
    點擊下載
    posted on 2007-04-11 12:12 飛鳥 閱讀(1910) 評論(2)  編輯  收藏 所屬分類: AJAX

    評論:
    # re: 解決AJAX中文亂碼問題比較好的方案 2009-03-15 09:16 | 007
    請參見我的解決方案,是不是更完美?  回復(fù)  更多評論
      
    # re: 解決AJAX中文亂碼問題比較好的方案 2009-08-15 23:02 | xdoc_lee
    謝謝。  回復(fù)  更多評論
      
    主站蜘蛛池模板: 亚洲人成图片小说网站| 国产97视频人人做人人爱免费| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 久久国产乱子精品免费女| 2022中文字字幕久亚洲| 九九综合VA免费看| 国产日产亚洲系列最新| 亚洲美免无码中文字幕在线| 亚欧免费一级毛片| 日本不卡在线观看免费v| 亚洲hairy多毛pics大全| 免费国产在线观看| 免费观看四虎精品成人| 亚洲国产精品成人网址天堂| 亚洲av成人一区二区三区| 毛片免费观看视频| 久久精品国产精品亚洲蜜月| 色欲A∨无码蜜臀AV免费播| 亚洲婷婷综合色高清在线| 99久久免费精品国产72精品九九| 亚洲国产精彩中文乱码AV| 色www免费视频| 成人人观看的免费毛片| 在线观看亚洲免费视频| 精品熟女少妇AV免费观看| 337P日本欧洲亚洲大胆精品 | 日韩电影免费在线观看| 亚洲国产精品午夜电影| 日韩成人在线免费视频| 久久久久女教师免费一区| 久久久亚洲欧洲日产国码aⅴ| 最近中文字幕mv免费高清电影| 亚洲国产精品无码第一区二区三区 | 国产AV无码专区亚洲AWWW| 亚洲精品国产免费| 国产亚洲婷婷香蕉久久精品| 一边摸一边桶一边脱免费视频 | 美女视频黄.免费网址| 亚洲国产精品高清久久久| 蜜桃视频在线观看免费网址入口| 性生大片视频免费观看一级|