在sql查询和表名中使用带重音符的字符

时间:2012-06-06 08:04:22

标签: sql-server odbc diacritics

我正在做一些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)。

  • * 已编辑以澄清更多*

2 个答案:

答案 0 :(得分:0)

尝试

$q="Select * from DatabaseTable where col1= N'Réseau'"

答案 1 :(得分:0)

尝试在您的网页中设置您的区域设置,我发现设置我的所有特殊字符:

setlocale (LC_ALL, 'nl_BE');