从PHP插入丹麦语字符到sql server

时间:2013-03-07 13:21:45

标签: php sql-server sql-server-2008-r2

将sans server中的丹麦字符插入具有nvarchar数据类型的字段时,丹麦语字符会出错。示例:brændstof转换为brÃ| endstof。当它直接来自sql server查询窗口时它正常工作。我尝试给该字段提供不同的排序规则(Latin1_Genaral,Danish_Greenlandic_100_CI_AI,Danish_Norwegian_CI_AI等)是否有办法实现这一目标。我正在使用Microsoft Drivers 3.0 for PHP for SQL Server。请帮忙

4 个答案:

答案 0 :(得分:2)

而不是文字'æ',使用它的CHAR等价物,看看会发生什么。

答案 1 :(得分:2)

我现在不知道丹麦的信件,但我在SQL SERVER中遇到了亚美尼亚语的问题。我解决了这个问题。

insert into sometable(field) values( N'myArmenianText' );

答案 2 :(得分:2)

我使用了一个解决方法,只是在插入表格之前用html编码丹麦字符串,并且在显示刚刚解码的时候

答案 3 :(得分:1)

就像猜测一样:

我认为这个问题出现在PHP部分,而不是MySQL部分(我读过你专门为丹麦语使用了那个字段的编码)。甚至更早。曾经试图在HTML页面上放置一个'ä'(真正的角色,而不是ä)?它会转换为其他一些字符,例如您问题中的示例。所以我在这里看到两种可能性:

  • 用户输入错误地是URl编码的
  • PHP使用一些不支持丹麦字符的编码。

或许3& 4(不太可能):

  • char错误地到达客户端(如果你将一些字符重新发送到服务器,我不知道是否属于这种情况)
  • 用户代理转换字符,从而将错误的字符发送到服务器(或显示错误,这意味着正确的字符在服务器上,但您无法使用浏览器查看它们)