今天遇到一个问题,经过几个小时的找错,最终确定为编码错误,原来编码错误也不可以插入数据库。原因是我采集拿到的数据是gb2312 ,而数据库是utf8的,所以一直纳闷为什么打印出来的sql没有问题,但是就是不能插入数据库,如果把sql拿出来直接运行的话,是可以成功的。最后,还是在一个哥的提醒下,让我意识到的,因为在我看来,如果编码错误,执行sql应该是错误的,但是却没有想到,凡是汉字的字段全部取消,这也许是经验问题,我想下次肯定就碰不到了。
通过gb2312 采集的页面,插入utf8的数据,string mb_convert_encoding ( string $str
, string $to_encoding
[,mixed $from_encoding
] ) ,官方解释:转换字符编码。第一个参数:你要转换的字符串,第二个参数:转换为什么编码(我这里是utf8),第三个参数:原来编码(我这里指采集的原页面 gb2312)。 需要开启php扩展:extension=php_mbstring.dll
今天只用到了这个函数,听说还有别的字符串转码函数,待续。。。。