PHP连接MSSQL显示中文时为乱码

  PHP连接MSSQL显示中文时为乱码主要是因为编码问题了,我们只要懂得一对于数据库与页面的编码统一处理就可以解决了,下面一起来看看下文。

  因为一直在使用 windows 下的 PHP 开发,用的是 mysql 数据库,偶尔也会遇到查询记录的乱码,那是因为 php 编码不支持中文进行导致的,直接将其进行编码解码即可解决,所以在 windows 平台下还是比较容易解决的。

  今天在帮一个客户进行 liunx 下维护 mssql 数据库的操作,因站点被攻击的原因,一直无法进行打开站点,折腾了很久,终于连接上mssql了,今天来了尝试下查询,么问题!

  可是出来的记录 中文 显示是?号或者就是一堆黑框框,这是典型的编码不对,于是查看了下php.ini关于mssql的这一块配置,发现有一项配置”mssql.charset”这一项,我配置成 “utf8”,成功解决乱码。

  因为我的程序页面用的是utf8所以配置成这样,如果是GBK/GB2312 就配置长相应的编码就应该能解决,当然遇到这样的问题还是要看相应情况的,这里还是建议如果能修改配置文件尽可能的去修改配置文件,因为这样才能一劳永逸的解决掉问题。

  例子

 代码如下  

$serverName = "127.0.0.1,1433";
$connectionInfo = array( "UID"=>"sa",
"PWD"=>"123456",
"Database"=>"NopCommerce",
"CharacterSet"=>"UTF-8"); // 这一行是重点
$conn = sqlsrv_connect($serverName, $connectionInfo);

  注意事项:

  编码常用的是utf8-general-ci

  不只是表要统一,要统一的总共有四处

  一是:数据库类型,其中包括,数据库,表,字段三处都要统一,可以检查一下

  二是:文件的编码类型,你若用dw或editplus可以查看页面编码,不同需修改

  三是:访问数据库时的设置既set NAMES utf8;

  四是:浏览器显示方式,添加meta属性

  不管用GBK,GB2312,这四处必须统一,看你缺少了哪一步

  用PHP操作MSSQL比在ASP连接MYSQL要简单,所以,当需要MSSQL与MYSQL并存时,用PHP连接MSSQL来操作MYSQL与MSSQL并存比较简单好用.如果是ASP连接MYSQL,需要安装一个MYSQL驱动,默认windows的ODBC没有安装,很遗憾...

  1.在web服务器上至少安装了mssql的客户端

  2.打开php.ini把;extension=php_mssql.dll前面的分号去掉

  有必要话:需要制定extension_dir

  3.推荐使用php<=4.0.9<=5.0.3目前我还没有连接成功过4.010和5.0.3

  4.数据库的连接分页可以到phpe.net上获取到相应的class

时间: 2024-08-02 09:46:31

PHP连接MSSQL显示中文时为乱码的相关文章

解决云手写输入法输入中文时出现乱码

在使用云手写输入法的时候有没有碰到过输入的汉字变成了(图1)中显示的乱码?这个要改怎么解决?在这里就来告诉大家云手写输入法输入中文时出现乱码的解决方法! 图1 右击电脑右下角输入法的图标会出现如(图2)显示的修改框 将(英文): 图2 改回(中文): 图3 然后退出软件,再次运行,应该就不会出现乱码了.

c# FTP客户端用户名为中文时的乱码问题

问题描述 c#使用FtpWebRequest做FTP客户端,如果networkCredential=newNetworkCredential(tbUser.Text,tbPassword.Text);中的用户名为全英文时不会出现问题,但是如果用户名中含有中文的话就会出现乱码,无法登陆FTP服务器,这是为什么啊,求解?而且发送的命令中会有"OPTSuft8on",为什么会出现这条命令啊....求...... 解决方案 解决方案二:自己UP一下,求关注解决方案三:是不是要用utf8,那要要

C# .net中cookie值为中文时的乱码解决方法

