在Microsoft驱动程序中使用德语字符作为SQL Server的PHP
希望一切都很好。我有一个MS Sql数据库,我想在PHP中使用。我的PHP版本是5.4,所以我已经在PHP中安装了PHP驱动程序和Sql Server'php_sqlsrv_54_ts.dll'。 Beow是我的代码:在Microsoft驱动程序中使用德语字符作为SQL Server的PHP
$serverName = "Myserver";
$connectionInfo = array("Database"=>"database", "UID"=>"userid", "PWD"=>"password");
$conn = sqlsrv_connect($serverName, $connectionInfo);
if($conn === false) {
die(print_r(sqlsrv_errors(), true));
}
$sql = "select * from AVE_Stamm WHERE Strasse='Friesenstraße 20'";
$stmt = sqlsrv_query($conn, $sql);
if($stmt === false) {
die(print_r(sqlsrv_errors(), true));
}
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
echo $row['Firma'].", ".$row['Strasse']."<br />";
}
sqlsrv_free_stmt($stmt);
我现在面临的问题是,当我用德语元音像O,A,U,SS在where子句中,查询不返回我任何数据。但没有,我得到的数据。请让我知道如何解决这个问题。
Regards
当连接SQL服务器,始终将编码设置为UTF -8。另外,将脚本保存为UTF-8。
MSDN例如设置连接编码:http://msdn.microsoft.com/en-us/library/cc626307.aspx
或者另一个问题:http://www.johnro.net/2012/07/25/php-sqlsrv-problems-with-utf-8-values-set-your-characterset-option/
解决了我的问题。 – 2014-09-19 08:42:15
您应该在为数据库搜索创建表时指定排序规则。 作为本地修订,现在,你可以更改有关表 核对(或仅其"value"
柱)"utf8_bin"
,它会工作:)
当我从SQL Server Management Studio查询相同的查询时,它工作正常。 – 2014-09-19 08:33:27
看到它总是取决于您使用SQL查询的数据库。所以我以为你在Mysql中使用php,而在MYSQL中,你可以通过修改“utf8_bin”来解决这个问题,它会读取任何不同语言的字符。 – 2014-09-19 08:35:13
你试过[UTF-8](http://en.wikipedia.org/wiki/UTF-8)? – Jonast92 2014-09-19 08:28:10
Thansks Jonast92为您的答复。是的,我有,但仍然没有结果。 – 2014-09-19 08:30:36