2009-10-03 72 views
1

在我的應用程序中提取一段文字後的方法,我可能會用這樣的字符串結束:C#/。NET轉換的字符代碼等效字符

"More kitchen supplies for the people" 

爲明文將是:

"More kitchen supplies for the people" 

有沒有在.NET中,我可以使用「進程」串入其明文相當於一個組件/方法?

我可以假設一般的ASCII文本,沒有奇怪的unicode或奇怪的字母。這似乎只是像」,」正常的跡象|等作爲字符代碼提供

編輯:我覺得我應該指出,這是有關.NET的Windows桌面開發Appearantly有方法來做。這對於ASP.NET而已,我不知道像這樣的簡單的操作可以限於特定的.NET平臺

+0

@xOn:感謝您的回覆,但是由於我自己的無知,它似乎並不適用於我的環境。請參閱問題的更新。 – sharkin 2009-10-04 13:27:23

+0

您可以在任何.NET桌面應用程序中使用System.Web程序集。 – x0n 2009-10-05 02:43:58

回答

8

的System.Web.HttpUtility.HtmlDecode方法可以處理這個問題:

(PowerShell的v2示例)

ps> add-type -an system.web 
ps> [system.web.httputility]::HtmlDecode(""") 
" 
ps> 

希望這有助於

-Oisin

+0

我不知道爲什麼,但「HttpUtility」不存在於我的System.Web名稱空間中。查看聯機幫助,它應該是.NET庫的一部分,但示例代碼僅顯示了ASP.NET的示例。 – sharkin 2009-10-04 11:56:13

+0

System.Web.HttpUtility是.NET 2.0 System.Web程序集中的一個類。我很確定它也在1.1。你在用什麼版本? – x0n 2009-10-05 02:45:14

+0

我正在使用.NET 3.5 SP1。根據引用對話框,System.Web程序集是版本2.0。我在System.Web中只有三個類:AspNetHostingPermission,AspNetHostingPermissionAttribute和AspNetHostingPermissionLevel。儘管intellisense我試圖實例化HttpUtility,但我得到:錯誤CS0234:名稱空間'System.Web'中不存在類型或命名空間名稱'HttpUtility'。 – sharkin 2009-10-05 09:49:38

0

如果你知道代碼是ASCII碼,你可以使用下面的每個小& X22數字轉換。

public char Convert(string data) { 
    data = data.SubString(1); // Lose the & 
    var num = Int32.Parse(data, NumberStyles.Hex | NumberStyles.AllowHexSpecifier); 
    var chars = Encoding.ASCII.GetChars(new byte[] { (byte)num }); 
    return chars[0]; 
}