Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Чудеса с кодировкой  [new]
alexanderer
Member

Откуда:
Сообщений: 80
Добрый день.
Есть система А, которая по вебсервису ВС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 все возвращают нормально, в читабельном виде. И только у клиента такая фигня.
Может кто-то сталкивался с таким или есть мысли, что это может быть?
4 сен 19, 17:48    [21963761]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
vas0
Member

Откуда: Таможенный союз (Россия, Казахстан)
Сообщений: 1288
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 заголовок Ничего путного сходу не нагуглил
4 сен 19, 18:18    [21963787]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
alexanderer
Member

Откуда:
Сообщений: 80
vas0,

Строка со знаками вопроса - это из логов клиента.
4 сен 19, 18:24    [21963796]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
Dmitry.
Member

Откуда: Львів
Сообщений: 841
похоже на неправильное восстановление текста из кодировки (utf-8) при буфферезированом чтении

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


А    Б    В    -  Г    Д    Е
D090 D091 D092 2D D093 D094 D095


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

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

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

АБВ-?

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



Вот и получится
АБВ-??ДЕ
4 сен 19, 18:43    [21963808]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2449
alexanderer,
"у себя" работает. "у клиента" не работает.
Кто сравнивать будет?
Пушкин?
4 сен 19, 18:45    [21963811]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
alexanderer
Member

Откуда:
Сообщений: 80
Dmitry.,

А есть метод, как с этим бороться?
4 сен 19, 19:02    [21963830]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2449
alexanderer
Dmitry.,

А есть метод, как с этим бороться?
есть.
Подать на вход заранее известный "" мама мыла раму". Потом логировать до места поломки.
Потом патчить.
4 сен 19, 19:13    [21963838]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
mayton
Member

Откуда: loopback
Сообщений: 42900
alexanderer
vas0,

Строка со знаками вопроса - это из логов клиента.

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

Провертье это.
4 сен 19, 21:16    [21963961]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9473
Поскольку русские пуковки в логе есть, то гипотеза "вообще не умеет" - вообще не состоятельна.
А вот "неправильное декодирование" - более чем вероятно. Но, в этом случае, открывается широкое поле для разбрасывания разных граблей.
Какие конкретно грабли разложены у автора? "Гипотез не измышляю".
4 сен 19, 21:21    [21963968]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
mayton
Member

Откуда: loopback
Сообщений: 42900
Dmirii предложил хорошую рабочую версию о буферизации utf-8.
Надо ее как-то проверить. Как вариант - она должна циклически
проявлятся в испорченном символе с постоянным периодом.

Афтор можешь проверить? Если версия верна - то дальше сложнее.
Надо искать код где идет самопальная процедура конверсии.
4 сен 19, 21:28    [21963977]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2710
афтар ты чо не учил кодировки?
если у тебя ?? значит проблема в кодировке
выясняй в чем отправляете ,в чем принимаете
проблем однозначно в этом ,что где то у вас на пути одного сервиса к другому прописаны разные кодировки
если не хочешь это лечить
отправляй байт массив с нужной кодировкой и далее на выходе делай с ним что душе угодно
4 сен 19, 21:34    [21963985]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16787
asv79,

ты опять лезешь не по делу - тут кодировка дело второе. в строке и русские и англицкие и большие и малые и цифры.
4 сен 19, 21:45    [21963996]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
mayton
Member

Откуда: loopback
Сообщений: 42900
вадя, да чего. Пускай идёт разведка боем. Чем больше вопросов зададут ТС-у тем лучше.

Не спугнуть бы его только. ТС-а...
4 сен 19, 21:48    [21964000]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16787
mayton
вадя, да чего. Пускай идёт разведка боем. Чем больше вопросов зададут ТС-у тем лучше.
да проблемка интересная

mayton
Не спугнуть бы его только. ТС-а...
asv79 старается это сделать
4 сен 19, 21:50    [21964003]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2710
вадя
asv79,

ты опять лезешь не по делу - тут кодировка дело второе. в строке и русские и англицкие и большие и малые и цифры.

