2014-12-02 74 views
2

H,我有這個字符串,我從一個htm文件如何UTF8轉換爲字符串在C#中

String s = "%u05d9%u05e8%u05d5%u05e9%u05dc%u05d9%u05dd" 

這是UTF8編碼值希伯來文字符了,我想將其轉換爲一個真正的字符串,我可以寫入文件並具有含義(不僅僅是字符集的代碼值)。

我試圖做到這一點,但它不工作 -

byte[] bytes = Encoding.UTF8.GetBytes(s); 
addr = Encoding.UTF8.GetString(bytes); 
+2

@huMptyduMpty:可能是重複的,但肯定不是這個問題的。你鏈接的是Base64編碼,你可以從提供給這個問題和你鏈接的問題的答案中看到,解決方案是完全不同的....所以它們必須是不同的問題 – musefan 2014-12-02 14:14:20

回答

3

原始字符串可能是UTF-8編碼的,但是這是無關緊要的,因爲你有什麼權利現在是一個URL編碼的字符串。您可以使用HttpUtility.UrlDecode對其進行解碼:

System.Web.HttpUtility.UrlDecode("%u05d9%u05e8%u05d5%u05e9%u05dc%u05d9%u05dd") 

回報ירושלים

+0

我試圖使用System.Web,但我根本沒有HttpUtility。 在MSDN中它說 - 「要編碼或解碼Web應用程序之外的值,請使用WebUtility類。」 所以我試過 - System.Net.WebUtility.UrlDecode(s); 像maruthu chandrasekaran建議,但它仍然沒有做任何事情。 它返回了我原來的字符串 - %u05d9%u05e8%u05d5%u05e9%u05dc%u05d9%u05dd – 2014-12-03 06:16:07

+0

你是對的,WebUtility.UrlDecode作品顯然不同於HttpUtility.UrlDecode。您仍然可以在Web應用程序之外使用HttpUtility。你所要做的就是引用System.Web.dll。 – Dirk 2014-12-03 07:08:07

+0

我添加了參考,它的工作原理!謝謝! :) – 2014-12-03 08:07:53

0

嘗試

System.Net.WebUtility.UrlDecode(s); 
+0

我試過 - System.Net.WebUtility。 UrlDecode(一個或多個);但它仍然沒有做任何事情。它返回我我的原始字符串 - %u05d9%u05e8%u05d5%u05e9%u05dc%u05d9%u05dd – 2014-12-03 06:18:36