Size: a a a

Android NDK (C++) — русскоговорящее сообщество

2018 October 03

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
В одном из проектов я использовал для этого более честный подход — взял готовую либу.
источник

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
Сейчас вспомню название.
источник

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
Я использовал ICU, которой из входящей UTF-8 строки делал Unicode строку, которую уже отправлял в JNI
источник

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
источник

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
Andrey Panchenko
У гугла где-то в примерах был костыльный код, которым строку можно препроцессить, чтобы получить то что нужно.
Каких-то объективных предпосылок против использования того кода я не могу вспомнить, Может, что-то показалось подозрительным. Но главное, просто захотелось ICU. :)
источник

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
источник

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
источник

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
источник

PV

Pavel Vasiliev in Android NDK (C++) — русскоговорящее сообщество
Я одно время тоже столкнулся с аналогичной проблемой с кривыми utf8 строками. В итоге переделал код - декодировал строку на джава слое, передавал в нейтив, потом возвращал в джава слой некодированную строку в виде массива байт и вызывал new String(bytes, UTF-8)
источник

S

Sergey in Android NDK (C++) — русскоговорящее сообщество
О! не ожидал что кто-нибудь напишет. Спасибо. У меня третий день работы с ndk и c++ кодом поэтому позволю себе наглость:

в 47 строке вызывается NewStringUTF с аргументом, который прилетает из С++ кода (строка 41)

т.е. строку в NewStringUTF я передаю не из jav-ы, а она вычисляется в c++ либе
в этом случ. у меня есть шансы как-то хотяб закастылить этот баг с NewStringUTF?
источник

S

Sergey in Android NDK (C++) — русскоговорящее сообщество
источник

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
Я про этот случай как раз и рассказывал.
источник

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
В общем-то про оба случая. И в джаву и из джавы. :)
источник

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
Просто JNI использует свою чутка альтернативную кодировку для UTF-8
источник

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
Это факт.
источник

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
Факт так же в том, что если передать из C++ в JNI строку в нормальном UTF-8  без обработки, то иногда будет работать, а иногда не будет
источник

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
Поэтому надо что-то со строкой делать.
источник

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
Либо костыль как гугель. Можно подглядеть в исходниках его приложений, не помню точно в каком, но должно быть не так долго найти.
источник

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
Либо какой-то сторонней библиотекой.
источник

AP

Andrey Panchenko in Android NDK (C++) — русскоговорящее сообщество
Ну или использовать Unicode
источник