php读取sql数据库乱码,PHP与Sqlserver数据库出现乱码的解决办法

本文介绍了在使用PHP程序从SQLServer数据库读取和存储数据时遇到的乱码问题及其解决方案。主要通过调整PHP页面编码为GB2312,并使用iconv函数进行编码转换,解决了页面显示及数据存储时的乱码问题。
摘要由CSDN通过智能技术生成

由于项目的特殊需要,PHP程序从sqlserver数据库中读取和存储数据。

在实际操作过程中,常会出现乱码。一种是从SQLserver中读取的数据在页面上显示为乱码,还有一种情况是将数据存储到Sqlserver中,在数据表中是乱码。

正常情况下,出现乱码一般是编码的问题。Sqlserver数据库安装时,一般默认是GB2312编码,所以要保证php和sqlserver编码保持一致。我们介绍两种方法解决。

方法一:

php页面的编码相应的需要变为GB2312,文件保存时需要保存为GB2312编码,这样php文件中的中文字符才能正常解析。

php要输出头:

header("Content-Type: text/html; charset=gb2312")

静态页面:

方法二:用iconv函数将utf-8编码的页面转成gb2312

最近需要用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些。 让我郁闷了好一会儿,去网上一查资料才知道这是iconv函数的一个bug。iconv在转换字符"—"到gb2312时会出错。

解决方法很简单,就是在 需要转成的编码后加 "//IGNORE" 也就是iconv函数第二个参数后,如下:

iconv("UTF-8","GB2312//IGNORE",$data)

ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。

声明:如需转载,请注明来源于www.webym.net并保留原文链接:http://www.webym.net/jiaocheng/393.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>