1

我在数据库中使用重音符号(é、è、à)在表名、列名和字段中执行一些 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) 上完美运行。

  • *编辑澄清更多*
4

2 回答 2

0

尝试在您的页面中设置您的语言环境,我发现设置我的语言对所有特殊字符都有帮助:

setlocale (LC_ALL, 'nl_BE');
于 2013-10-02T08:27:19.290 回答
0

尝试

$q="Select * from DatabaseTable where col1= N'Réseau'"
于 2012-06-06T08:25:58.550 回答