Denis
а у тебя big endian little endian в порядке все такое ?
Denis
(мало ли)
Ayrat
Ayrat
оно просто вот так показывает
Ayrat
(внизу)
Ayrat
если там же внизу переключить на Text получим нормальное число (в строке)
Ayrat
я хочу программно получить это же число
Denis
Ayrat
Ayrat
ну то есть это оно и есть!!1
Denis
https://hexed.it/
Denis
на
Ayrat
на
осталось только эту программу на сервер воткнуть и в жарник впилить как часть бинарника)))
Ayrat
аха, проклятый дотнет в литл ендиан, а проклятая жава по умолчанию в биг ендиан
Ayrat
придётся в котлине скриптовать -_-
Ayrat
я писал пруф оф концепт в фшарпе для программы на джаве
Anatoly
пейлоад был в UTF16, и там было смешно
Ayrat
F#
[|31uy; 37uy; 39uy; 32uy; 30uy; 37uy; 36uy; 34uy; 31uy; |]
|> System.Text.Encoding.UTF8.GetString
|> System.Console.WriteLine // %' %$"
Kotlin
val arr = byteArrayOf(0x31, 0x37, 0x39, 0x32, 0x30, 0x37, 0x36, 0x34, 0x31)
val str = Charsets.UTF_8.decode(java.nio.ByteBuffer.wrap(arr))
print(str) //179207641
Ayrat
короче, разметка по пизде идёт, но мысль понятна
Ayrat
короче, наступил на грабли
Vladimir
https://github.com/fsharplang-ru/pulsar-client-dotnet/blob/develop/src/Pulsar.Client/Common/Tools.fs#L19-L23
Ayrat
Ayrat
то есть это не просто число
Vladimir
ну это странно, обычно индианность только для чисел важна
Ayrat
Ayrat
один и тот же массив байт (он был получен в жава коде) по-разному декодится в UTF-8
Vasily
Ayrat
а в жаве байты в биг ендиане пакуются
Ayrat
ебень.
Ayrat
И как вы на это не наступили при общении со скала сервером?
Vasily
Легко
Vasily
Проверяем, в какой мы endian
Vasily
И реверсим
Vasily
В зависимости от результатов
Ayrat
РЕЗОННО
Vasily
Но сейчас у нас все в LE
Vasily
А вот когда я в банке сидел, то надо было чекать
Vasily
Ну и там завезли годного api с BinaryPrimitives
Vasily
Скорее всего LE по умолчанию
Vladislav
Когда сраный райдер перестанет со стековерфлоу падать?
Vladislav
7 раз за день сука
Vladimir
java.nio.charset.Charset
Vladimir
Ayrat
ну тут вроде всё обычно
Ayrat
я охуеваю с кода наших жавистов иногда. Их наверное в инкубаторе для конченых выращивают и выдают каждому книгу - Как Писать Хуёвый Код. Издание 13-ое расширенное.
Ayrat
вот код выполнения списка запросов в БД
Ayrat
давайте посмотрим что происходит в executeAsync
Ayrat
попытка взять семафор, асинхронный запуск и отпуск семафора на окончании. пока всё ок
Ayrat
Давайте же посмотрим что в waitForFinish()???
Ayrat
просто сука рукалицонахуй
Ayrat
ояебал эти семафорщики мамкины
Ayrat
и главное ASYNC
Ayrat
пойду поору в подушку
Anatoly
https://www.youtube.com/watch?v=1VZaIG5WZH0
Vagif
Ayrat
Кошмар какой
там ещё создание PreparedStatement на каждый месадж, нормальный такой оверхед
Ayrat
это в кассандре такая замена процедурам. Мы отдаём двиглу шаблон для запроса с темплейтами вместо значений, оно там парсит, оптимизирует и выдаёт через драйвер айдишник Prepared Statement. Тебе надо просто прокинуть по этому айдишнику значения и всё быстро исполнится.
Мы создаём этот PreparedStatement каждый раз. На каждый месадж свой
Hog
Ayrat
Hog
Hog
И простым вычитанием проверяем, что аски даёт искомое число :)
Ayrat
0 - 0x30
Ну вот дотнет так не считает. Проверь!
Ayrat
Код выше. Только енкодинг там замени
Hog
Ayrat
Hog
Maksym
Ayrat
Ayrat
Причем автор индус.
Maksym
Меня удивило уже сколько лет они живут в пендосии и все равно они не понятно говорят