【问题标题】:greek characters sql server doesnt show in php希腊字符sql server不显示在php中
【发布时间】:2018-05-31 17:27:21
【问题描述】:

我的服务器数据库有一个带有排序规则的表:greek_ci_ai 和问题是希腊字符显示为问号(????) 我试过 header("Content-Type: text/html; charset=iso-8859-7")<meta charset="utf-8" /> 但问题仍然存在,我不知道如何解决它

【问题讨论】:

  • 如果在结果字符串上使用utf8_encode($string) 会发生什么?
  • 另外,您确定这些值存储为nvarchar 而不是varchar。返回值的查询是什么?
  • 首先,字符串实际存储为什么字符集,您希望它是什么样的?其次,发布bin2hex($problem_string_here);,以便我们检查数据。第三,您可能应该阅读以下内容:stackoverflow.com/questions/279170/utf-8-all-the-way-through
  • 我在 html 中有一个输入 type='text' 以使用 php post 在数据库中插入一些值,查询是一个简单的 Select * from table1 with sqlsrv $sql = "SELECT * FROM JobLocations"; $stmt = sqlsrv_query($connection,$sql);提前谢谢你,因为我不熟悉编码
  • 数据库中的值也是 nvarchar,我尝试了 echo mb_detect_encoding($sql);结果是ASCII

标签: php sql-server html


【解决方案1】:

您可以尝试编辑您的 connectionInfo 以包含“CharacterSet”=>“UTF-8”,如下所示:

$serverName = "localhost";
$connectionInfo = array("Database"=>"DBName", 
                        "UID"=>"UserName", 
                        "PWD"=>"Password", 
                        "CharacterSet"=>"UTF-8");

$con = sqlsrv_connect($serverName, $connectionInfo);

if ($con === false) {
    echo "Connection could not be established.<br />";
    die(print_r(sqlsrv_errors(), true));
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    • 1970-01-01
    相关资源
    最近更新 更多