最近在做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乱码!