преобразовать шестнадцатеричные байты UTF-8 в шестнадцатеричный код - PullRequest
5 голосов
/ 11 октября 2011

как я могу конвертировать
Шестнадцатеричные байты UTF-8 -E0 A4 A4 в шестнадцатеричный код - 0924

ref: http://www.ltg.ed.ac.uk/~richard/utf-8.cgi?input=e0+a4+a4&mode=bytes

Мне это нужно, потому что, когда я читаю данные Unicode в c #, он принимает их как однобайтовую последовательность и отображает 3 символа вместо 1, но мне нужно 3 байтовой последовательности (чтение 3 байта и отображение одного символа), я пробовал много решений но не получил результат.

Если я могу отобразить или сохранить 3-байтовый символ последовательности utf-8, тогда мне не нужно преобразование.

senario выглядит так:

    string str=getivrresult();

в строке У меня есть слово с каждым символом в виде 3-байтовой последовательности utf-8.

Отредактировано:

             string str="त";
             //i want it as "त" in str.

    Character                                   त
    Character name                              DEVANAGARI LETTER TA
    Hex code point                              0924
    Decimal code point                          2340
    Hex UTF-8 bytes                             E0 A4 A4
    Octal UTF-8 bytes                           340 244 244
    UTF-8 bytes as Latin-1 characters bytes     à ¤ ¤  

Спасибо.

Ответы [ 2 ]

6 голосов
/ 11 октября 2011

Используйте метод GetString в классе Encoding:

byte[] data = { 0xE0, 0xA4, 0xA4 };
string str = Encoding.UTF8.GetString(data);

Строка теперь содержит один символ с кодом символа 0x924.

0 голосов
/ 12 октября 2011
        //utf-8 Single Byte Sequence input
        string str = "त";
        int i = 0;
        byte[] data=new byte[3];

        foreach (char c in str)
        {
            string tmpstr = String.Format("{0:x2}", (int)c);
            data[i] = Convert.ToByte(int.Parse(tmpstr, System.Globalization.NumberStyles.HexNumber));
            i++;
        }


        //utf-8 3-Byte Sequence Output now stp contains "त".
        string stp = Encoding.UTF8.GetString(data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...