2011-04-11 78 views
0

在與DB的交談時再次出現字符集問題:)SQL Server 2000字符集問題

我有兩個運行Zend Server的環境。這些Bot使用mssql擴展與SQL Server 2000通信。在擴展設置中,它們都沒有給予字符集任何價值。對於其中的一個而言,對於另一個則以錯誤的編碼返回數據。

當這個數據被插入到MySQL數據庫中並且它與SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF6m' for column 'cust_lastname' at row 1一起尖叫時,問題就會被注意到。

我試圖使用SET NAMES utf8來獲得SQL Server連接來返回正確的數據,但它抱怨並說NAMES is not a recognized SET statement。環顧大多數人甚至建議使用這個,但它似乎不是SQL Server 2000的一部分:)

那麼,我該怎麼辦?我如何在不擺弄SQL Server數據庫/表格的情況下,告訴它以UTF-8編碼格式向我發送數據?

編輯:

一些詳細信息...

  • SQL Server使用Finnish_Swedish_CI_AS整理
  • MySQL有在UTF-8格式的每個表和使用utf8_unicode_ci

回答

0

我沒有找到一個好的解決方案,最終在我的應用程序中轉換爲utf8並從中轉換。如果這封裝在一個類中,它不會謎碼。但是,一種真正告訴SQL服務器在通信過程中使用哪種編碼的方法會更好。