| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Сокет-сервер не понимает входящий utf |
| Автор: Smorodin 28.11.2011, 07:29 | ||||||
Клиент (AS3) отправляет строку:
Сервер на JAVA читает:
В консоли:
Во флеш приходит УТФ, раньше сервер писался на Node.js - вообще никаких проблем с кодировкой не было. Все файлы Java в утф. На Debian'е. Компилируется через консоль. Локаль, консоль, ссш-клиент - везде утф8. Если в коде вписать русские буквы, но и в консоль нормально уходит, и клиенту нормально отправляется. Получается, проблема именно в получении строки... (?) |
| Автор: LSD 28.11.2011, 10:46 |
| Вместо readLine() надо использовать readUTF(). P.S. Да и вообще если компилятор на что-то ругается, то стоит обратить самое пристальное внимание на это. |
| Автор: Smorodin 28.11.2011, 10:58 |
| Спасибо за ответ. Но компилятор вообще ни на что не ругается. =( Но вот при использовании readUTF() начинает говорить на ЕОФ. Как бы сейчас правильно отправить с клиента , чтобы сервер прочитал без ошибок.... |
| Автор: LSD 28.11.2011, 11:12 |
readLine() - Deprecated компилятор должен выдавать warning. Метод readUTF() вначале ожидает 2 байта с длинной строки, потом уже саму строку в UTF. Надо чтобы AS3 писал вначале длинну строки, а потом уже саму строку. |
| Автор: Smorodin 28.11.2011, 13:07 |
| Спасибо! Проблема решена. |