2015-04-30 56 views
1

我如何轉換我的輸入值我怎麼能一個HTML文本轉換爲UTF-8與C#

伊達€™的時間活動本週末。瀏覽並查看您身邊發生的事件。玩得開心! LoudNProudLive系列:'Hors Makers'特別版LoudNProudLive系列呈現了一款名爲Tolu(項目名人堂),Simi和Oyinkanade的「Makers」特別版。日期:週四,2015年4月30日時間:晚上8時地點:ELIAS(大洋灣購物中心),[…]

在UTF-8人類可讀的句子。我嘗試了下面的代碼,這就是我得到的。 -

這是本週末活動的時間。瀏覽並查看您身邊發生的事件。玩得開心! LoudNProudLive系列: HartMakers 特別版LoudNProudLive系列推出了一款名爲Tolu(項目名人堂),Simi和Oyinkanade的「HIT Makers」特別版。日期:週四,2015年4月30日時間:晚上8時地點:ELIAS(大洋灣購物中心),[...]

//convert html to utf-8 
    private static string cleanUpCodes(string value) 
    { 
     //convert from iso to utf-8 
     Encoding iso = Encoding.GetEncoding("windows-1252"); 
     Encoding utf8 = Encoding.UTF8; 
     byte[] isoBytes = iso.GetBytes(value); 
     byte[] utf8Bytes = Encoding.Convert(utf8, iso, isoBytes); 
     string msg = utf8.GetString(utf8Bytes); 

     //convert to real html 
     msg = HttpUtility.HtmlDecode(msg); 

     return msg; 
    } 
+0

如果源編碼確實是windows-1252,那應該是對的。是什麼讓你認爲源文檔是用windows-1252編碼的?我可以猜測它的外觀是UTF-16LE,但最好的就是找出它是什麼。 – Martijn

回答

1

想必這已經使用了錯誤的編碼,因此怪異的文本解碼。在這種情況下,你不想編碼之間Convert,你只是希望得到您的字節回來,有另一個去:

例如:

var bytes = Encoding.Default.GetBytes(value); 
var result = Encoding.UTF8.GetString(bytes); 

這給了這一點,這是非常接近:

這是本週末活動的時間。瀏覽並查看您身邊發生的事件。玩得開心! LoudNProudLive系列:'Hit Makers'特別版LoudNProudLive系列推出了名爲Tolu(項目名人堂),Simi和Oyinkanade的'Hit Makers'特別版。日期:星期四2015年4月30日工作時間:8時地點:ELIAS(大洋灣購物中心),[]

我傾向於去的問題的根源,但 - 你是怎麼得到這個串?

+0

我從rss feed得到它 – emekslondon

+0

你能提供一個鏈接並展示你如何閱讀它嗎?如果通過改變這種方式無法解決這個問題,我不會感到驚訝,而不必對它進行後期處理。 –

相關問題