我理解你的意思,但是你误会操作流程了,其实在cpp里已经是规格的utf-8转gb2312操作了
解决方案 »
- 大侠救命了!BitmapFactory.decodeFile一直返回空
- android 如何获得修改系统时间权限
- 请教下android联机游戏开发的思路?
- 如何关闭当前的第三方程序?
- 请问如何将自己写的驱动加到android的代码去,然后编译啊???
- android ListView中的RatingBar怎么设置它的评分?
- NFC接受不能检测到其他tag
- Android工程引入第三方jar包报错
- 不用webview可以进行javascript和java代码交互吗?
- 有哪位大佬解决一下 这红色报错而且不显示预览布局
- 请大侠提供一个Android中显示ppt的解决办法.
- 【o(︶︿︶)o 】User Dictionary 的使用问题
读一下再看代码,永远都是拿来主义,那怎么能进步?
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,"");
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;
}
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,"");
//sorry,i forgot it
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;
}
no no no~ 编码本身不能说是错误,人家编码编的好好的,都是打开文件的时候,解码出的错。