Android下调用jni时进行的转码操作实例
Android下调用jni时进行的转码操作实例
- bool handleString(char* name)
- {
- jstring rtnname = 0;
- int slenname = strlen(name);
- unsigned short * namebuffer = 0;
- if( slenname == 0 )
- rtnname = mEnv->NewStringUTF(name);
- else
- {
- wchar_t* wname = NULL;
- setlocale(LC_ALL,"");
- int namelength=mbstowcs(wname,name,strlen(name)*2);
- namebuffer = (unsigned short *)malloc(namelength*2 + 1 );
- if((rtnname = mEnv->NewString( (jchar*)namebuffer, namelength )) == NULL)
- return false;
- if( namebuffer )
- free(namebuffer );
- }
- return true;
- }
- bool isASCII(const char* chp)
- {
- char ch;
- bool flag;
- while ((ch = *chp++))
- {
- flag = false;
- if (ch & 0x80)
- {
- flag = true;
- break;
- }
- }
- return flag;
- }
评论暂时关闭