2016-09-26 22 views
3

我有一个连接到SQL Server数据库的Lucee上运行的Coldfusion应用程序。为什么某些字符没有从CFQUERY正确注入SQL Server?

当我直接在SQL Server Manager中运行以下查询:

UPDATE article 
SET content='20m²' 
WHERE id=3159 

列被填充罚款20平方米。

然而,它只是运行这个CFML页面中运行时:20m²

UPDATE文章 SET含量= '20平方米' WHERE ID = 3159

列获取与填充

与此相似,此附加字符出现。这也与其他一些特殊字符一起出现,但大多数都很好。这是用jdbc连接器的一些配置吗?我没有看到上述两者之间应该有什么区别?将值放在cfqueryparam标记中没有区别。

感谢

+0

什么版本的CF?如果小于CF11,你可能想看看'cfprocessingdirective'。 – Beginner

+1

它是什么样的专栏?它是NVarchar?如果处理指令不起作用,您可以尝试使用unicode语法'content =N'20m²''...还要确保使用“cfqueryparam”来绑定变量。 –

+1

您的文件是在Windows1252或Utf8中编码的?服务器是否期望文件具有其他编码? –

回答

3

如果它是硬编码的,我相信你会想一定要保存为Unicode UTF-8的文件。

enter image description here

另外,还要确保您的JVM参数将处理为好。 管理员>服务器设置> Java和JVM。 将“-Dfile.encoding = UTF-8”添加到参数中。

enter image description here

+0

由于涉及到一个数据库查询,所以它不仅仅是改变页面编码;-)很可能硬编码只是用于测试。所以问题的另一方面是如何确保将正确的值传输到数据库*和*正确存储。详细说明整个周期将是一件好事... – Leigh

+0

消除过程 - 确保具有“20m²”的文件正在保存并正确回读。这可能是事情的数据库结束工作正常。 – Jules

相关问题