Гость
Форумы / Java [игнор отключен] [закрыт для гостей] / Чудеса с кодировкой / 25 сообщений из 44, страница 1 из 2
04.09.2019, 17:48
    #39857407
alexanderer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
Добрый день.
Есть система А, которая по вебсервису ВС1 получала данные. Все было хорошо.
Теперь сделали новый вебсервис ВС2 с расширенным функционалом так, что старые запросы приходя на ВС2 перенаправляются на ВС1.
Сисему А настроили на новый вебсервис ВС2 и теперь приходят какие-то не читаемые символы типа:
GND="Перевод собственных средс??в" PA="200000" PD="29.08.2019" R="0"/><D A="500" CUR="RUR" D="29.08.2019 16:04:36" GND="Перевод собственных средств" PA="500"

Т.е. не все символы не читаемые, а какой то единственный. Причем, когда тестирую у себя через соапуй, то и ВС1 и ВС2 все возвращают нормально, в читабельном виде. И только у клиента такая фигня.
Может кто-то сталкивался с таким или есть мысли, что это может быть?
...
Рейтинг: 0 / 0
04.09.2019, 18:18
    #39857427
vas0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
alexandererДобрый день.
Есть система А, которая по вебсервису ВС1 получала данные. Все было хорошо.
Теперь сделали новый вебсервис ВС2 с расширенным функционалом так, что старые запросы приходя на ВС2 перенаправляются на ВС1.
Сисему А настроили на новый вебсервис ВС2 и теперь приходят какие-то не читаемые символы типа:
GND="Перевод собственных средс??в" PA="200000" PD="29.08.2019" R="0"/><D A="500" CUR="RUR" D="29.08.2019 16:04:36" GND="Перевод собственных средств" PA="500"

Т.е. не все символы не читаемые, а какой то единственный. Причем, когда тестирую у себя через соапуй, то и ВС1 и ВС2 все возвращают нормально, в читабельном виде. И только у клиента такая фигня.
Может кто-то сталкивался с таким или есть мысли, что это может быть?Из советов попросить клиента прислать, то что он отправляет (или взять из логов). Возможно это проблема вообще на его стороне.
Посмотреть не присылает ли он BOM заголовок Ничего путного сходу не нагуглил
...
Рейтинг: 0 / 0
04.09.2019, 18:24
    #39857432
alexanderer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
vas0,

Строка со знаками вопроса - это из логов клиента.
...
Рейтинг: 0 / 0
04.09.2019, 18:43
    #39857441
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
похоже на неправильное восстановление текста из кодировки (utf-8) при буфферезированом чтении

например передаем строку АБВ-ГДЕ
в байтах это


Код: java
1.
2.
А    Б    В    -  Г    Д    Е
D090 D091 D092 2D D093 D094 D095



на кириллицу - 2 байта на аски - 1 байт

допустим буффер чтения 8 байт

считываем байты до половины буквы Г (только первый байт) и если это преобразовать в строку, то получим

Код: java
1.
АБВ-?


затем следующую часть начиная со второго байта с преобразованием к строке
Код: java
1.
?ДЕ




Вот и получится
Код: java
1.
АБВ-??ДЕ
...
Рейтинг: 0 / 0
04.09.2019, 18:45
    #39857443
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
alexanderer,
"у себя" работает. "у клиента" не работает.
Кто сравнивать будет?
Пушкин?
...
Рейтинг: 0 / 0
04.09.2019, 19:02
    #39857450
alexanderer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
Dmitry.,

А есть метод, как с этим бороться?
...
Рейтинг: 0 / 0
04.09.2019, 19:13
    #39857457
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
alexandererDmitry.,

А есть метод, как с этим бороться?есть.
Подать на вход заранее известный "" мама мыла раму". Потом логировать до места поломки.
Потом патчить.
...
Рейтинг: 0 / 0
04.09.2019, 21:16
    #39857520
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
alexanderervas0,

Строка со знаками вопроса - это из логов клиента.
Здесь - уравнение со множеством неизвестных. Почему в логах вопросики? Либо реально зашли символы "?".
Либо система логгирования просто не в состоянии формировать символы с кодами старше 127.

Провертье это.
...
Рейтинг: 0 / 0
04.09.2019, 21:21
    #39857526
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
Поскольку русские пуковки в логе есть, то гипотеза "вообще не умеет" - вообще не состоятельна.
А вот "неправильное декодирование" - более чем вероятно. Но, в этом случае, открывается широкое поле для разбрасывания разных граблей.
Какие конкретно грабли разложены у автора? "Гипотез не измышляю".
...
Рейтинг: 0 / 0
04.09.2019, 21:28
    #39857533
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
Dmirii предложил хорошую рабочую версию о буферизации utf-8.
Надо ее как-то проверить. Как вариант - она должна циклически
проявлятся в испорченном символе с постоянным периодом.

Афтор можешь проверить? Если версия верна - то дальше сложнее.
Надо искать код где идет самопальная процедура конверсии.
...
Рейтинг: 0 / 0
04.09.2019, 21:34
    #39857538