一.cookie的名称或子cookie的名称不能为中文,否则无法获得cookie 这个好办,名称不用中文即可 二.cookie的值为中文时候,取cookie的值会出现乱码 解决办法:存取cookie时候先解码和编码 存cookie,进行编码: cookie.Value = HttpUtility.UrlEncode("上海"); 取cookie时候,进行解码:cookieValue = HttpUtility.UrlDecode(cookie.Value); 另外注意: 取子cooki

解决MySQL客户端输出窗口显示中文乱码问题的办法_Mysql

最近发现,在MySQL的dos客户端输出窗口中查询表中的数据时,表中的中文数据都显示成乱码,如下图所示: 上网查了一下原因:之所以会显示乱码,就是因为MySQL客户端输出窗口显示中文时使用的字符编码不对造成的,可以使用如下的命令查看输出窗口使用的字符编码:show variables like 'char%'; 命令执行完成之后显示结果如下所示: 可以看到,现在是使用utf8字符编码来显示中文数据的,但是因为操作系统是中文操作系统,默认使用的字符集是GB2312,所以需要把输出窗口使用的字符编码

IE浏览器与FF浏览器关于Ajax传递参数值为中文时的区别实例分析_AJAX相关

本文实例讲述了IE浏览器与FF浏览器关于Ajax传递参数值为中文时的区别.分享给大家供大家参考,具体如下: 前面介绍了<Javascript基于AJAX回调函数传递参数>,这里主要来分析一下ajax传递中文参数过程中针对不同浏览器的乱码处理方法. Ajax传递参数为中文时出现乱码,我遇到的情况是: 1.我的数据库连接 编码为 GB2312,latin1_swedish_ci 2.php 文件编码格式为 UTF-8,浏览器显示编码为 : UTF-8 3.我的页面显示方式为两种: 一)页面加载时自

图片-在java ee的一个案例中,登录页面时出现乱码,怎么回事呢?

问题描述 在java ee的一个案例中,登录页面时出现乱码,怎么回事呢? 解决方案 检查一下页面的编码是否是gb2312.gbk.utf-8等. 解决方案二: 服务器的编码设置是否也是utf-8? 解决方案三: 一个是工作空间的编码设成utf-8的 还有就是页面的编码格式也要设置成utf-8的试试呢 解决方案四: 写个过滤器也是可以的 解决方案五: 工作空间的编码集设置.项目的编码集设置.jsp页面上的编码集设置.response的contenttype,response的characterEn

完美解决eclipse中导入工程后中文注释出现乱码的问题_unix linux

default encode为UTF-8,显示中文会变成乱码解决方案: Windows- >Pereferences- >Genral->Workspace- >Text   File   Encoding  选项下选择other,可以先尝试系统提供的几个选项,如果不行的话,就手动输入"GBK"即可. 当然,前提是你的系统里得有GBK 字体!

sqlite-android读取手机联系人并在textview中显示名字时中文乱码怎么解决?

问题描述 android读取手机联系人并在textview中显示名字时中文乱码怎么解决? android读取手机联系人并在textview中显示名字时中文乱码怎么解决?从数据库里来的中文的全变成"?"了,其他的正常. 解决方案 new String(lCursor.getBlob(indexName), "UTF-8").replace("", "").replace("r", "");

Python连接mssql数据库乱码(中文变问号)解决方法

python一直对中文支持的不好,最近老遇到编码问题,而且几乎没有通用的方案来解决这个问题,但是对常见的方法都试过之后,发现还是可以解决的,下面总结了常用的支持中文的编码问题(这些方法中可能其中一个就能解决问题,也可能是多个组合). (1).首先,要保证文件的开头要加上编码设置来说明文件的编码  代码如下 复制代码 #encoding=utf-8 (2).然后,在连接数据的连接参数里加上字符集说明查询出的结果的编码,这个不加的后果可能是查询出的汉字字符都是问号  代码如下 复制代码 conn=p