標籤:style io ar color os sp for on 資料
最近在做PHP抓取,PHP+MSSQL的搭配。。呵。呵。。網上找了找資料好少。。看來是個大冷門呐。東看一下。西看一下。總算讓我給鼓搗點東西出來。。(最近會陸續會有PHP+MSSQL方面的資料出來哦:>)。進入正題。
PHP抓取是抓取出來了。。抓取新聞標題和新聞內容。一開始是把抓取到的標題和內容直接顯示出來沒有什麼問題
php.ini中default_charset 項設定是這樣的:default_charset = "utf-8"
但是光抓取下來得存入資料庫呐。
這時候出問題了。
下面是加入資料庫函數
*********************************************php code*******************************************************
function insert_db($title,$content,$lie)
{
$dsn =‘DRIVER={SQL Server};SERVER=127.0.0.1;DATABASE=test‘;
$link=odbc_connect($dsn,‘sa‘,‘admin‘) or die(‘eeeor‘);
odbc_exec($link,"insert into news(".$lie.",content)values(‘".$titile."‘,‘".$content."‘)");
odbc_close($link);
}
*****************************************************************************************************************
但到資料庫一看慘了。全是亂碼。。網上找了一下文章。。看了看原來是因為文字編碼的問題。
MSSQL中預設是chinese_prc規則編碼排序。而我PHP中設定的是UTF-8所以會是亂碼。但是我把php.ini的default_charset 項設定成GB2312抓取到的標題和內容存入MSSQL也是亂碼。鬱悶。先不管這個了。
既然編碼不對。那麼統一一下不就行了。。。
用下面這個函數: iconv(),對指定內容進行編碼轉換同時返回編碼後的內容。。。
iconv("utf-8", "gb2312", $title) ;這樣把抓到的標題轉換一下存入MSSQL。。看了一下哈。。轉換成功。一溜的中文標題。沒有任何亂碼。。呵。呵。。。
由於PHP是UTF-8那麼顯示的時候要對應哦。。。
iconv("gb2312", "utf-8", $title) ;這樣就可以在網頁上顯示正常的內容嘍!!!
搞定~!
php讀取/寫入mssql亂碼!