2011-10-24 209 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