2011-03-04 63 views
1

問:更正數據庫中的文本?

在我的數據庫之一,存在一個varchar字段的值: 經紀人México,Intermediario德Aseguro,S.A。

現在我創建一個新的列作爲nvarchar,並希望接管舊值,正確編碼。

現在兩個問題:

A)
在C#/ VB.NET,我怎樣才能改變México回到正確的值( 「墨」),將其存儲在統一前場(假設我知道正確的源代碼頁)?

B)
有沒有辦法找出代碼頁,如果我不想手動執行它? (好吧,問是免費的,但我想沒有)。

回答

5

你可能想嘗試是這樣的:

string broken = "Brokers México, Intermediario de Aseguro,S.A."; // Get text from database 
byte[] encoded = Encoding.GetEncoding(28591).GetBytes(broken); 
string corrected = Encoding.UTF8.GetString(encoded); 

這實際上取決於它如何被插入 - 這是假設的東西已經採取UTF-8字節,解釋他們作爲ISO-8859- 1字符串,然後將該字符串插入到數據庫中。基本上,代碼執行相反的轉換。

我不知道搞清楚代碼頁 - 我會猜測在ISO-8859-1和UTF-8開始,如果這不起作用,請看一些什麼是錯的例子和正確的版本。