вадя если ты не в курсе то все англ буквы умещаются в аски и в любой кодироке они прочитаюся правильно
проблема в русских буквах и в том что где то наверняка стоит utf-8 а где то по умолчанию ср -123123 какой нить
поэтому часть и не читаема
4 сен 19, 21:52    [21964004]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
vas0
Member

Откуда: Таможенный союз (Россия, Казахстан)
Сообщений: 1288
Проблема интересная. И ТС судя по дате регистрации, не новичок. Большая вероятность что "коллективный разум" не сможет помочь.

Очень интересно в чем трабла. ТС отпишись если не трудно, чем дело кончилось.
4 сен 19, 21:57    [21964008]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
mayton
Member

Откуда: loopback
Сообщений: 42900
В фразе "Перевод собственных средс??в" испорчена русская буква т с кодом 0x0442 по Unicode.
Если это так - то для двух вопросительных знаков бинарном представлении мы должны увидеть
глазками эти коды в наложении на маску 110xxxxx 10xxxxxx далее - сбой декодера UTF-8
где второй байт обрезан. А потом сбой декодера на старте где приходит хвостик буквы т
но воспринимается декдером некорректно т.к. стартовая маска неожиданно стала 10***
вместо ожидаемой 110***. Вобщем все это так... поток моих мыслей. Как оно на самом
деле - ХЗ. Кодировку действительно можно сломать дважды в двух местах и получить
ошибку Шрёдингера.
4 сен 19, 22:12    [21964017]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16787
mayton,
глазастый
alexanderer
Т.е. не все символы не читаемые, а какой то единственный. Причем, когда тестирую у себя через соапуй, то и ВС1 и ВС2 все возвращают нормально, в читабельном виде. И только у клиента такая фигня.
есть подозрение на качество сети....
4 сен 19, 22:25    [21964023]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9473
asv79
вадя если ты не в курсе то все англ буквы умещаются в аски и в любой кодироке они прочитаюся правильно
Особенно правильно они прочитаются в UTF-16/UTF-32. Для простоты - будучи порезаны на кусочки нечётного размера.
4 сен 19, 23:12    [21964047]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2710
Basil A. Sidorov
asv79
вадя если ты не в курсе то все англ буквы умещаются в аски и в любой кодироке они прочитаюся правильно
Особенно правильно они прочитаются в UTF-16/UTF-32. Для простоты - будучи порезаны на кусочки нечётного размера.

если мне память не изменяет то все 128 инглишь символов коректно читаются в любой уникод кодировке)
проверять не буду)
4 сен 19, 23:21    [21964055]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
забыл ник
Member

Откуда:
Сообщений: 3045
asv79
Basil A. Sidorov
пропущено...
Особенно правильно они прочитаются в UTF-16/UTF-32. Для простоты - будучи порезаны на кусочки нечётного размера.

если мне память не изменяет то все 128 инглишь символов коректно читаются в любой уникод кодировке)
проверять не буду)

Зря )
4 сен 19, 23:23    [21964058]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2710
забыл ник
asv79
пропущено...

если мне память не изменяет то все 128 инглишь символов коректно читаются в любой уникод кодировке)
проверять не буду)

Зря )

проверил ,разное getByte возращает)
вот так и верь российской прессе)
4 сен 19, 23:27    [21964060]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2710
проверил еще раз ,все таки книга не врет)
все кодировки возвращают 97 на английское а)
кроме 2 байтовых
значит проблема аффтара сей темы сузилась до поиска где он имел наглость вписать 2 или того хуже 4 байтовую кодировку
4 сен 19, 23:33    [21964061]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
mayton
Member

Откуда: loopback
Сообщений: 42900
asv79,

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

Но мы читаем большую часть нормально.
5 сен 19, 08:18    [21964169]     Ответить | Цитировать Сообщить модератору
 Re: Чудеса с кодировкой  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2449
mayton,
Будет анекдот если там на входе вопросы идут.
5 сен 19, 08:30    [21964176]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Java Ответить