php + mssql乱码

当用PHP自带的模块php_mssql.dll去调用MSSQL数据库时,中文数据会乱码。
但如果我们采用ADODB的方式去做,就不会乱码了。请看下面的具体实例:

调用开源的adodb.inc.php(支持多种数据库,官网http://adodb.sourceforge.net/)

 <?php

include(‘adodb5/adodb.inc.php‘);

$db = &ADONewConnection("ado_mssql");

$myDSN="PROVIDER=MSDASQL;DRIVER={SQL Server};"

. "SERVER=dbserver;DATABASE=dbname;UID=dbuser;PWD=dbpwd;"  ;
         $db->charPage = 65001;

$db->Connect($myDSN);

$rs = $db->Execute("sql query");

$arr = $rs->GetArray();

print_r($arr);

?>

注意:这个参数$db->charPage很关键,根据自己网站的编码去设置!

http://sourceforge.net/projects/adodb/files/adodb-php5-only/adodb-520-for-php5/

时间: 2024-10-26 21:49:14

php + mssql乱码的相关文章

使用SQL Server Driver for PHP解决PHP连接MSSQL乱码的问题

原文 使用SQL Server Driver for PHP解决PHP连接MSSQL乱码的问题 最近帮客户写了一个.net商城网站的发布接口,大家都知道.net一般都使用MSSQL数据库,但鱼丸不会.net呀,没办法,只能使用PHP连接SQL Server,然后来发布商品数据.因为客户采集的英文网站,但是要求发布时翻译成德语,发布完了,结果发现标题内容这些地方有乱码,在网上找了大半天,也试了很多种方法,结果使用SQLSRV解决了问题! 官方网址:http://msdn.microsoft.com

php读取/写入mssql乱码!

最近在做PHP抓取,PHP+MSSQL的搭配..呵.呵..网上找了找资料好少..看来是个大冷门呐.东看一下.西看一下.总算让我给鼓捣点东西出来..(最近会陆续会有PHP+MSSQL方面的资料出来哦:>).进入正题. PHP抓取是抓取出来了..抓取新闻标题和新闻内容.一开始是把抓取到的标题和内容直接显示出来没有什么问题 php.ini中default_charset 项设置是这样的:default_charset = "utf-8" 但是光抓取下来得存入数据库呐. 这时候出问题了.

Laravel踩坑汇总(一)

[TOC] 大文件上传问题 问题 最近在做视频部分的功能,在上传视频的时候,遇到了一些问题,有文件上传信息,但是某些信息获取不到,比如: 123456789 public function store($request){ if($request->has('videos')){ $videos = $request->file('videos'); foreach($videos as $file){ dd($file->getRealPath(),$file->getPathN

php mssql 中文各种乱码

1 查询输出时乱码  (SELECT ) 因为MSSQL 数据库一般都是 GBK 编码,所以在php页面中加入 header('Content-Type:text/html; charset=GBK'); 也可以使用 以下语句查看: 然后按对应表设置字符集. SELECT COLLATIONPROPERTY('Chinese_PRC_90_CI_AI', 'CodePage') 返回值对应表: 936 简体中文GBK 950 繁体中文BIG5 437 美国/加拿大英语 932 日文 949 韩文

如何解决MSSQL中文数据乱码问题

今天遇到了在数据库中直接写SQL语句,语句中包含中文,但是数据库的表里是包含"?" 的乱码. 我程序代码中,调试时得到的SQL不是乱码,在控制台中也不是乱码.但是在数据库中却出现了乱码. 当用MSSQL控制台去插入或更改中文数据时,中文字符可能会被显示成问号(??),以下提供2种解决办法: 1.在SQL里加上'N'强制转换编码   a.把所有字符字段都改成无符号类型,如:nchar,ntext,nvarchar    b.用查询分析器进行数据管理,在中文数据前加N,强制转换编码,如:i

php 设置mssql编码 解决乱码问题 mssql_connect charset Utf8

当用mssql存储数据采用 nchar 或 nvarchar  存储时 , 由于nchar 或 nvarcha 不支持 UCS-2 ( 即 SQLServer 不会按照 UTF-8 格式存储) 导致PHP 获取后会出现乱码 具体表现为:  汉字会变成???? 这种 而且没有提供类似 mysql_query("set charset utf8"); 这种方法. 解决方案: 1.直接修改 php.ini文件 ,直接修改 mssql.charset 为 mssql.charset = &qu

解决mssql for linux 中文乱码问题

什么叫一波未平一波又起,这就是,好不容易安装完成了,在用的时候居然出现了乱码,很是头疼,但还是解决了这个蛋疼的问题,在windows中使用mssql这么久,从来没出现过中文乱码的情况,具体原因是出现在SQL Server的安装配置上,默认安装时,系统默认的排序规则时拉丁文的排序规则,在安装过程中从来没注意过,但在CentOS 中怎么配置我就不得而知了,我只能在windows的mssql 客户端进行配置了,解决方法: 创建数据库时,将数据库的排序规则指定为中文简体(Chinese_PRC_CS_A

php连mssql中文乱码问题

我在将一个aspx+mssql的系统做成php+mssql的系统时,感觉架构大不一样,aspx多是aspx页面+aspx.cs后台协同开发,多用可视化空间开发,而php我则选用了smarty模板,感觉很好用,一切都在自己掌握之中,开源的就是好.但是在期间使用mssql extention的时候遇到了中文乱码问题: mssql默认使用GB2312编码,而php使用UTF-8,能Google到的解决方案很少,但是却很简单: 简单的说就是使用iconv函数就ok了: 1.执行sql语句前,使用$sql

Linux下用freetds连接mssql中文乱码的问题【参考1】

由于工作原因我们需要通过php访问我们以前的Sql Server 2005数据,所以就有了这篇文章的诞生.废话就少说了,做程序设计的最不喜欢兜圈子了.用简介步骤说明问题,往下看.系统:   Linux数据库: Sql Server 2005 1.下载FreeTDS  官方网站:http://www.freetds.org  2.安装FreeTDS# tar zxvf freetds-current.tgz(解压)# ./configure --prefix=/usr/local/freetds