我正在做一些php& SQL Server 2005在一个数据库中,在表名,列名和字段中都带有重音符号(é,è,à)。不幸的是,我不是这个数据库的所有者/创建者,但我同意所有者必须被打耳光:)。
我使用ODBC驱动程序连接到SQL Server odbc_connect($dsn,$user,$password)
。
我的问题是每个带重音的字段都无法识别。 例如:尽管有7000个字段名为“Réseau”
$query="Select * from dbo.Table where col1= 'Réseau'"
给出0个结果No rows found
同样的事情:
$query="Select * from [dbo].[Tablé]
给出一个sql错误:
Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Object name 'dbo.Tablé' not valid., SQL state S0002 in SQLExecDirect in...
而且,遗憾的是,我在网上发现的提示都没有,例如:
'Réseau',Réseau
,[Réseau],COLLATE SQL_Latin1_General_Cp437_CI_AI / French_CI_AS ...
有关更多信息,我正在使用charset UTF-8,我的数据库整理是French_CI_AS。 以上所有查询都完美适用于Access或查询工具(使用ODBC)。
答案 0 :(得分:0)
尝试
$q="Select * from DatabaseTable where col1= N'Réseau'"
答案 1 :(得分:0)
尝试在您的网页中设置您的区域设置,我发现设置我的所有特殊字符:
setlocale (LC_ALL, 'nl_BE');