JNI 를 사용하다보면, 문자열 처리가 까다롭습니다.
안그래도 C++/MFC 에서의 문자열 처리도 인코딩 때문에 거지같은데, jstring 이라는 듣도보도 못한 녀석까지 신경써야 합니다.
만만하게 보고 접근했다가는, 한글이 깨지는 현상이 발생하지요.

항상 이놈의 인코딩이 문제입니다.

jstring 을 LPCWSTR 로 변환하는 방법에 대해서 구글링을 해 보면, 정말 많은 방법이 나옵니다.
buffer 를 만든 뒤에, 여기에 복사해서 만드는 방법도 있고,
Multibyte 나부랭이 함수를 호출하는 방법도 있지요.

문자열 하나 처리하려다가 배보다 배꼽이 더 큰 함수가 만들어지곤 합니다.

그러다가...실험삼아 이것저것 해 보다가, 정말 간단한 변환방법을 찾아냈습니다!
한글도 당연히 잘 지원됩니다!

아래를 참고하시기 바랍니다. ㅎ 어이가 없네요 :)


jstring str;
jchar* new_str = (*env)->GetStringChars(env, str, NULL);
LPCWSTR result = (LPCWSTR)new_str;  




즉,,
(*env)->GetStringChars(env, str, NULL) 를 통해서 만들어진 jchar * 는 (LPCWSTR) 로 캐스팅 가능
하다는 이야깁니다~ ㅎ