Спасибо @all!
не использовать: query ("SET NAMES utf8"); это настройка, а не запрос. положите это прямо на начало соединения с setCharset () (или аналогичным методом)
немного мелочи в parctice:
status:
Сохранять и читать данные не проблема, так как long mysql может обрабатывать символы. если вы посмотрите в db, вы уже увидите, что в нем есть дерьмо (например, использование phpmyadmin).
до сих пор это не проблема! (неправильно, но работает часто (в европе)) ..
.. если другой клиент / программа или измененная библиотека, которая работает правильно, будут читать / сохранять данные. то у вас большие неприятности!
передать GSON всю строку, а не только String.valueOf(jsonObject.getJSONArray("subscriptionPlans"))
:
SubscriptionDetails subscriptionDetails = gson.fromJson(String.valueOf(jsonObject), SubscriptionDetails.class);