如何将TCVN字符串转换为Unicode字符串

时间:2014-06-05 15:15:08

标签: c#

我尝试将TCVN字符串转换为Unicode字符串,但没有成功。这是我的代码,可以支持将TCVN字符串转换为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 static 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]];
        string rstr = new string(chars);
        return rstr;
    }
}

上面的代码不可靠,它给出了错误的TCVN字符串转换

说明:

我尝试使用上面的代码转换TCVN字符串

  • TCVN字符串:“C§ngh̉tØnhBμRa-ṾngTμu”

  • 要求的结果:“CĐnyềtỉnhBàRịa - VũngTàu”

  • 错误的结果:“CnnỷtỉnhBàRa-ṾngTàu”。

调用函数代码示例:

//Original string
var tcvnStr = "C§  ngh̉ tØnh Bµ R̃a- Ṿng Tµu";
var unicStr = Converter.TCVN3ToUnicode(tcvnStr);
//The result of unicStr should be "CĐ nghề tỉnh Bà Rịa - Vũng Tàu"

问题: 上面的代码给出了将TCVN字符串转换为Unicode字符串的错误结果。

要求:

我需要你的帮助才能将TCVN字符串转换为Unicode字符串。

此致 Dung Tri

0 个答案:

没有答案