![]() |
Модераторы: javastic, AntonSaburov |
![]() ![]() ![]() |
|
maks991 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 8.8.2010 Репутация: нет Всего: нет |
Значит, проблема такая. Пишу я болталку, чатик такой скромный. И нужно, конечно же, передавать сообщения, которые содержат русские символы. Так вот, очень хочется сократить количество передаваемых байтов, потому что русские символы в юникоде занимают аж 2 байта!
Принимаю сообщения я так:
А передаю вот так:
В общем, как видите, приходится использовать UTF-8, чтобы передавать русские символы и не получать на входе абракадабру. Но меня не устраивают эти 2 байта на символ. Помогите, пожалуйста, решить данную проблему... Может быть, какую-то другую кодировку использовать, или хитрое что-то...я так и не смог осилить. Пытался вместо UTF-8 написать ASCII, думая, что таблица будет локальной и всё хорошо будет, но это не помогло...в телефоне отобразились квадратики вместо букв :( В общем, такая вот проблема. Заранее спасибо за помощь. Добавлено через 2 минуты и 10 секунд Ну то есть очень бы хотелось, чтобы на русский символ приходился тот же 1 байт, как и на латинский. Если что, чат этот будет для двоих ![]() |
||||
|
|||||
sanboll |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 15.6.2010 Репутация: 1 Всего: 1 |
Чат через bluetooth или через http?
Можно использовать DataOutputStream.writeUTF(String UTF) и DataInputStream.readUTF() - там и размер данных указывать не придется |
|||
|
||||
maks991 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 8.8.2010 Репутация: нет Всего: нет |
Через StreamConnection. Я сокетами делаю. Ну да, знаю про эти методы. Но ведь количество передаваемых байтов всё равно не уменьшится :( Или уменьшится?
Добавлено через 12 минут и 53 секунды Так-то есть аська...но я потому и делаю свою болталку, чтобы избавиться от всего лишнего, что мне в ней не нужно. И хочется уменьшить траффик, а то за счёт юникода не такой он маленький... |
|||
|
||||
cutwater |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 592 Регистрация: 24.6.2008 Репутация: нет Всего: 10 |
maks991, откройте для себя сжатие данных. Вас пугает два байта на символ? Вы уверены что это настолько критично в условиях современного мира. На дворе 2010 год.
Добавлено через 2 минуты и 20 секунд О мобильных устройствах сначала не приметил. Приношу извинения. В принципе если вам кроме кирилицы и латиницы ничего не нужно, кодируйте однобайтными кодировками, CP1251 (Windows-1251) или KOI8-R, хотя как под мобильными устройствами дела обстоят с кодировками боюсь не осведомлен. |
|||
|
||||
maks991 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 8.8.2010 Репутация: нет Всего: нет |
Вот, и я про то же... Тоже думал использовать эти кодировки, но как-то не выходит :( Вот cp1251 должна быть прям точно, но как её пользовать правильно, не понимаю :(
|
|||
|
||||
maks991 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 8.8.2010 Репутация: нет Всего: нет |
Вот мне, действительно, только кириллица и латиница нужна...явно можно обойтись одним байтом на символ... Попробовал вместо UTF-8 написать Cp1251, вообще не сработало.
|
|||
|
||||
cutwater |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 592 Регистрация: 24.6.2008 Репутация: нет Всего: 10 |
maks991, string.getBytes("Cp1251") не?
|
|||
|
||||
maks991 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 8.8.2010 Репутация: нет Всего: нет |
Нет, не сработало :(
Добавлено через 1 минуту и 46 секунд На телефоне русский язык ведь полностью поддерживается...неужели только Unicode... Хотя вроде да, на некоторых моделях нет цп1251, только утф Добавлено через 2 минуты и 20 секунд Может как-то можно из юникода перевести в цп и обратно? Добавлено через 3 минуты и 22 секунды Правда для телефонов желательно поменьше всяких этих сложных преобразований, ресурсы-то ограниченные всё же |
|||
|
||||
maks991 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 8.8.2010 Репутация: нет Всего: нет |
Всё, товарищи, проблема решена. Причём решена тупейшим образом
![]() ![]() ![]() Всем, кто пытался помочь, спасибо! |
|||
|
||||
ivanovpv |
|
||||
![]() Варвар ![]() ![]() Профиль Группа: Участник Сообщений: 639 Регистрация: 26.1.2005 Где: Москва Репутация: 10 Всего: 28 |
Ага вот так и плодятся кодовые страницы. Глядишь и появится своя кодовая страница и будем мы писать:
-------------------- Aut viam inveniam aut faciam |
||||
|
|||||
maks991 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 8.8.2010 Репутация: нет Всего: нет |
Хаха, ну
![]() ![]() |
|||
|
||||
![]() ![]() ![]() |
FAQ раздела лежит здесь! |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |