标签:contents sqlsrv comments echo stmt linux PHP MSSQL conn
<?php $serverName = "192.168.2.251,2434"; $connectionInfo = array( "Database"=>"jfdf40", "UID"=>"sa", "PWD"=>"932kj"); $conn = sqlsrv_connect( $serverName, $connectionInfo ); if( $conn === false ) { die( print_r( sqlsrv_errors(), true)); } //$stmt = sqlsrv_query( $conn, 'SET TEXTSIZE 80000' ); $sql = "SELECT msg FROM test"; $stmt = sqlsrv_query( $conn, $sql ); if( $stmt === false) { die( print_r( sqlsrv_errors(), true) ); } while ( sqlsrv_fetch( $stmt)) { $comments = sqlsrv_get_field( $stmt, 0, SQLSRV_PHPTYPE_STREAM(SQLSRV_ENC_BINARY)); //echo get_resource_type ($comments); $contents = ''; while (!feof($comments)) { $contents .= fread($comments, 8192); } $s = (mb_convert_encoding(($contents), 'utf-8', 'gbk')); echo $s . PHP_EOL; echo mb_strlen($s); echo "\n"; }
mssql 一般在我们中国默认排序规则都是 Chinese_PRC_CI_AS
查询用,得到代码页是963=BGK
sELECT DATABASEPROPERTYEX('databasename', 'Collation') SQLCollation; SELECT COLLATIONPROPERTY('Chinese_PRC_CI_AS', 'CodePage')
php在linux 下连接mssql 读取中文会有问题,这里采用流读取的方式以2进制形式读回来。再把gbk转成utf-8就可以了
标签:contents,sqlsrv,comments,echo,stmt,linux,PHP,MSSQL,conn 来源: https://www.cnblogs.com/BTag/p/15826181.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。