通过php从sql server检索阿拉伯名称时的排序错误

时间:2013-09-07 08:22:06

标签: php sqlsrv

我有一个SQL服务器数据库,我想使用PHP从中检索信息,我使用此代码将阿拉伯名称显示为问号,如下图所示。

<?php
  $serverName = "10.0.0.5";
  $connectionInfo = array( "Database"=>"academy", "UID"=>"sa", "PWD"=>"123");

   /* Connect using Windows Authentication. */
   $conn = sqlsrv_connect( $serverName, $connectionInfo);


   $sql = 'SELECT * FROM users;';
   $stmt = sqlsrv_query( $conn, $sql);

   echo '<pre>';
   while($r = sqlsrv_fetch_array($stmt)){
         print_r($r);
   }
?>

Arabic names appear as question marks

那么,如果我的DB排序规则是Arabic_CI_CS,我怎么能让它显示为阿拉伯语呢?我试图更改浏览器编码并使用不同的字符集放置元标记但是徒劳无功!

2 个答案:

答案 0 :(得分:0)

我认为你的数据库连接和获取数据的每件事都很顺利。您只需在网页中设置字符集,就像在网页中一样

对于您的数据库,您必须使字段字符代码为“UTF8-general-ci”

为您的网页尝试添加元标记...

&lt; meta http-equiv =“Content-Type”content =“text / html; charset = UTF-8”/&gt;

它应该工作得很好..

对我来说效果很好......

答案 1 :(得分:0)

解决方案是

$connectionInfo = array( "Database"=>"SomeDB", "UID"=>"SomeUser", "PWD"=>"SomePWD",'CharacterSet'=>'UTF-8');

解决方案是添加CharacterSet = utf-8