Hàm xử lý các ký tự bị mã hóa khi xem Source HTML của trang web Viết bằng C#
Có những lúc cần xử lý thông tin trên các trang web, nhưng khi thực hiện request thì web server trả về các ký tự bị mã hóa như Á;o: Cha giam cầm, cưỡng hiếp và có 7 con với con g& . Với những trường hợp này mình có thể xử lý bằng các phần mềm như FrontPage để chuyển mã, ngoài ra chúng ta có thể viết 1 hàm để xử lý. Thuật toán thật ra rất đơn giản là chuyển mã thành các ký tự tương ứng giống như thuật toán trong bài viết
Chi tiết hàm này như sau:
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();
}
}
}
Thể Loại
Thủ Thuật Web
Wapmaster
Bình luận và Góp ý
Cảm ơn đã đọc bài viết!
» Không sử dụng những từ ngữ thô tục, vi phạm thuần phong mỹ tục
» Mọi thắc mắc, gợi ý hoặc bình luận xin chia sẻ bên dưới hoặc
Gửi thư
» Hãy viết bằng tiếng Việt có dấu để mọi người có thể đọc hiểu!
» Nếu chèn code hãy mã hóa trước khi chèn vào nhận xét.
Tại đây
Cảm ơn bạn đã để lại nhận xét!