2015-11-26 75 views
2

我有一個SQL表,我試圖返回值作爲字符串。 值應該是像悉尼,墨爾本,馬誇里港等城市名稱SQL NVARCHAR(MAX)返回ASCII和怪異字符而不是文本

但是當我運行一個選擇我要麼得到黑色的結果,或如第一張圖片中詳細說明一些奇怪的倒退L字符。列是

SELECT ctGlobalName FROM Crm.Cities 

enter image description here

然後我用MSSQL的編輯前200行功能,我可以看到城市的名字嘗試一個nvarchar(MAX),而且所有這些奇怪的ASCII字符。

enter image description here

現在我沒有創建數據庫,我只是在其上運行的查詢。我讀過的一些內容表明這是Collat​​ion問題。但是表中的SQL_Latin1_General_CP1_CI_AS與服務器排序規則匹配。

我確定必須有一些我可以添加到我的選擇查詢返回值作爲一個普通的字符串。有沒有什麼我可以做我的選擇查詢返回預期的格式沒有怪異的字符?

回答

1

NVARCHAR數據類型可以存儲Unicode字符,這些字符用於ASCII字符集不支持的語言,即非英語(或相關)語言(如中文或印尼語)。如果您的SQL Server或Windows沒有安裝該語言,那麼您可能會看到數據的奇怪外觀。

另一方面,也可能是更新此表的應用程序剛剛在該列中存儲了錯誤的數據。

無論哪種方式,你可能需要做一些字符串操作來去掉你不想要的字符。

+0

謝謝。是的,最終,我們的開發人員已經存儲了這樣的數據,以便擁有多種翻譯和文化。幸運的是,他們提供了一個函數,可以爲特定文化提取字符串。 – L0ckz0r

相關問題