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

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

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

    Hopes

    Start Here..

     

    Ajax+PHP的編碼問題總結(jié)

    Ajax+PHP的編碼問題總結(jié)


    我暈。。。。。。。。。。
    弄了一天,總算把Ajax+PHP的編碼問題弄清楚了。。。。。。。。。。
    總結(jié)一下吧,省的忘了-------

    1、Html被瀏覽器用什么字符打開,由下面兩種情況:

    (1)<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
    這樣就告訴了瀏覽器用gbk打開,如果你的html里面由utf-8的中文,則顯示亂碼

    (2)沒有用<meta charset />指明編碼,則你的html文件是用什么編碼寫的,就用什么編碼打開!

    2、瀏覽器遇到PHP文件,用什么字符顯示,也有下面兩種情況:

    (1)header('Content-Type:text/html;charset=utf-8');---則告訴你的瀏覽器用utf-8顯示
    如果你的php文件是用GBK寫的,且里面有中文要顯示,則亂碼。

    (2)如果沒有header指定編碼,則由php.ini中的default-charset指定的編碼顯示

    3、Ajax與PHP文件的交互:

    (1)發(fā)送---不管js是由GBK還是UTF-8寫的,里面的中文傳到PHP后,都變成了正確UTF-8編碼的中文[注意,不是亂碼哦!]

    (2)接收---不管js,php,php.ini的編碼如何,也不管是什么瀏覽器......
    只要PHP文件加上了header('Content-Type:text/html;charset=utf-8');
    而且echo的中文都是正確的UTF-8編碼,則肯定OK!

    (3)實(shí)現(xiàn)(2)的方法及注意事項(xiàng)---------

    [1]假如PHP為GBK編碼,想往JS傳中文"哈哈",方法----$message = iconv("gbk","utf-8","哈哈"); echo $message;

    [2]假如PHP為GBK編碼,想先存入數(shù)據(jù)庫(kù)(utf-8),然后再取出傳回JS,方法-$message = iconv("gbk","utf-8","哈哈")

    (注:有時(shí)會(huì)用到這個(gè)函數(shù)---mysql_query("SET NAMES 'UTF8'");作用---告訴數(shù)據(jù)庫(kù),"我傳給你的將是一段X編碼的數(shù)據(jù),請(qǐng)按 X編碼理解","你傳給我的數(shù)據(jù)也必須翻譯成X編碼的,我只懂X編碼")

    [3]// $message = strip_tags($message); // $message = htmlentities($message, ENT_QUOTES);
    這兩個(gè)討厭的函數(shù),會(huì)使$message變成亂碼,具體為什么暫時(shí)還沒查閱!!!

    4、總結(jié):

    (1)如果服務(wù)器是UTF-8編碼,建議HTML,JS,PHP,MYSQL均用UTF-8寫,這樣什么都不用管,就OK!

    (2)如果服務(wù)器是GBK編碼,建議HTML,JS,PHP用GBK編寫,MYSQL還是用UTF-8,

    [1]需要PHP傳中文到--->JS時(shí),方法:header(..."utf-8"),且傳的中文都用iconv函數(shù)處理!

    [2]需要PHP存中文到數(shù)據(jù)庫(kù)時(shí),方法:插入的中文用iconv函數(shù)處理之后再insert...

    5、補(bǔ)充:

    (1)我假設(shè),這里有一個(gè)PHP函數(shù)能正確實(shí)現(xiàn)JS里的unescape的功能!
    現(xiàn)在有一個(gè)gb2312格式的HTML頁(yè)面,其中的數(shù)據(jù)escape后經(jīng)過ajax傳到后臺(tái)PHP頁(yè)面中
    php unescape處理后 數(shù)據(jù)變成了什么格式? [后臺(tái)為gb2312]

    如果前臺(tái)不做escape處理,后臺(tái)也不做 unescape處理呢? [后臺(tái)為UTF-8]

    注:The escape() function encodes a string, so it can be read on all computers.
    escape()方法將字符串轉(zhuǎn)換為特定的編碼,使其能夠被任意的計(jì)算機(jī)識(shí)別和讀取。

    實(shí)例---
    In this example we use escape() to encode strings:
    在下面的例子中我們用escape()來(lái)加密字符串:

    <script type="text/javascript">document.write(escape("歡迎來(lái)到POP") + "<br />")document.write(escape("?!=()#%&"))</script>

    The output of the code above will be:
    輸出結(jié)果為:

    Visit%20W3Schools%21%3F%21%3D%28%29%23%25%26

    ----------------------------------------------------------------------------------------------------------------------------

    (2)mb系列函數(shù):

    php5漢字處理和字符串處理編碼模式不同

    例如,當(dāng)我們使用strlen 這個(gè)函數(shù) 獲得漢字的長(zhǎng)度的時(shí)候 例如這個(gè)漢字串“我愛中國(guó)”

    那么它返回的將是8個(gè),而不是4個(gè)當(dāng)我們希望得到4個(gè)的時(shí)候,我們就必須借用加前綴的mb_函數(shù)了

    他的意思是多字節(jié)字符處理函數(shù),此類函數(shù)的參數(shù)的最后一參數(shù)為,編碼模式,有默認(rèn)值,但我們要用

    “Gb2312”,此編碼模式,正確解析漢字;


    實(shí)例:
    mb_strlen($txt,"GB2312 ")

    function indexOf($sorce,$chinese) {
    return ( @mb_strpos($sorce,$chinese,null,"GB2312") );
    }

    function charAt($sorce,$numpos) {
    return ( mb_substr($sorce,$numpos,1,"Big5") );
    }

    function charAt($sorce,$numpos) {
    return ( mb_substr($sorce,$numpos,1,"Big5") );
    }

    posted on 2013-01-17 10:26 ** 閱讀(181) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計(jì)

    公告

    你好!

    常用鏈接

    留言簿(2)

    隨筆檔案

    文章分類

    文章檔案

    新聞檔案

    相冊(cè)

    收藏夾

    C#學(xué)習(xí)

    友情鏈接

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 国产精品久久亚洲不卡动漫| 亚洲成人动漫在线| 亚洲人成色777777精品| 免费看男女下面日出水来| 亚洲国产精久久久久久久| 永久在线观看免费视频 | 成全高清视频免费观看| 中文有码亚洲制服av片| 毛片a级毛片免费观看品善网 | 特级aaaaaaaaa毛片免费视频| 国产男女性潮高清免费网站| 精品成人一区二区三区免费视频| 啊v在线免费观看| 一级做a爰片久久毛片免费看| 亚洲一区二区三区乱码A| 在线免费视频你懂的| 亚洲AV无码码潮喷在线观看| 久久成人a毛片免费观看网站| 亚洲精品在线不卡| 成年性羞羞视频免费观看无限| 激情无码亚洲一区二区三区| 亚洲综合色在线观看亚洲| 中文字幕免费在线播放| 78成人精品电影在线播放日韩精品电影一区亚洲 | 日本高清免费不卡在线| 午夜免费国产体验区免费的| 日韩亚洲变态另类中文| 日韩插啊免费视频在线观看| 中文字幕亚洲综合久久综合| 免费一级做a爰片久久毛片潮喷| 中文字幕一区二区三区免费视频| 亚洲今日精彩视频| 成年18网站免费视频网站| 国产精品免费视频观看拍拍| 亚洲国产综合精品中文第一区| 一二三四免费观看在线电影 | 在线观看免费亚洲| 免费毛片在线看不用播放器| 国产精品亚洲午夜一区二区三区| 亚洲国产a级视频| 毛片免费全部播放无码|