Saya memiliki literal string Java dengan karakter Unicode yang perlu ditransfer ke literal string C, yang dapat dimuat dengan JNIEnv.NewString
.
Sayangnya, metode di atas membutuhkan pointer ke array unsigned short
(jchar). Saya sudah mencoba menggunakan kode seperti berikut:
unsigned short str[] = {65, 66, 67};
jstring java_str = (*env)->NewString(env, str, 3);
Namun, hal ini memerlukan banyak ruang, tidak dapat dibaca manusia, dan sulit dipelihara.
Apakah ada cara untuk mengubah string literal menjadi unsigned short[]
di C, sambil tetap dapat menggunakan karakter UTF-16 Java?
Bisakah pelolosan ini dilakukan secara terprogram? yaitu mengubah java.lang.String
menjadi string literal yang dapat berfungsi dalam kode sumber C.