我正试图通过php在SQL Server数据库中存储一些数据.

问题是特殊字符不能正确转换.我的应用程序的字符集是iso-8859-1

在插入之前手动转换数据没有帮助,似乎有一些

运行SQL查询‘set char_Convert off’也无济于事.

有谁知道我怎么才能让这个管用吗?

EDIT:我也try 了ini_set(‘mssql.charset’,‘windows-1252’);,但是那个也没有结果.

推荐答案

客户端字符集是必需的,但还不够:

ini_set('mssql.charset', 'UTF-8');

我花了两天时间研究如何通过PHP将UTF-8数据(来自Web表单)插入到MSSQL2008中.我看到很多地方都说你不能,你需要先转换成UCS2(就像Cypher的解决方案建议的那样). 在Windows上,SQLSRV据说是一个很好的解决方案,但我不能try ,因为我是在MacOSX上开发的.

然而,FreeTDS手册(PHP MSSQL在OSX上使用的手册)建议在开始引号前添加一个字母"N":

mssql_query("INSERT INTO table (nvarcharField) VALUES (N'űáúőűá球最大的采购批发平台')", +xon);

根据本文的讨论,N字符告诉服务器转换为Unicode.

Database相关问答推荐

在GO中减少LevelDB数据库大小的问题(Levigo)

华为Appcube中的对象字段类型

在 bindParam 中使用 LIKE 进行 MySQL PDO 查询

需要未提供的参数@ID?

MongoDB和Redis有什么区别?

什么是hibernate annotated类中使用的 catalog?

我可以为 dapper-dot-net 映射指定数据库列名称吗?

在 phpmyadmin 中导入时如何跳过重复记录

将 `tsv` 文件插入 postgresql 数据库

ER图中的一对多关系

B+ 树相对于 BST 的优势?

South migration error: NoMigrations exception for django.contrib.auth

postgresql 在 where 子句中使用 json 子元素

在 SQL Server 2005 中将数据库从一个驱动器移动到另一个驱动器的正确方法是什么?

使用脚本语言动态数据库

如何使用 Entity Framework CF 在父级之前删除子实体?

如何将特定的、可变的 order订单保存到数据库中

MongoDB 是否支持浮点类型?

设计数据库来保存不同的元数据信息

您是否应该将自引用表列设为外键?