Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
opanasa
0 / 0 / 0
Регистрация: 12.12.2015
Сообщений: 15
#1

Кодировка символов (код символа) - Программирование Android

03.08.2016, 16:26. Просмотров 465. Ответов 9
Метки нет (Все метки)

Здравствуйте господа. Такой вопрос. При получении кода символа при помощи
Java
1
(char)'символ'
столкнулся с проблемой. Символ 'в' - русская маленькая буква в и цифра 2 имеют одит и тот же код - 50. Соответственно так же со всеми - а=0=48...и т.п. То есть цифра в кодировке ascii и utf-8 имеет правильный код. С латинскими символами так же все впорядке. С кириллицей - печаль. Подскажите в чем соль.

Оговорюсь также - при использовании
Java
1
(int)'символ'
Все работает прекрасно, по таблице юникода всё правильно. Но мне для простоты нужна именно (char) форма.
Спасибо
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.08.2016, 16:26     Кодировка символов (код символа)
Посмотрите здесь:

Java Android Кодировка символов - Программирование Android
Здравствуйте. Какая кодировка у этих символов? И получится ли ее поменять для строки следующим образом, если нет, то почему и как это...

Чтение русских символов. Отрицательные значения у символов - Программирование Android
Добрый вечер. Считую файл .txt. Но русские буквы получают отрицательное значение. И в итоге при попытке перевести в String не распознаются....

Кодировка в httppost - Программирование Android
Здравствуйте, имеется такая проблема. хочу отправить файл с параметром на свой сервер делаю так: Thread myThread = new Thread(new...

Кодировка в post запросе - Программирование Android
Добрый вечер... Делаю пост запрос таким образом: txt=myEdit.getText().toString(); ...

Парсинг сайта и кодировка - Программирование Android
Добрый день. Начала изучать вопрос парсинга страниц, наткнулась на тему на хабрена тему на хабре Сделала, вроде, все правильно, но...

Кодировка заголовков E-mail писем - Программирование Android
Здравствуйте. Читаю заголовки (тему) email письма через TextView и получаю такой эффект: Какой-нибудь русский...

Отправка смс на сервер. Кодировка? - Программирование Android
Сохраняю Смс в базе, отправляю на сервер и вывожу на веб странице. Где то в процессе сбивается кодировка и на сервере вместо русского...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
3118 / 1920 / 208
Регистрация: 13.01.2012
Сообщений: 7,349
03.08.2016, 18:30     Кодировка символов (код символа) #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Java
1
byte[] b = str.getBytes( "Cp1251" );
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
03.08.2016, 20:23     Кодировка символов (код символа) #3
Цитата Сообщение от opanasa Посмотреть сообщение
Символ 'в' - русская маленькая буква в и цифра 2 имеют одит и тот же код - 50.
Впервые такое слышу. Это в какой кодировке? Явное нарушение стандарта. Если ASCII, то там кириллица вынесена во вторую половину таблицы.
Вполне вероятно, что при получении символа вы отбрасываете один из двух байтов, что вообще неправильно.
vxg
Модератор
3118 / 1920 / 208
Регистрация: 13.01.2012
Сообщений: 7,349
04.08.2016, 08:28     Кодировка символов (код символа) #4
CoolMind, он так и пишет - берётся первый байт - у русских букв первый байт 50 что странно ибо в UTF-8 первый должен быть D0
opanasa
0 / 0 / 0
Регистрация: 12.12.2015
Сообщений: 15
04.08.2016, 12:00  [ТС]     Кодировка символов (код символа) #5
Java
1
      byte[] b = str.getBytes( "Cp1251" );
Символ русской буквы в выдает код "-30". Собственно ведь правильно. Byte от -128 до 127 вроде. А вот сам номер (226) получать вычитанием 256 - 30?
vxg
Модератор
3118 / 1920 / 208
Регистрация: 13.01.2012
Сообщений: 7,349
04.08.2016, 12:21     Кодировка символов (код символа) #6
opanasa, или так или так
Java
1
2
byte b = 123;
int i = b & 0xFF;
или через Byte.toUnsignedInt
opanasa
0 / 0 / 0
Регистрация: 12.12.2015
Сообщений: 15
04.08.2016, 18:31  [ТС]     Кодировка символов (код символа) #7
Спасибо за помощь. Получать - получаю номера. -30 символ в. Складываю -30 и 256 и 226 искомый номер. Хорошо.
Но не подскажете как из минусового номера получить обратно символ.
Java
1
2
byte str = -30;
System.out.println ((char)str);
Даёт странные символы. Видимо из кодировки unicode. При задании номера 1074, как там выдаёт именно букву в. У меня же цель получить из отрицательных обратно.
Может как то можно указать кодировку? Спасибо
vxg
Модератор
3118 / 1920 / 208
Регистрация: 13.01.2012
Сообщений: 7,349
04.08.2016, 19:33     Кодировка символов (код символа) #8
opanasa, я думаю есть функции обратные той которые вы используете для получения байт из строки - ими вы и получите строку из байт, попробуйте пробить эту мысль
R0
17 / 17 / 9
Регистрация: 06.08.2015
Сообщений: 72
05.08.2016, 10:27     Кодировка символов (код символа) #9
Цитата Сообщение от opanasa Посмотреть сообщение
Может как то можно указать кодировку?
Русские символы расположены в ASCII таблице после 128 знака, поэтому для
Java
1
byte
java они будут всегда отрицательными, в СИ можно использовать
C
1
unsigned char
, а вам проще писать
Java
1
char
- в java он 16 бит
Java
1
2
3
4
        byte str = -30;
        char symb = (char)str;
        symb &= 0x00ff;
        System.out.println (symb);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.08.2016, 12:56     Кодировка символов (код символа)
Еще ссылки по теме:

Вставка символа - Программирование Android
Добрый вечер, Подскажите как вставить символ, аналог chr в PHp Например TextView.setText( символ с номером 245 к примеру) ...

Как отлавливать ввод каждого символа - Программирование Android
Всем привет. Ловлю ивенты TextView определим TextView.OnEditorActionListener интерфейс, в методе onEditorAction. Но событие ввода...

EditText Замена символа при вводе - Программирование Android
Всем привет! Помогите реализовать замену символа ' ' на '_' при вводе. Пытался сделать с помощью InputFilter InputFilter...

Вывод символа Юникода по его коду в TextView - Программирование Android
Привет всем. Подскажите пожалуйста по такой штуке: у меня есть в программе база sqlite, в которой лежат коды символов в формате \uXXXX...

Сравнение символов через код символа - C++
есть задание выбрать неповторяющиеся символы и расположить в порядке убывания их кодов. с первым справится не проблема да и со вторым...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
vxg
Модератор
3118 / 1920 / 208
Регистрация: 13.01.2012
Сообщений: 7,349
05.08.2016, 12:56     Кодировка символов (код символа) #10
opanasa
Java
1
2
3
byte[] b;
...
String str = new String(b, "cp1251");
Yandex
Объявления
05.08.2016, 12:56     Кодировка символов (код символа)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru