[高分求救啊]jni的C++实现中,调用iconv转UTF-8到GB18030老失败
在linux下转UTF-8到GB18030,结果老为空,都试了几天了,结果都不正确,谁能救救我啊,以下是我的源代码: 
 EncodeMessage:该参数类型为jsring,EncodeMessage= "ab你好吗 "(从java传过来的) 
 char   *temp;//= " "; 
 	int   len,reqBuffLen; 
 	size_t   length,length2=100,length3=100; 
 	const   jchar   *jwstr;   
 	//temp=(char*)env-> GetStringChars(EncodeMessage,0);//返回的应当是UTF-16,即Unicode 
 	//reqBuffLen=env-> GetStringLength(EncodeMessage); 
 	temp=(char*)env-> GetStringUTFChars(EncodeMessage,0);//返回的应当是UTF-8 
 	reqBuffLen=env-> GetStringUTFLength(EncodeMessage); 
 	length   =   reqBuffLen;   
 printf( "temp=%s\n ",temp);//正确显示 
 printf( "reqBuffLen=%d\n ",reqBuffLen); 
 	char   *pmbbuf=(char*)malloc(length); 
 	iconv_t   cd; 
 //                  	cd=iconv_open( "GB18030 ", "UTF-16 "); 
 	cd=iconv_open( "GB18030 ", "UTF-8 ");//成功 
 	if   (cd==0){ 
    		printf( "iconv_open   fails\n "); 
    		return   -1; 
 	}   
 	size_t   rt; 
 	if(rt=(int)iconv(cd,&temp,&length,&pmbbuf,&length2)==-1){//成功 
 		printf( "iconv   failse\n "); 
 		return   -1; 
 	} 
 	iconv_close(cd); 
 printf( "pmbbuf=%s\n ",pmbbuf);//pmbbuf结果不是空,就是乱七八糟的东西 
 printf( "len=%d\n ",length2);   
 结果不兑,那位大侠给看看啊,急死我了 
------解决方案--------------------try to set konsole encoding .   
 go home , byebye, ha ha