加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php MsSql server时遇到的中文编码问题

发布时间:2020-05-24 23:14:41 所属栏目:PHP 来源:互联网
导读:朋友要用sugarcrm的php读取Ms sql server的中文资料,因为其原始资料是Access 数据库,导到mysql不太方便。

</tr>
<?php
while (!$rs->EOF) {
echo '<tr>';
echo '<td>'. $rs->Fields['id']->Value .'</td>';
echo '<td>'. $rs->Fields['name']->Value .'</td>';
echo '</tr>';
$rs->MoveNext();
}
?>
</table>
<?php
// 释放资源
$rs->Close();
$conn->Close();
$rs = null;
$conn = null; ?>



查询结果(与使用sql server managment studio效果一样):

其中,23 ID的编码是GB2312的,其余是utf-8的。

而使用odbc则跟使用mssql_connect效果一样。
代码如下:



//print("The next line generates an error.
");
//printaline("PLEASE?");
//print("This will not be displayed due to the above error.");
?> //$conn = odbc_pconnect("myodbc","sa","cvttdev",0);
//$connstr="DRIVER=Microsoft Access Driver (*.mdb);DBQ=".realpath("mydb.mdb");
$connstr="Driver={SQL Server};Server={192.168.22.40};Database=sugarcrm_db;UID=sa;PWD=123456;";
$connid=odbc_connect($connstr,SQL_CUR_USE_ODBC );
$query=odbc_do($connid,"select id,name from accounts");
?>

因为odbc 也没有设置内码页的地方。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

但导到sqlserver 2005后,发现其中文编码只支持GB 和 UCS-2(unicode 16),所以直接在数据库中查询显示正确,但使用php的utf9编码显示时则全是乱码。
找了大量资料,什么使用mssql,freetds,odbc,ado或直接每次查询和写入都进行转码等建议都有。不过实际测试中,发现Ado这种方法是好用的。
代码如下:
<div class="codetitle"><a style="CURSOR: pointer" data="18435" class="copybut" id="copybut18435" onclick="doCopy('code18435')"> 代码如下:<div class="codebody" id="code18435">


<meta http-equiv="Content-Type" content="text/html; charset=utf-8">


<?php
//print("The next line generates an error.
");
//printaline("PLEASE?");
//print("This will not be displayed due to the above error.");
?> <?php $conn = new COM("ADODB.Connection",NULL,CP_UTF8) or die("Cannot start ADO");
//access 数据库的打开方式
//$conn->Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=$db");
//$conn->Open("DRIVER={Microsoft Access Driver (.mdb)}; DBQ=$db");
$conn->Open("Driver={SQL Server};Server={192.168.22.40};Database=sugarcrm_db;UID=sa;PWD=123456;") ;
// 执行查询并输出数据
$rs = $conn->Execute('SELECT
FROM accounts') or die ("error query");
?>
<table border="1">
<tr>

IDTitle
    推荐文章
      热点阅读