Chuyển mã TCVN3 sang mã Unicode bằng C#

Trong lúc lập trình không phải lúc nào mọi dữ liệu đầu vào đều được chuẩn hóa như người lập trình mong muốn. Đôi lúc chúng ta phải tự chuẩn hóa dữ liệu cho mình. Và nhu cầu chuyển bảng mã là một trong các nhu cầu đó. Cụ thể class Converter bên dưới sẽ giúp bạn chuyển từ mã TCVN3 sang mã Unicode:

class Converter
    {
        private static char[] tcvnchars = {
            'µ', '¸', '¶', '·', '¹', 
            '¨', '»', '¾', '¼', '½', 'Æ', 
            '©', 'Ç', 'Ê', 'È', 'É', 'Ë', 
            '®', 'Ì', 'Ð', 'Î', 'Ï', 'Ñ', 
            'ª', 'Ò', 'Õ', 'Ó', 'Ô', 'Ö', 
            '×', 'Ý', 'Ø', 'Ü', 'Þ', 
            'ß', 'ã', 'á', 'â', 'ä', 
            '«', 'å', 'è', 'æ', 'ç', 'é', 
            '¬', 'ê', 'í', 'ë', 'ì', 'î', 
            'ï', 'ó', 'ñ', 'ò', 'ô', 
            '­', 'õ', 'ø', 'ö', '÷', 'ù', 
            'ú', 'ý', 'û', 'ü', 'þ', 
            '¡', '¢', '§', '£', '¤', '¥', '¦'};
        private static char[] unichars = {
            'à', 'á', 'ả', 'ã', 'ạ', 
            'ă', 'ằ', 'ắ', 'ẳ', 'ẵ', 'ặ', 
            'â', 'ầ', 'ấ', 'ẩ', 'ẫ', 'ậ', 
            'đ', 'è', 'é', 'ẻ', 'ẽ', 'ẹ', 
            'ê', 'ề', 'ế', 'ể', 'ễ', 'ệ', 
            'ì', 'í', 'ỉ', 'ĩ', 'ị', 
            'ò', 'ó', 'ỏ', 'õ', 'ọ', 
            'ô', 'ồ', 'ố', 'ổ', 'ỗ', 'ộ', 
            'ơ', 'ờ', 'ớ', 'ở', 'ỡ', 'ợ', 
            'ù', 'ú', 'ủ', 'ũ', 'ụ', 
            'ư', 'ừ', 'ứ', 'ử', 'ữ', 'ự', 
            'ỳ', 'ý', 'ỷ', 'ỹ', 'ỵ', 
            'Ă', 'Â', 'Đ', 'Ê', 'Ô', 'Ơ', 'Ư'};
        private static char[] convertTable;
        static Converter() 
        {
            convertTable = new char[256];
            for (int i = 0; i < 256; i++)
                convertTable[i] = (char)i;
            for (int i = 0; i < tcvnchars.Length; i++)
                convertTable[tcvnchars[i]] = unichars[i];
        }
        public string TCVN3ToUnicode(string value) 
        {
            char[] chars = value.ToCharArray();
            for (int i = 0; i < chars.Length; i++)
                if (chars[i] < (char)256)
                    chars[i] = convertTable[chars[i]];
            return new string(chars);
        }
    }

Hy vọng hữu ích với bạn!

Nosomovo

Chia sẻ lên
WEB5k - Thiết kế website giá rẻ chuẩn SEO

Hãy bình luận đầu tiên

Để lại một phản hồi