2015-11-24 73 views
0

我有代碼將字符串從「ISO-8859-1」轉換爲「windows-1256」字符集。例如,當我設置p_word = "ÓíÏÉ Úáí ÇáØíÈ它會成功轉換它。 但是,當我設置p_word = row.Cells[1].Text當我在標籤中顯示它,它等於ÓíÏÉ Úáí ÇáØíÈ它不起作用,任何人都可以幫忙嗎? 這是我的代碼:我的代碼不會轉換字符串row.cells,但轉換字符串值

protected string convert_to_readable(string p_word) 
{ 
    string unreadable = p_word; 
    Encoding Unkown_lang = Encoding.GetEncoding("ISO-8859-1"); 
    Encoding Arabic_lang = Encoding.GetEncoding("windows-1256"); 
    byte[] Unkown_langBytes = Unkown_lang.GetBytes(unreadable); 
    string Arabic_langWord = Arabic_lang.GetString(Unkown_langBytes); 
    return Arabic_langWord; 
} 
+2

如果你已經*得到*一個字符串,可能已經太晚了。沒有將字符串「from」ISO-8859-1轉換爲字符串......字符串已經是一系列UTF-16編碼單元。相反,你應該解決'p_word'來自哪裏。 (我也強烈建議你開始遵循.NET命名約定,以使其他人更容易閱讀你的代碼。) –

+0

我將p_word作爲參數值傳遞,例如convert_to_readable(「ÓíÏÉÚáíÇáØíÈ」)工作正常,但要說字符串x = row.Cells [1] .Text;然後convert_to_readable(x)不起作用,, – MaJiD

+0

「不起作用」並沒有告訴我們什麼關於輸入是什麼或輸出是什麼。這聽起來像問題是'row.Cells [1] .Text'不適合開始 - 但你真的,不應該使用你提供的代碼。這是一個徹頭徹尾的壞主意。 –

回答

0

我解決我的問題,通過執行以下操作: 1的添加到Web.config文件 到?xml version="1.0"編碼=「視窗1256」,將看起來像?xml version="1.0" encoding="windows-1256"? 2 - 增加我的網頁,進入gridview數據字段,HtmlEncodeFormatString="false" HtmlEncode="false" 並且在此之後一切正常,,