我在数据库中使用重音符号(é、è、à)在表名、列名和字段中执行一些 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 ...
有关更多信息,我使用的是字符集 UTF-8,我的数据库整理是 French_CI_AS。以上所有查询都可以在 Access 或 Query Tools (Using ODBC) 上完美运行。
- *编辑澄清更多*