Home > php教程 > php手册 > PHP连接MSSQL显示中文时为乱码

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

WBOY
Release: 2016-06-13 09:26:22
Original
793 people have browsed it

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.数据库的连接分页可以到phpe.net上获取到相应的class

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template