【轉載】php中iconv函數使用方法

原文: http://www.phpweblog.net/star65225692/archive/2011/03/23/7524.html
 
 
在選擇用什麼工具開發,惟一的指導標準就是:用最少的人力,最少的時間開發JavaEye網站,而且後期維護和持續升級,乃至重寫的時候,代價最小。

首先排除Java和C#,代碼太多太麻煩; 
其次排除PHP,項目一大,代碼一多,代碼的管理很成問題,PHP缺少一個起碼的包管理機制; 

a.上iconv的官方下載站點
http://ftp.gnu.org/pub/gnu/libiconv/
下面Windows版的iconv文件:libiconv-1.9.1.bin.woe32.zip
將這文件解壓,將bin/下面的charset.dll,iconv.dll,iconv.exe拷貝到c:/windows/ (或其它的系統PATH中)
(ipaddr提醒你,這步是必須的,php_iconv.dll也是調用GNU的iconv庫的,因此,先要安裝GNU的iconv庫)

b.開啓php.ini裏面的php_iconv.dllphp

c.重啓Apache,再在phpinfo();檢測是否開啓iconv。
最近在作一個程序,須要用到iconv函數把抓取來過的utf-8編碼的頁面轉成gb2312, 發現只有用iconv函數把抓取過來的數據一轉碼數據就會平白無故的少一些。 讓我鬱悶了好一下子,去網上一查資料才知道這是iconv函數的一個bug。iconv在轉換字符」—」到gb2312時會出錯
解決方法很簡單,就是在須要轉成的編碼後加 「//IGNORE」 也就是iconv函數第二個參數後.以下:
如下爲引用的內容:
iconv(」UTF-8″,」GB2312//IGNORE」,$data)
ignore的意思是忽略轉換時的錯誤,若是沒有ignore參數,全部該字符後面的字符串都沒法被保存。html

這個iconv()這個函數,在php5中是內置的.謝謝.web

列子
<?php
echo $str= ‘你好,這裏是賣咖啡!’;
echo ‘<br />’;windows

echo iconv(’GB2312′, ‘UTF-8′, $str);      //將字符串的編碼從GB2312轉到UTF-8
echo ‘<br />’;函數

echo iconv_substr($str, 1, 1, ‘UTF-8′);   //按字符個數截取而非字節         
print_r(iconv_get_encoding());            //獲得當前頁面編碼信息工具

echo iconv_strlen($str, ‘UTF-8′);         //獲得設定編碼的字符串長度post

 

//也有這樣用的網站

   $content = iconv(」UTF-8″,」gbk//TRANSLIT」,$content);
?>編碼


當時重點考察Python和Ruby,由於有豆瓣的先例,開始很傾向於Python,並且我那個時候對Python比較熟悉,還曾經癡迷過一段時間的wxPython,對Zope和plone也有一些研究。 貨運代理

但後來比較了Rails和Django以後,就傾向於Rails了,差距實在太大了,並且當時Django很不成熟,在很早期的版本。其實即使如今Django和Rails的差距也沒有縮小過。 

但讓我最終下定決心的是potian在05年就大規模使用Rails的實際工程經驗,我曾經去杭州就我比較質疑的問題當面請教過他,和他談過之後,就決定用Rails了。spa

相關文章
相關標籤/搜索