2017-05-16 26 views
3

我有一個數據導入過程,用於將數據從csv文件導入到SQL Server中的表中。如何將SQL Server表中的ANSII字符修復爲UTF-8

我注意到一些列包含一些重音字符。

比如我注意到在數據庫表中的以下文字

中央美術學院‰

我在記事本++一個新的文件,更改編碼爲ANSI文件並將其保存上述文本。

然後更改編碼設置爲UTF-8

結果是:

CAFÉ

我不知道出了什麼問題。但是有什麼方法可以解決數據庫表中的這個問題嗎?

我想顯示數據庫中的表,而不是中央美術學院一樣CAFɉ

因爲當被顯示在網站上此列,即使編碼是UTF-*網頁上仍顯示字符串作爲中央美術學院‰代替CAFÉ。

我還檢查了列的排序規則類型:

SQL_Latin1_General_CP1_CI_AS

感謝,

+0

您應該在導入過程中修復它,這是SSIS包。 – Wendy

回答

1

我有同樣的問題,結束使用集成工具到MySQL導出表並運行以下查詢:

UPDATE myTable Set thefield= CONVERT(BINARY CONVERT(thefieldUSING latin1) USING utf8); 

這是我能解決這個問題的唯一方法。

+1

不錯,簡潔直接。 – mtness

1

我有一個類似的問題,我通過將文件(在我的情況下是一個SQL腳本)從UTF-8轉換爲ANSI來解決它,因爲SQL Server無法識別UTF-8編碼。它適用於我,因爲我只需要ANSI字符。

0

我一個解決方案想出了這個從這個webisite創建需要的字符和實際字符之間的映射表http://www.i18nqa.com/debug/utf8-debug.html

一旦我有那麼映射表也加入到我原來的表,其中像實際字符和替換那些與預期的人物。

UPDATE rd 
SET rd.Name = REPLACE(Name, m.Actual,m.Expected) 
FROM RawData rd 
INNER JOIN dbo.UtfMapping m ON rd.Name LIKE '%'+m.Actual+'%' 
相關問題