从PHP向sql server插入丹麦字符
在sql server中将丹麦字符插入到具有nvarchar数据类型的字段时,丹麦字符的格式不正确。示例:brændstof转换为brÃndstof。当直接从sql server查询窗口访问时,它工作正常。我尝试对该字段进行不同的排序(拉丁文、丹麦文、格陵兰文、丹麦文、挪威文等),是否有办法做到这一点。我正在使用。请使用与字符等效的字符,而不是字面上的“æ”,并查看发生了什么。就像这里的猜测一样: 我认为问题出在PHP部分,而不是MySQL部分(我了解到您对该字段使用了一些专门针对丹麦语的编码)。甚至更早。有没有试过在HTML页面上加一个“ä”(真正的字符,而不是从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部分(我了解到您对该字段使用了一些专门针对丹麦语的编码)
ä;
)呢?它被转换成其他一些字符,比如你问题中的例子。因此,我在这里看到两种可能性:
- 用户输入的URl编码不正确
- PHP使用了一些不支持丹麦字符的编码
- 字符错误地到达客户端(如果您将一些字符重新发送到服务器,我不知道是否如此)
- 用户代理转换字符,从而将格式错误的字符发送到服务器(或显示错误,这意味着服务器上有正确的字符,但您无法使用浏览器查看它们)
- 我现在不知道丹麦字母是什么,但我在SQL SERVER中遇到了亚美尼亚字母的问题。我这样解决了这个问题
insert into sometable(field) values( N'myArmenianText' );
我使用了一种变通方法,在插入表中之前对丹麦字符串进行html编码,在显示刚刚解码回来的字符串时,这听起来像是一个常规的utf8/unicode问题。我自己只使用MySQL,但我相信您也可以在MySQL中指定一行的排序规则(字符集)。吹毛求疵,但“排序规则”与字符集不同。请澄清这句模糊但关键的句子:`当它直接从sql server查询窗口中运行时,它工作正常`