Chi tiết hàm này như sau:
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace DaMi.Utilities
{
public class clsGiaiMaCodeHtmlToVietNam
{
public static string DecodeHtml(string sCodedString)
{
StringBuilder sResult = new StringBuilder(sCodedString);
ArrayList arlChuviet = new ArrayList();
arlChuviet.AddRange(new string[2] { "Á", "Á" });
arlChuviet.AddRange(new string[2] { "á", "á" });
arlChuviet.AddRange(new string[2] { "À", "À" });
arlChuviet.AddRange(new string[2] { "à", "à" });
arlChuviet.AddRange(new string[2] { "Ã", "Ã" });
arlChuviet.AddRange(new string[2] { "ã", "ã" });
arlChuviet.AddRange(new string[2] { "?", "Ả" });
arlChuviet.AddRange(new string[2] { "?", "ả" });
arlChuviet.AddRange(new string[2] { "?", "Ạ" });
arlChuviet.AddRange(new string[2] { "?", "ạ" });
arlChuviet.AddRange(new string[2] { "Â", "Â" });
arlChuviet.AddRange(new string[2] { "â", "â" });
arlChuviet.AddRange(new string[2] { "?", "Ấ" });
arlChuviet.AddRange(new string[2] { "?", "ấ" });
arlChuviet.AddRange(new string[2] { "?", "Ầ" });
arlChuviet.AddRange(new string[2] { "?", "ầ" });
arlChuviet.AddRange(new string[2] { "?", "Ẫ" });
arlChuviet.AddRange(new string[2] { "?", "ẫ" });
arlChuviet.AddRange(new string[2] { "?", "Ẩ" });
arlChuviet.AddRange(new string[2] { "?", "ẩ" });
arlChuviet.AddRange(new string[2] { "?", "Ậ" });
arlChuviet.AddRange(new string[2] { "?", "ậ" });
arlChuviet.AddRange(new string[2] { "A", "Ă" });
arlChuviet.AddRange(new string[2] { "a", "ă" });
arlChuviet.AddRange(new string[2] { "?", "Ắ" });
arlChuviet.AddRange(new string[2] { "?", "ắ" });
arlChuviet.AddRange(new string[2] { "?", "Ằ" });
arlChuviet.AddRange(new string[2] { "?", "ằ" });
arlChuviet.AddRange(new string[2] { "?", "Ẵ" });
arlChuviet.AddRange(new string[2] { "?", "ẵ" });
arlChuviet.AddRange(new string[2] { "?", "Ẳ" });
arlChuviet.AddRange(new string[2] { "?", "ẳ" });
arlChuviet.AddRange(new string[2] { "?", "Ặ" });
arlChuviet.AddRange(new string[2] { "?", "ặ" });
arlChuviet.AddRange(new string[2] { "Ð", "Đ" });
arlChuviet.AddRange(new string[2] { "d", "đ" });
arlChuviet.AddRange(new string[2] { "É", "É" });
arlChuviet.AddRange(new string[2] { "é", "é" });
arlChuviet.AddRange(new string[2] { "È", "È" });
arlChuviet.AddRange(new string[2] { "è", "è" });
arlChuviet.AddRange(new string[2] { "?", "Ẽ" });
arlChuviet.AddRange(new string[2] { "?", "ẽ" });
arlChuviet.AddRange(new string[2] { "?", "Ẻ" });
arlChuviet.AddRange(new string[2] { "?", "ẻ" });
arlChuviet.AddRange(new string[2] { "?", "Ẹ" });
arlChuviet.AddRange(new string[2] { "?", "ẹ" });
arlChuviet.AddRange(new string[2] { "Ê", "Ê" });
arlChuviet.AddRange(new string[2] { "ê", "ê" });
arlChuviet.AddRange(new string[2] { "?", "Ế" });
arlChuviet.AddRange(new string[2] { "?", "ế" });
arlChuviet.AddRange(new string[2] { "?", "Ề" });
arlChuviet.AddRange(new string[2] { "?", "ề" });
arlChuviet.AddRange(new string[2] { "?", "Ễ" });
arlChuviet.AddRange(new string[2] { "?", "ễ" });
arlChuviet.AddRange(new string[2] { "?", "Ể" });
arlChuviet.AddRange(new string[2] { "?", "ể" });
arlChuviet.AddRange(new string[2] { "?", "Ệ" });
arlChuviet.AddRange(new string[2] { "?", "ệ" });
arlChuviet.AddRange(new string[2] { "Í", "Í" });
arlChuviet.AddRange(new string[2] { "í", "í" });
arlChuviet.AddRange(new string[2] { "Ì", "Ì" });
arlChuviet.AddRange(new string[2] { "ì", "ì" });
arlChuviet.AddRange(new string[2] { "I", "Ĩ" });
arlChuviet.AddRange(new string[2] { "i", "ĩ" });
arlChuviet.AddRange(new string[2] { "?", "Ỉ" });
arlChuviet.AddRange(new string[2] { "?", "ỉ" });
arlChuviet.AddRange(new string[2] { "?", "Ị" });
arlChuviet.AddRange(new string[2] { "?", "ị" });
arlChuviet.AddRange(new string[2] { "Ó", "Ó" });
arlChuviet.AddRange(new string[2] { "ó", "ó" });
arlChuviet.AddRange(new string[2] { "Ò", "Ò" });
arlChuviet.AddRange(new string[2] { "ò", "ò" });
arlChuviet.AddRange(new string[2] { "Õ", "Õ" });
arlChuviet.AddRange(new string[2] { "õ", "õ" });
arlChuviet.AddRange(new string[2] { "?", "Ỏ" });
arlChuviet.AddRange(new string[2] { "?", "ỏ" });
arlChuviet.AddRange(new string[2] { "?", "Ọ" });
arlChuviet.AddRange(new string[2] { "?", "ọ" });
arlChuviet.AddRange(new string[2] { "Ô", "Ô" });
arlChuviet.AddRange(new string[2] { "ô", "ô" });
arlChuviet.AddRange(new string[2] { "?", "Ố" });
arlChuviet.AddRange(new string[2] { "?", "ố" });
arlChuviet.AddRange(new string[2] { "?", "Ồ" });
arlChuviet.AddRange(new string[2] { "?", "ồ" });
arlChuviet.AddRange(new string[2] { "?", "Ỗ" });
arlChuviet.AddRange(new string[2] { "?", "ỗ" });
arlChuviet.AddRange(new string[2] { "?", "Ổ" });
arlChuviet.AddRange(new string[2] { "?", "ổ" });
arlChuviet.AddRange(new string[2] { "?", "Ộ" });
arlChuviet.AddRange(new string[2] { "?", "ộ" });
arlChuviet.AddRange(new string[2] { "O", "Ơ" });
arlChuviet.AddRange(new string[2] { "o", "ơ" });
arlChuviet.AddRange(new string[2] { "?", "Ớ" });
arlChuviet.AddRange(new string[2] { "?", "ớ" });
arlChuviet.AddRange(new string[2] { "?", "Ờ" });
arlChuviet.AddRange(new string[2] { "?", "ờ" });
arlChuviet.AddRange(new string[2] { "?", "Ỡ" });
arlChuviet.AddRange(new string[2] { "?", "ỡ" });
arlChuviet.AddRange(new string[2] { "?", "Ở" });
arlChuviet.AddRange(new string[2] { "?", "ở" });
arlChuviet.AddRange(new string[2] { "?", "Ợ" });
arlChuviet.AddRange(new string[2] { "?", "ợ" });
arlChuviet.AddRange(new string[2] { "Ú", "Ú" });
arlChuviet.AddRange(new string[2] { "ú", "ú" });
arlChuviet.AddRange(new string[2] { "Ù", "Ù" });
arlChuviet.AddRange(new string[2] { "ù", "ù" });
arlChuviet.AddRange(new string[2] { "U", "Ũ" });
arlChuviet.AddRange(new string[2] { "u", "ũ" });
arlChuviet.AddRange(new string[2] { "?", "Ủ" });
arlChuviet.AddRange(new string[2] { "?", "ủ" });
arlChuviet.AddRange(new string[2] { "?", "Ụ" });
arlChuviet.AddRange(new string[2] { "?", "ụ" });
arlChuviet.AddRange(new string[2] { "U", "Ư" });
arlChuviet.AddRange(new string[2] { "u", "ư" });
arlChuviet.AddRange(new string[2] { "?", "Ứ" });
arlChuviet.AddRange(new string[2] { "?", "ứ" });
arlChuviet.AddRange(new string[2] { "?", "Ừ" });
arlChuviet.AddRange(new string[2] { "?", "ừ" });
arlChuviet.AddRange(new string[2] { "?", "Ữ" });
arlChuviet.AddRange(new string[2] { "?", "ữ" });
arlChuviet.AddRange(new string[2] { "?", "Ử" });
arlChuviet.AddRange(new string[2] { "?", "ử" });
arlChuviet.AddRange(new string[2] { "?", "Ự" });
arlChuviet.AddRange(new string[2] { "?", "ự" });
arlChuviet.AddRange(new string[2] { "Ý", "Ý" });
arlChuviet.AddRange(new string[2] { "ý", "ý" });
arlChuviet.AddRange(new string[2] { "?", "Ỳ" });
arlChuviet.AddRange(new string[2] { "?", "ỳ" });
arlChuviet.AddRange(new string[2] { "?", "Ỹ" });
arlChuviet.AddRange(new string[2] { "?", "ỹ" });
arlChuviet.AddRange(new string[2] { "?", "Ỷ" });
arlChuviet.AddRange(new string[2] { "?", "ỷ" });
arlChuviet.AddRange(new string[2] { "?", "Ỵ" });
arlChuviet.AddRange(new string[2] { "?", "ỵ" });
int j;
for (int i = 0; i < sCodedString.Length; i++)
{
string sTemp = string.Empty;
bool isBegin = true;
if (sCodedString[i] == '&' && sCodedString[i + 1] == '#')
{
j = i;
while (j < sCodedString.Length && isBegin == true)
{
sTemp = sTemp + sCodedString[j].ToString();
if (sCodedString[j] == ';')
{
isBegin = false;
}
j++;
}
if (!string.IsNullOrEmpty(sTemp))
{
int index;
index = arlChuviet.IndexOf(sTemp, 0);
string sNewValue = arlChuviet[index - 1].ToString();
sResult.Replace(sTemp, sNewValue);
}
}
}
return sResult.ToString();
}
}
}