php MsSql server时遇到的中文编码问题_PHP教程(php mysql 中文乱码)
3
本文将为您提供关于phpMsSqlserver时遇到的中文编码问题_PHP教程的详细介绍,我们还将为您解释phpmysql中文乱码的相关知识,同时,我们还将为您提供关于appservphp5.2.6連
本文将为您提供关于php MsSql server时遇到的中文编码问题_PHP教程的详细介绍,我们还将为您解释php mysql 中文乱码的相关知识,同时,我们还将为您提供关于appserv php 5.2.6 連接遠程 mssql, 問題解決、linux php freetds mssql 2008 簡體 繁體 共存 採用 UTF-8、lnmp 环境里安装 mssql 及 mssql 的 php 扩展、lua 访问 mssql 的驱动(好用的)是哪一个?对 mysql/pgsql 的支持不错,但希望先在 mssql 能用起来的实用信息。
本文目录一览:
php MsSql server时遇到的中文编码问题_PHP教程(php mysql 中文乱码)
但导到sqlserver 2005后,发现其中文编码只支持GB 和 UCS-2(unicode 16),所以直接在数据库中查询显示正确,但使用php的utf9编码显示时则全是乱码。
找了大量资料,什么使用mssql,freetds,odbc,ado或直接每次查询和写入都进行转码等建议都有。不过实际测试中,发现Ado这种方法是好用的。
代码如下:
复制代码 代码如下:
//print("The next line generates an error.
");
//printaline("PLEASE?");
//print("This will not be displayed due to the above error.");
?>
$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");
?>
while (!$rs->EOF) {
echo '''';
echo '''';
echo '''';
echo '''';
$rs->MoveNext();
}
?>
ID |
Title |
''. $rs->Fields[''id'']->Value .'' | ''. $rs->Fields[''name'']->Value .'' |
// 释放资源
$rs->Close();
$conn->Close();
$rs = null;
$conn = null;
?>
查询结果(与使用sql server managment studio效果一样):
ID |
Title |
114b0775-d9b2-db90-fcda-4a2f2cd7cdbd |
鏍紡浼氱ぞ鏈潵鍟嗕簨 629487 |
1d270085-a588-9ea7-584c-4a2f2c8d1a5b |
Fabriqu茅 Interation氓l 79436 |
23 |
中文 |
36ea2575-fe34-61b0-e5ae-4a2f2c791d22 |
Berufskolleg f眉r Elektrotechnik 65790 |
3834261a-fd48-9d4a-be40-4a2f2c5fc256 |
Berufskolleg f眉r Elektrotechnik 529523 |
52c9652c-82c8-ec2b-72ae-4a2f2c3a58d6 |
鏍紡浼氱ぞ鏈潵鍟嗕簨 42138 |
78931a0e-f582-f406-8a56-4a2f2c3741b0 |
But茅e Torique 700010 |
989473f7-6b7b-fed3-12a1-4a2f2c320645 |
A.B.銈便偄銉栥儸銈ゃ兂銈?181212 |
b4579151-55cb-5ae4-a5f1-4a2f2c173b18 |
B眉nde-Mitte 203765 |
d72c42c9-9e1d-b926-d931-4a2f2c2a3100 |
Berufskolleg f眉r Elektrotechnik 27682 |
e97002f1-035f-91d3-4592-4a2f2f780e01 |
zhh |
其中,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,"sa","cvttdev",SQL_CUR_USE_ODBC );
$query=odbc_do($connid,"select id,name from accounts");
?>
while(odbc_fetch_row($query))
{ echo '''';
$name = odbc_result($query,2);
$id=odbc_result($query,1);
echo '''';
echo '''';
echo '''';
}
?>
ID |
Title |
''. $id .'' | ''. $name .'' |
查询结果:
ID |
Title |
114b0775-d9b2-db90-fcda-4a2f2cd7cdbd |
株式会社未来商事 629487 |
1d270085-a588-9ea7-584c-4a2f2c8d1a5b |
Fabriqué Interationål 79436 |
23 |
���� |
36ea2575-fe34-61b0-e5ae-4a2f2c791d22 |
Berufskolleg für Elektrotechnik 65790 |
3834261a-fd48-9d4a-be40-4a2f2c5fc256 |
Berufskolleg für Elektrotechnik 529523 |
52c9652c-82c8-ec2b-72ae-4a2f2c3a58d6 |
株式会社未来商事 42138 |
78931a0e-f582-f406-8a56-4a2f2c3741b0 |
Butée Torique 700010 |
989473f7-6b7b-fed3-12a1-4a2f2c320645 |
A.B.ケアブレイン��?181212 |
b4579151-55cb-5ae4-a5f1-4a2f2c173b18 |
Bünde-Mitte 203765 |
d72c42c9-9e1d-b926-d931-4a2f2c2a3100 |
Berufskolleg für Elektrotechnik 27682 |
e97002f1-035f-91d3-4592-4a2f2f780e01 |
zhh |
因为odbc 也没有设置内码页的地方。
http://www.bkjia.com/PHPjc/320226.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/320226.htmlTechArticle但导到sqlserver 2005后,发现其中文编码只支持GB 和 UCS-2(unicode 16),所以直接在数据库中查询显示正确,但使用php的utf9编码显示时则全是乱...

