검색결과 리스트
글
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) 로 캐스팅 가능
하다는 이야깁니다~ ㅎ
'Java' 카테고리의 다른 글
FolderMonitoring - 파일 변경 감지하는 방법 (0) | 2011.09.30 |
---|---|
Java로 나만의 프로토콜 만들기 (1) | 2011.06.16 |
Runtime.getRuntime().exec() 호출시 종료되지 않는 문제 (6) | 2011.06.01 |
JNI 를 사용한 Folder Monitoring (1) | 2011.05.24 |
RECENT COMMENT