首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将带有特殊字符的表单内容正确地从PHP/Linux应用程序传递到SQL Server nvarchar字段?

如何将带有特殊字符的表单内容正确地从PHP/Linux应用程序传递到SQL Server nvarchar字段?
EN

Stack Overflow用户
提问于 2016-08-24 09:18:51
回答 1查看 490关注 0票数 0

我在Ubuntu/PHP7/nginx堆栈上有一个web应用程序,用于数据报告目的,将数据传递到SQL Server2008数据库。我使用php7.0-sybase PDO包连接到MSSQL。我使用对存储过程的预准备语句调用来插入数据。SQL Server端的字段是各种长度的nvarchar字段。问题: web应用程序中带有特殊字符(换行符、重音字母等)的表单内容在插入数据库后显示为所有乱码(中文风格)字符。我怀疑这是一个编码问题,但我还不能确切地指出这个问题是什么,因为我在这个领域没有知识。

如果我使用T-SQL测试直接在SQL Server上执行插入操作,则带有特殊字符的文本可以正确显示。

如果我在从web应用程序发送文本之前转储文本的编码,它会告诉我它是ASCII,这应该与UTF-8兼容,对吗?我还尝试在发送之前显式地将其转换为UTF-8。

是否需要在db驱动程序的配置中进行设置?或者可能驱动程序只是不知道如何正确处理这些数据?

需要注意的是,我们已经尝试将这种类型的数据发送到varchar字段,并且文本显示正确,因此这是nvarchar数据类型的一个特别问题。

EN

回答 1

Stack Overflow用户

发布于 2016-08-24 15:06:30

到目前为止,SQL Server不支持存储数据的UTF-8。nvarchar数据类型对应于UTF-16。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39112994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档