Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PHP向sql server插入丹麦字符_Php_Sql Server_Sql Server 2008 R2 - Fatal编程技术网

从PHP向sql server插入丹麦字符

从PHP向sql server插入丹麦字符,php,sql-server,sql-server-2008-r2,Php,Sql Server,Sql Server 2008 R2,在sql server中将丹麦字符插入到具有nvarchar数据类型的字段时,丹麦字符的格式不正确。示例:brændstof转换为brÃndstof。当直接从sql server查询窗口访问时,它工作正常。我尝试对该字段进行不同的排序(拉丁文、丹麦文、格陵兰文、丹麦文、挪威文等),是否有办法做到这一点。我正在使用。请使用与字符等效的字符,而不是字面上的“æ”,并查看发生了什么。就像这里的猜测一样: 我认为问题出在PHP部分,而不是MySQL部分(我了解到您对该字段使用了一些专门针对丹麦语的编码)

在sql server中将丹麦字符插入到具有nvarchar数据类型的字段时,丹麦字符的格式不正确。示例:brændstof转换为brÃndstof。当直接从sql server查询窗口访问时,它工作正常。我尝试对该字段进行不同的排序(拉丁文、丹麦文、格陵兰文、丹麦文、挪威文等),是否有办法做到这一点。我正在使用。请使用与字符等效的字符,而不是字面上的“æ”,并查看发生了什么。

就像这里的猜测一样:

我认为问题出在PHP部分,而不是MySQL部分(我了解到您对该字段使用了一些专门针对丹麦语的编码)。甚至更早。有没有试过在HTML页面上加一个“ä”(真正的字符,而不是
ä;
)呢?它被转换成其他一些字符,比如你问题中的例子。因此,我在这里看到两种可能性:

  • 用户输入的URl编码不正确
  • PHP使用了一些不支持丹麦字符的编码
或者可能是3和4(可能性较小):

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

    • 我现在不知道丹麦字母是什么,但我在SQL SERVER中遇到了亚美尼亚字母的问题。我这样解决了这个问题

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

      我使用了一种变通方法,在插入表中之前对丹麦字符串进行html编码,在显示刚刚解码回来的字符串时,这听起来像是一个常规的utf8/unicode问题。我自己只使用MySQL,但我相信您也可以在MySQL中指定一行的排序规则(字符集)。吹毛求疵,但“排序规则”与字符集不同。请澄清这句模糊但关键的句子:`当它直接从sql server查询窗口中运行时,它工作正常`