为何在插入sql server时ODBC不支持法语重音词?

时间:2019-05-29 13:44:37

标签: php sql-server odbc

我正在使用php在odbc的sql服务器中插入一行,但是当我在sql server内插入时,法语口音(é,â,ô,î,è,...)存在此问题。 php也能很好地读取它,但是当使用odbc插入时,它被读为特殊字符

示例:

$sujet = 'BEM relevé bancaire';

$sql ="INSERT into matrice values('$groupe','$sujet','$nom','$ref','$ref','$next')";

odbc_exec($connection, $sql);

输出:

  
    

ID:542

    groupe:Groupe_name

    CI:BEMrelevé©bancaire //THE PROBLEM

    名词:姓名

    情感引用:1

    restAffect:1

    nextAffect:0

  

How can I make it reads the french accents ?

可能的重复项无法回答我的问题

1 个答案:

答案 0 :(得分:0)

我需要查看表的架构以提供明确的答案。 char和varchar的SQL Server数据类型不支持双字节字符集。确保您要插入的表列的数据类型为nchar或nvarchar。

您可以使用具有多个列的简单表进行测试。将相同的值插入A列和B列将返回不同的结果。

Create table test (A varchar(20), B nvarchar(20))
Insert into test (A,B) values ('â',N'â')

如果这不能解决问题,那么我认为客户端代码页不同于sql服务器代码页。您可以在此处了解更多信息:You cannot correctly translate character data from a client to a server by using the SQL Server ODBC driver if the client code page differs from the server code page