appserv php 5.2.6 連接遠程 mssql, 問題解決
一開始,在 windows 下根本無法載入 mssql, 後來發現可以連線,結果跑出
Warning: mssql_connect() : message: Login failed for user ''(null)''. Reason: Not associated with a trusted SQL Server connection.
就是什麼未信任連線,
搞了老半天,原來我用的 mssql 本身的認證,根本不用去 NT 認證!!
所以在 php.ini 裡有這麼一行
; Use NT authentication when connecting to the server
mssql.secure_connection = off
答案呼之欲出了!!
改 off 就好了!!
天啊!!
感謝網友
風雲珏悦
http://wyoojune.blog.163.com/blog/static/57093325201081794322977/

linux php freetds mssql 2008 簡體 繁體 共存 採用 UTF-8
一般人都知道 mssql unicode 可以存什麼體,都 OK,
而你可以用 nvarchar 或者 nchar 就可以搞定!要不然數據庫裡,老是出現煩人的問號???
[環境介紹]
CentOS 6.x
(請全部 yum,php php-mssql freetds ....) 以下略
重點來了
請在 /etc/freetds.conf 改一下設定
tds version = 8.0
(不要懷疑,這個我找了好多參考,如果你採用 mssql 2000 以上,就用這個)
text size = 20971520 (這個大小不是重點,如果字數多,請調大)
client charset = UTF-8 (不用說,一定是 UTF-8)
當然可以自訂連線,不過我就省略了!!
好了,接下來的重頭戲,請確定以下幾件事情兒 >>>
一、是否網頁都存成 UTF-8
二、請用 mb_detect_encoding 去檢查,insert or update 的字串,是否為 UTF-8??
三、再檢查 select 出來之後的字串是否還是 UTF-8
OK, 如果你發現以上三點都正確,結果在數據庫裡顯現的還是?的話,那麼你要考慮以下的絕招了!
update [資料表] set [欄位名稱]=N'' 应用推 '' where trade_no=''1111222333'';
對的,就是加個 N 就可以搞定,
我想,我哭了~搞太久了吧!!!!!

lnmp 环境里安装 mssql 及 mssql 的 php 扩展
小活中用到 mssql, 于是在自己 lnmp 环境中安装各 mssql 数据库
步骤如下:
源码编译安装
(1)下载 freetds-stable-0.91 源码:
http://download.csdn.net/download/xhu_eternalcc/7457555(花了 4 积分,没有积分的找我要,微信 zmd1047773569)
上传到根目录下的 download 文件中
(2)编译安装:
# cd /download
# tar zxvf freetds-stable.tgz(解压,)

# cd freetds-0.91
# 编译
# ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib
# make
# make install
参数解释:
安装 freetds 到目录 /usr/local/freetds:--prefix=/usr/local/freetds
支持 MSSQL2000:--with-tdsver=8.0 --enable-msdblib
配置 FreeTds 的库文件
将 freetds 的库文件所在路径配置到 LD_LIBRARY_PATH 参数中:
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/localfreetds/lib/:
或者直接把 etc/bashrc 的文件 bashrc 直接填写上 LD_LIBRARY_PATH=/usr/localfreetds/lib:$LD_LIBRARY_PATH
这么作的目的是为了避免加载 FreeTds 库文件加载不上的情况。


php 里安装 php-mssql 扩展:
cd /download (把php-mssql扩展下载到download目录里)
wget http://cn2.php.net/distributions/php-5.6.30.tar.gz (下载扩展文件,这里要根据你环境中运行的php版本选择对应的扩展版本下载,我这里php是5.6.30的 所以php-mssql扩展下载对应的版本)
tar -zxvf php-5.6.30.tar.gz
cd /php-5.6.30/ext/mssql
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-mssql=/usr/local/freetds/
make && make install
编译安装后的结果 如下图

同时 mssql.so 也在 php 扩展文件下生成 (如下图)

把 extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/mssql.so" 添加到 usr/local/php/lib/php.ini 中

引用扩展后,重启 web 服务,通过 phpinfo 查看扩展 mssql 是否开启成功
重启 php /usr/local/php/sbin/php-fpm reload
重启 nginx 进入 nginx 可执行目录 sbin 下,输入命令./nginx -s reload 即可(或者 /application/nginx/sbin/nginx -s reload)



lua 访问 mssql 的驱动(好用的)是哪一个?对 mysql/pgsql 的支持不错,但希望先在 mssql 能用起来
lua 访问 mssql 的驱动(好用的)是哪一个?
lua 对 mysql/pgsql 的支持不错,但对 mssql 的访问,总是不太顺
而目前希望先在 mssql 能用起来
我们今天的关于php MsSql server时遇到的中文编码问题_PHP教程和php mysql 中文乱码的分享已经告一段落,感谢您的关注,如果您想了解更多关于appserv php 5.2.6 連接遠程 mssql, 問題解決、linux php freetds mssql 2008 簡體 繁體 共存 採用 UTF-8、lnmp 环境里安装 mssql 及 mssql 的 php 扩展、lua 访问 mssql 的驱动(好用的)是哪一个?对 mysql/pgsql 的支持不错,但希望先在 mssql 能用起来的相关信息,请在本站查询。