2011-10-24 208 views
1

我使用php应用程序来管理Microsoft SQL Server数据库。该应用程序安装到unix并使用FreeTDS。虽然我没有任何问题来读写nvarchar(n)的数据,但我无法正确处理UTF-8的nvarchar(max)数据。对于freetds的FreeTDS和nvarchar(最大)数据

配置文件:

host = x 
    port = 1433 
    tds version = 7.0 
    client charset = UTF-8 

是否有为了处理correclty为nvarchar(max)数据freetds的任何其他选择吗?

谢谢!

+2

什么是实际的错误信息?建议编辑您的问题以包含此内容。哪个版本的freetds? –

+0

它处理varchar(max)? FreeTDS文档甚至可以解决“最大”长度字符串问题?它可能不支持。 –

回答

2

你需要TDS 7.2,增加了对SQL Server 2005和MAX类型的支持,看到Choosing a TDS protocol version

TDS:7.2包含用于VARCHAR(最大值)的支持,VARBINARY(最大值),XML数据类型和MARS [一个]。

+0

我试过tds版本= 7.2,没有运气(使用版本0.82的freetds)。另一个问题与freetds日志有关,所以我不能报告任何错误日志。无论如何,我想知道是否有其他人有同样的问题。 – Dimitris

+0

你能否提供一些更具体的细节是什么意思'不能正确处理UTF-8的nvarchar(max)数据? –

+0

是的。例如,当试图添加一些希腊文本,即INSERT INTO TABLE_NAME VALUES(N'αβγ')时,应用程序将垃圾字符存储到数据库(a??)。 – Dimitris