我有一个存储在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服务器的任何内容,这是非常锁定和只读的。
答案 0 :(得分:2)
这不是您的SQL问题,很可能您的服务器端代码正在使用htmlentities将特殊字符转换为HTML实体。不确定您使用的语言,例如PHP,您可以使用html_entity_decode正确显示它。
$str = "a'string";
echo htmlentities($str,ENT_QUOTES); //OUTPUT a'string
echo html_entity_decode(htmlentities($str,ENT_QUOTES),ENT_QUOTES); //OUTPUT a'string
答案 1 :(得分:0)
您的数据库能够双字节,这不是问题。您似乎正在进行安全措施 - 单引号被转义/解码,因此它不会作为单引号(这是SQL的字符串分隔符)进入数据库执行。
why "'" is not getting converted to single quotes while using server.htmldecode()?