2011-01-22 106 views
2

我試圖將此值存儲在SQL Server的一個列中:şşışışış。SQL Server 2005-字符編碼問題

列數據類型爲nvarchar(1000)和所述插入語句看起來像

N'țșșțșțșțșîăâ./,șllkoăîâ=' 

但是內部的數據仍然顯示像向上:????????? IAA ./ ,?llkoaîâ=

任何想法,我可以嘗試嗎?

編輯

我才意識到,我已經在數據庫中更改的數據類型,但LINQ2SQL映射保持與VARCHAR而不是NVARCHAR。

這就是造成這個問題的原因 - 我只是在嘗試手動插入後纔看到。

謝謝。

回答

4
CREATE TABLE Test (test nvarchar(1000)) 
INSERT Test (test) VALUES (N'țșșțșțșțșîăâ./,șllkoăîâ=') 

-- SSMS query pane = correct results 
SELECT * FROM Test 

現在,右鍵單擊表對象資源管理器,「編輯前200行」或「SE LECT TOP 1000 rows「在我的SSMS 2008中給出了正確的結果

接下來,沒有N前綴。數據被打破,按您的問題

INSERT Test (test) VALUES ('țșșțșțșțșîăâ./,șllkoăîâ=') 
SELECT * FROM Test 
--gives ?????????îaâ./,?llkoaîâ= 

所以,這表明SSMS和SQL行爲完全按照廣告:請告訴我們確切的代碼(或方法)您使用插入數據

0

你是如何將這個添加到你的表?在Mgmt Studio?你用什麼陳述?

如果你有NVARCHAR列,你必須使用N'...'語法與領先N前綴這個工作:如果省略N前綴

INSERT INTO dbo.YourTable(someColumn) 
VALUES(N'țșșțșțșțșîăâ') 

,管理Studio將其轉換爲無統一VARCHAR暫時....