選單
GSS 技術部落格
在這個園地裡我們將從技術、專案管理、客戶對談面和大家分享我們多年的經驗,希望大家不管是喜歡或是有意見,都可以回饋給我們,讓我們有機會和大家對話並一起成長!
若有任何問題請來信:gss_crm@gss.com.tw
1 分鐘閱讀時間 (261 個字)

[.NET]如何將Unicode的難字,要如何讓 Big5 編碼的HTML檔可以正常顯示?

display

如果我們有 Unicode 的難字,例如「堃」,要如何讓它正常顯示在 Big5編碼的 Html 檔上面呢?

網頁使用 Big5 編碼時,如果要顯示 Unicode 時,就要使用 &#數值; ,所以就找到了「Full HTML Character Encoding in C#」,將unicode的字,轉成 &#數值; ,就可以正常呈現了。

比如說,「亂馬客堃」就會轉成「亂馬客堃」。

以下記錄使用function及使用Extension Methods的方式,


//使用functionpublic static string HtmlEncode(string text){
char[] chars = text.ToCharArray();
StringBuilder result = new StringBuilder(text.Length + (int)(text.Length * 0.1));

foreach (char c in chars)
{
int value = Convert.ToInt32(c);
if (value > 127)
result.AppendFormat("&#{0};", value);
else result.Append(c);
}
return result.ToString();
}

public static string HtmlEncode2(string text){
return string.Join("", text.ToCharArray().Select(c => (int)c > 127 ? "&#" + (int)c + ";" : c.ToString()).ToArray());
}


//使用Extension Methodspublic static class StringExtend
{
public static string ToHtml(this string str) {
return string.Join("", str.ToCharArray().Select(c => (int)c > 127 ? "&#" + (int)c + ";" : c.ToString()).ToArray());
}
}
 
使用方式如下,


//call functionMessageBox.Show(HtmlEncode("亂馬客堃"));
MessageBox.Show(HtmlEncode2("亂馬客堃"));
//use Extension MethodsMessageBox.Show("亂馬客堃".ToHtml());
 
image

參考資料

Full HTML Character Encoding in C#
本文也發表於亂馬客Blog
[.NET]如何讓相同的DLL使用bin目錄的,而不要使用到GAC的呢?
[.NET]為資料做加解密處理-整合篇

相關文章

 

評論

尚無評論
已經注冊了? 這裡登入
Guest
2024/05/31, 週五

Captcha 圖像