asv79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
афтар ты чо не учил кодировки?
если у тебя ?? значит проблема в кодировке
выясняй в чем отправляете ,в чем принимаете
проблем однозначно в этом ,что где то у вас на пути одного сервиса к другому прописаны разные кодировки
если не хочешь это лечить
отправляй байт массив с нужной кодировкой и далее на выходе делай с ним что душе угодно
...
Рейтинг: 0 / 0
04.09.2019, 21:45
    #39857545
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
asv79,

ты опять лезешь не по делу - тут кодировка дело второе. в строке и русские и англицкие и большие и малые и цифры.
...
Рейтинг: 0 / 0
04.09.2019, 21:48
    #39857550
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
вадя, да чего. Пускай идёт разведка боем. Чем больше вопросов зададут ТС-у тем лучше.

Не спугнуть бы его только. ТС-а...
...
Рейтинг: 0 / 0
04.09.2019, 21:50
    #39857552
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
maytonвадя, да чего. Пускай идёт разведка боем. Чем больше вопросов зададут ТС-у тем лучше.да проблемка интересная

maytonНе спугнуть бы его только. ТС-а...asv79 старается это сделать
...
Рейтинг: 0 / 0
04.09.2019, 21:52
    #39857553
asv79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
вадяasv79,

ты опять лезешь не по делу - тут кодировка дело второе. в строке и русские и англицкие и большие и малые и цифры.
вадя если ты не в курсе то все англ буквы умещаются в аски и в любой кодироке они прочитаюся правильно
проблема в русских буквах и в том что где то наверняка стоит utf-8 а где то по умолчанию ср -123123 какой нить
поэтому часть и не читаема
...
Рейтинг: 0 / 0
04.09.2019, 21:57
    #39857556
vas0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
Проблема интересная. И ТС судя по дате регистрации, не новичок. Большая вероятность что "коллективный разум" не сможет помочь.

Очень интересно в чем трабла. ТС отпишись если не трудно, чем дело кончилось.
...
Рейтинг: 0 / 0
04.09.2019, 22:12
    #39857561
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
В фразе "Перевод собственных средс??в" испорчена русская буква т с кодом 0x0442 по Unicode.
Если это так - то для двух вопросительных знаков бинарном представлении мы должны увидеть
глазками эти коды в наложении на маску 110xxxxx 10xxxxxx далее - сбой декодера UTF-8
где второй байт обрезан. А потом сбой декодера на старте где приходит хвостик буквы т
но воспринимается декдером некорректно т.к. стартовая маска неожиданно стала 10***
вместо ожидаемой 110***. Вобщем все это так... поток моих мыслей. Как оно на самом
деле - ХЗ. Кодировку действительно можно сломать дважды в двух местах и получить
ошибку Шрёдингера.
...
Рейтинг: 0 / 0
04.09.2019, 22:25
    #39857567
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
mayton,
глазастый
alexandererТ.е. не все символы не читаемые, а какой то единственный. Причем, когда тестирую у себя через соапуй, то и ВС1 и ВС2 все возвращают нормально, в читабельном виде. И только у клиента такая фигня.есть подозрение на качество сети....
...
Рейтинг: 0 / 0
04.09.2019, 23:12
    #39857585
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
asv79вадя если ты не в курсе то все англ буквы умещаются в аски и в любой кодироке они прочитаюся правильноОсобенно правильно они прочитаются в UTF-16/UTF-32. Для простоты - будучи порезаны на кусочки нечётного размера.
...
Рейтинг: 0 / 0
04.09.2019, 23:21
    #39857592
asv79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
Basil A. Sidorovasv79вадя если ты не в курсе то все англ буквы умещаются в аски и в любой кодироке они прочитаюся правильноОсобенно правильно они прочитаются в UTF-16/UTF-32. Для простоты - будучи порезаны на кусочки нечётного размера.
если мне память не изменяет то все 128 инглишь символов коректно читаются в любой уникод кодировке)
проверять не буду)
...
Рейтинг: 0 / 0
04.09.2019, 23:23
    #39857593
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
asv79Basil A. Sidorovпропущено...
Особенно правильно они прочитаются в UTF-16/UTF-32. Для простоты - будучи порезаны на кусочки нечётного размера.
если мне память не изменяет то все 128 инглишь символов коректно читаются в любой уникод кодировке)
проверять не буду)
Зря )
...
Рейтинг: 0 / 0
04.09.2019, 23:27
    #39857595
asv79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
забыл никasv79пропущено...

если мне память не изменяет то все 128 инглишь символов коректно читаются в любой уникод кодировке)
проверять не буду)
Зря )
проверил ,разное getByte возращает)
вот так и верь российской прессе)
...
Рейтинг: 0 / 0
04.09.2019, 23:33
    #39857596
asv79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
проверил еще раз ,все таки книга не врет)
все кодировки возвращают 97 на английское а)
кроме 2 байтовых
значит проблема аффтара сей темы сузилась до поиска где он имел наглость вписать 2 или того хуже 4 байтовую кодировку
...
Рейтинг: 0 / 0
05.09.2019, 08:18
    #39857687
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
asv79,

Тут другой дефект. Если кодировка не совпадала - мы бы видели информационный шум.

Но мы читаем большую часть нормально.
...
Рейтинг: 0 / 0
05.09.2019, 08:30
    #39857691
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чудеса с кодировкой
mayton,
Будет анекдот если там на входе вопросы идут.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Чудеса с кодировкой / 25 сообщений из 44, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]