Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> Android下調用jni時進行的轉碼操作的例子

Android下調用jni時進行的轉碼操作的例子

編輯:Android開發教程

之前幫人家解決亂碼問題時回過一個帖子 現在總結在博客裡 留起來

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;            
     }

有朋友反映找不到mbstowcs

#include <locale.h>

#include <stdlib.h>

就可以找到

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved