Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2012, 18:01   #1
welikoiwanenko1
 
Регистрация: 16.11.2010
Сообщений: 3
По умолчанию кодировка из utf-8 в юникод

Доброго времени суток. Пытаюсь писать приложение для Windows Phone, но это не суть важно. Посылаю запрос на сервер, мне приходит ответ в utf-8. Нашел в просторах интернета:
Код:
public static string Utf8ToUnicode(string utf8)
{
       return Encoding.Unicode.GetString(
            Encoding.Convert(
            Encoding.UTF8,
            Encoding.Unicode,
            Encoding.UTF8.GetBytes(utf8)));
}

Компилятор ругается:" System.Text.Encoding.GetString(byte[]) недоступен из-за его уровня защиты"


Как быть? Помогите пожалуйста!..
welikoiwanenko1 вне форума Ответить с цитированием
Старый 26.02.2012, 18:08   #2
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

всегда почему-то думал что utf8 это и есть юникод в котором символ кодируется 8 битами
rUs_LAN вне форума Ответить с цитированием
Старый 26.02.2012, 18:13   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
всегда почему-то думал что utf8 это и есть юникод в котором символ кодируется 8 битами
про юникод верно.
а вот про 8 бит нет.
длина одного символа переменна.
от 1 до 4-8 байт(не помню сколько точно).

а тот самый Unicode это помоему UTF16LE.(а точнее только UCS-2)


ТС, а вам просто стоит сразу читать строку в нужной кодировке.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.02.2012, 18:20   #4
welikoiwanenko1
 
Регистрация: 16.11.2010
Сообщений: 3
По умолчанию

Все-таки интересно... А в чем проблема предложенного мной кода?
welikoiwanenko1 вне форума Ответить с цитированием
Старый 05.03.2015, 19:18   #5
gardist
Новичок
Джуниор
 
Регистрация: 05.03.2015
Сообщений: 1
По умолчанию

Проблема в том, что метод не публичный, поэтому ругается.
Байты конвертировать в строку можно след. образом:

Код:
                var s2 = BitConverter.ToString(sByteStr);
                String[] tempAry = s2.Split('-');
                char[] aCharArr = new char[tempAry.Length];
                byte[] decBytes2 = new byte[tempAry.Length];
                for (int i = 0; i < tempAry.Length; i++)
                {
                    decBytes2[i] = Convert.ToByte(tempAry[i], 16);
                    aCharArr[i] = Convert.ToChar(decBytes2[i]);
                }
                
                string sPlainText = new string(aCharArr);
sByteStr - входящая строка с байтами.
sPlainText - результирующая строка с текстом.
gardist вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
idHTTP.post и кодировка UTF-8 AndreyK Работа с сетью в Delphi 3 26.03.2013 22:26
кодировка (cp866 to UTF-8) )Игнат( Помощь студентам 1 07.04.2011 16:07
Кодировка по умалчанию UTF-8 Bockarevs HTML и CSS 7 11.11.2010 17:16
кодировка UTF-8 nimf Общие вопросы Delphi 4 18.01.2009 19:25
UTF-8 кодировка OrdJONY Общие вопросы Delphi 2 23.03.2008 16:56