У меня есть строковый литерал Java с символами Unicode, который необходимо преобразовать в строковый литерал C, который можно загрузить с помощью JNIEnv.NewString
.
К сожалению, приведенный выше метод принимает указатель на массив unsigned short
(jchar). Я пробовал использовать следующий код:
unsigned short str[] = {65, 66, 67};
jstring java_str = (*env)->NewString(env, str, 3);
Однако это занимает много места, неудобочитаемо для человека и сложно в обслуживании.
Есть ли способ преобразовать строковый литерал в unsigned short[]
в C, сохраняя при этом возможность использовать символы Java UTF-16?
Можно ли это экранирование сделать программно? то есть преобразовать java.lang.String
в строковый литерал, который будет работать в исходном коде C.