Jstring conversion
Comments
-
Hi kblanch09.
I assume, that with string you mean a std::string, correct?
It's actually pretty easy:
[code2=cpp]ExitGames::Common::JString jstr = L"string"; // initial JString instance construction from a const wchar_t*
std::string str = jstr.UTF8Representation().cstr(); // construction of a std::string instance with the content of that JString instance
jstr = str.c_str(); // assignment of the content of the std::string instance back to the JString instance
printf("%s %ls\n", str.c_str(), jstr.cstr()); // output of both through printf
std::cout << str << " " << jstr.UTF8Representation() << std::endl; // and through std::cout[/code2]0 -
Thanks!!!0
-
I need convert a variable _jstring to ExitGames::Common::JString
In the example is only a constan
I need convert:
jstring myString = 'La cadena';
to ExitGames::Common::JString jstr
but _jstring have not the method UTF8Representation()
Any clue?0 -
Hi @esdebon.but _jstring have not the method UTF8Representation()
You now ask how to convert from some other string format TO a JString.
A JString can be initialized with either an array of UTF8 encoded char or with an array of wchar_t that is encoded in Unicode according to the size of wchar_t on the platform that you are compiling for, hence UTF16 on Windows and UTF32 on Unixes (FYI: iOS, Android and OS X are all Unixes).
Hence you need to read the documentation of the string class that you are converting from to find out how to get a char* or a wchar_t* representation of it.
Your other string class is called jstring (with a small 'j' and a small 's', unlike Photons JString class that is written with a capital 'J' and a capital 'S').
The only class with such a name that I have heard of is the JNI jstring class.
Therefor I assume that you are talking about Android. Is that correct?
JNI offers a GetStringUTFChars() function that takes a jstring instance and returns a UTF8 encoded char array (see https://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/functions.html).
That char* can then be passed to the JString constructor.0 -
You are the best!!! GetStringUTFChars() works perfectly Thank you very much!!!0