sql中的特殊字符无法正确显示

时间:2014-06-02 15:03:34

标签: sql character-encoding

我有一个存储在tsql数据库中的字符串(期望的字符串应显示"a'string")但是当我将其加载到我的Web浏览器中时,我看到所有特殊字符的"a'string"都相同。编码也在数据库中保存为"a'string"

我认为我的网页编码与我的数据库不同,这就是导致问题的原因。

跑完后

SELECT SERVERPROPERTY('Collation')

我看到编码设置为SQL_Latin1_General_CP1_CI_AS而我已经放置了

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

在我的布局页面的头部。

我非常确信这不是正确的类型,并且正在寻找关于如何解决这个问题的一些指导。

我无法改变我的SQL服务器的任何内容,这是非常锁定和只读的。

2 个答案:

答案 0 :(得分:2)

这不是您的SQL问题,很可能您的服务器端代码正在使用htmlentities将特殊字符转换为HTML实体。不确定您使用的语言,例如PHP,您可以使用html_entity_decode正确显示它。

$str = "a'string";
echo htmlentities($str,ENT_QUOTES);                                //OUTPUT a&#039;string
echo html_entity_decode(htmlentities($str,ENT_QUOTES),ENT_QUOTES); //OUTPUT a'string

答案 1 :(得分:0)

您的数据库能够双字节,这不是问题。您似乎正在进行安全措施 - 单引号被转义/解码,因此它不会作为单引号(这是SQL的字符串分隔符)进入数据库执行。

why "&#39;" is not getting converted to single quotes while using server.htmldecode()?