php中mb_convert_encoding 和 iconv 的區別_PHP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:php拾遺
      //計算庫存 foreach ( $aGoodsLst as $goodsid = $aGoods ) { $aGoods [ 'price' ]= $aGoods [ 'buy' ]==0?0:( $aGoods [ 'buymoney' ]/ $aGoods [ 'buy' ]); $aGoods [ 'stock' ]= $aGoods [ 'buy' ]- $aGoods [ 'sell' ]+ $aGoods [ 'return' ]; $aGoods [ 'stockmon

      mb_convert_encoding這個函數是用來轉換編碼的。原來一直對程序編碼這一概念不理解,不過現在好像有點開竅了。

      不過英文一般不會存在編碼問題,只有中文數據才會有這個問題。比如你用Zend Studio或Editplus寫程序時,用的是gbk編碼,如果數據需要入數據庫,而數據庫的編碼為utf8時,這時就要把數據進行編碼轉換,不然進到數據庫就會變成亂碼。

      mb_convert_encoding的用法見官方:

      http://cn.php.net/manual/zh/function.mb-convert-encoding.php

      做一個GBK To UTF-8

      < ?php

      header("content-Type: text/html; charset=Utf-8");

      echo mb_convert_encoding("妳係我的友仔", "UTF-8", "GBK");

      ?>

      再來個GB2312 To Big5

      < ?php

      header("content-Type: text/html; charset=big5");

      echo mb_convert_encoding("你是我的朋友", "big5", "GB2312");

      ?>

      不過要使用上面的函數需要安裝但是需要先enable mbstring 擴展庫。

      PHP中的另外一個函數iconv也是用來轉換字符串編碼的,與上函數功能相似。

      下面還有一些詳細的例子:

      iconv — Convert string to requested character encoding

      (PHP 4 >= 4.0.5, PHP 5)

      mb_convert_encoding — Convert character encoding

      (PHP 4 >= 4.0.6, PHP 5)

      用法:

      string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )

      需要先enable mbstring 擴展庫,在 php.ini里將; extension=php_mbstring.dll 前面的 ; 去掉

      mb_convert_encoding 可以指定多種輸入編碼,它會根據內容自動識別,但是執行效率比iconv差太多;

      string iconv ( string in_charset, string out_charset, string str )

      注意:第二個參數,除了可以指定要轉化到的編碼以外,還可以增加兩個后綴://TRANSLIT 和 //IGNORE,其中 //TRANSLIT 會自動將不能直接轉化的字符變成一個或多個近似的字符,//IGNORE 會忽略掉不能轉化的字符,而默認效果是從第一個非法字符截斷。

      Returns the converted string or FALSE on failure.

      使用:

      發現iconv在轉換字符”—”到gb2312時會出錯,如果沒有ignore參數,所有該字符后面的字符串都無法被保存。不管怎么樣,這個”—”都無法轉換成功,無法輸出。 另外mb_convert_encoding沒有這個bug.

      一般情況下用 iconv,只有當遇到無法確定原編碼是何種編碼,或者iconv轉化后無法正常顯示時才用mb_convert_encoding 函數.

      from_encoding is specified by character code name before conversion. it can be array or string - comma separated enumerated list. If it is not specified, the internal encoding will be used.

      /* Auto detect encoding from JIS, eucjp-win, sjis-win, then convert str to UCS-2LE */

      $str = mb_convert_encoding($str, “UCS-2LE”, “JIS, eucjp-win, sjis-win”);

      /* “auto” is expanded to “ASCII,JIS,UTF-8,EUC-JP,SJIS” */

      $str = mb_convert_encoding($str, “EUC-JP”, “auto”);

      例子:

      $content = iconv(”GBK”, “UTF-8//IGNORE″, $content);

      $content = mb_convert_encoding($content, “UTF-8″, “GBK”);

      來源:http://www.cnblogs.com/zhwl/archive/2012/08/07/2626896.html

      分享:php會話機制總結
      1 什么是會話 web中的會話實際上是指瀏覽器和web服務器之間的會話,形象一點:就好比兩個人進行一段對話。 2 php會話機制工作原理 當瀏覽器向服務器發送URL請求,服務器會生成一個會話ID,并將瀏覽器端的一些信息保存在服務器端,然后將會話ID送到瀏覽器端保存到cookie

      來源:cnblogs//所屬分類:PHP教程/更新時間:2012-08-09
      相關PHP教程