8 / 8 / 1
Регистрация: 19.04.2012
Сообщений: 71
|
||||||||||||||||
1 | ||||||||||||||||
Преобразование int-->byte-->char || string09.01.2016, 09:01. Показов 10608. Ответов 6
Метки нет (Все метки)
Немного запутался... Прошу распутать.
Есть код, который сохраняет значения Int в файл.
Достаю из файла следующим образом:
Русские буквы - символом ?, прочие символы отображаются всякими рогаликами. пробовал менять исходную кодировку на ASCII, Unicode = не прокатило. Пробовал делать так:
Как правильно произвести преобразование, чтобы русские символы отображались корректно? Добавлено через 9 минут Полагаю, что ошибка кроется в самих кодировках, т.к. например русская буква И в UTF-8 имеет представление: 208 152, а моему скрипту на это до лампочки, т.к. он сохраняет 208 и 152 отдельно...
0
|
09.01.2016, 09:01 | |
Ответы с готовыми решениями:
6
Преобразование string --> byte[] --> int[] Чтобы универсальный метод принимал только: byte, int, string, char Преобразование char* из библиотеки C++ в byte[] C# Преобразование из String в byte[] |
716 / 473 / 258
Регистрация: 19.12.2014
Сообщений: 1,801
|
|||||||||||
09.01.2016, 09:09 | 2 | ||||||||||
Юникод никак не может быть байтом...
Так что:
1
|
8 / 8 / 1
Регистрация: 19.04.2012
Сообщений: 71
|
|||||||||||
09.01.2016, 09:28 [ТС] | 3 | ||||||||||
В моем случае данный метод не подходит...
Обязательное условие - перевод String в int, которое я выполняю так:
Т.е. как-то обрабатывать два значения int, вместо одного, если первый Int >208 Как можно реализовать?
0
|
716 / 473 / 258
Регистрация: 19.12.2014
Сообщений: 1,801
|
|
09.01.2016, 11:13 | 4 |
В чем не подходит то?
У вас изначально неверные данные. Русские буквы не могут в UTF-8 иметь код из 3 цифр. Далее вы начинаете опять какой то бред писать, переводя строку в байты и перебирая по одному. При том что в UTF-8 у символа длинна не 1 байт. Или это уже другая задача? Вы бы определились что хотите...
1
|
8 / 8 / 1
Регистрация: 19.04.2012
Сообщений: 71
|
|
09.01.2016, 11:57 [ТС] | 5 |
Да, исходные данные не корректны, не скопировалось полностью.
В общем есть string, содержащий русско-английские символы (вперемешку). Мне нужно преобразовать string в int. (Бред не бред - заказчик сказал нужно) Чтобы это сделать есть только один способ: перегнать строку в массив byte, а затем в массив int. Знаете другой способ? Далее нужно вывести каждый int на экран. И с этим проблем нет. Потом требуется обратить процесс обратно: из int получить int[], чтобы затем получить byte[], затем string, т.о. восстановив исходную строку. Проблема в том, что англ.символы в utf-8 представляется одним десятичным числом, а русские представляются двумя десятичными символами (208 145 == Б) и обратно это дело не декодируется, т.к. при преобразовании алгоритм считает, что 208 -- это один символ, а 145 - другой символ. Мне нужно побороть только эту проблему.
0
|
09.01.2016, 12:11 | 6 | |||||
shirase,
1
|
8 / 8 / 1
Регистрация: 19.04.2012
Сообщений: 71
|
|
09.01.2016, 12:29 [ТС] | 7 |
Спасибо HectorPrima, kypiwindy.
С вашей помощью разобрался
0
|
09.01.2016, 12:29 | |
09.01.2016, 12:29 | |
Помогаю со студенческими работами здесь
7
Преобразование byte в string Осуществить преобразование IEnumerable<string[]> to byte[] Преобразование типов string в byte и в Hex Преобразование char в int Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |