青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Javen-Studio 咖啡小屋

http://javenstudio.org - C++ Java 分布式 搜索引擎
Naven's Research Laboratory - Thinking of Life, Imagination of Future

  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  24 隨筆 :: 57 文章 :: 170 評(píng)論 :: 4 Trackbacks
    寫(xiě)Java JNI的時(shí)候最頭痛的莫過(guò)于字符集的轉(zhuǎn)換問(wèn)題,眾所周知,Java里字符串是以Unicode編碼存儲(chǔ)的,而C/C++里大部分是單字節(jié)處理,這就涉及到一個(gè)轉(zhuǎn)換的問(wèn)題,下面是兩個(gè)函數(shù)用來(lái)在JString到Char*之間的轉(zhuǎn)換:
//author Naven 2003 for both Win32 and Unix os

//為了便于使用,無(wú)需另連接庫(kù),Win32里需自己寫(xiě)雙字節(jié)memset函數(shù)
#if    defined(_WIN32) || defined(__WIN32__)
wchar_t 
*mywmemset(wchar_t *_S, wchar_t _C, size_t _N)
{
    wchar_t 
*_Su = _S;
    
for (; 0 < _N; ++_Su, --_N)
            
*_Su = _C;
    
return (_S); 
}
#endif

//將Java里jstring類型轉(zhuǎn)換成單字節(jié)字符串
size_t JStringToChars(JNIEnv *env, 
    
const jstring jstr, char *mbstr, const size_t mbslen) 
{
    
const jchar *jwstr; 
    wchar_t 
*wbuf=0
    size_t nsize
=0
    jsize jlen
=0
    register 
int i=0

    memset(mbstr, 
0, mbslen); 
    
if( jstr == NULL ) return 0
    jwstr 
= (*env)->GetStringChars(env, jstr, 0); 

    jlen 
= (*env)->GetStringLength(env, jstr); 
    
if( jlen <= 0 ) return 0

#if    defined(_WIN32) || defined(__WIN32__)
    wbuf 
= (wchar_t *) jwstr; 
    nsize 
= wcstombs(mbstr, wbuf, mbslen-1); 
#else
    wbuf 
= (wchar_t *) malloc((jlen+1)*sizeof(wchar_t)); 
    mywmemset(wbuf, (wchar_t)
0, (size_t)(jlen+1)); 

    
for( i = 0; i < jlen; i ++ ) 
        wbuf[i] 
= (wchar_t)jwstr[i]; 

    nsize 
= wcstombs(mbstr, wbuf, mbslen-1); 
    free(wbuf); 
#endif

    
if( nsize >= 0 && nsize < mbslen ) 
        mbstr[nsize] 
= 0
    
    
return nsize; 
}

//將單字節(jié)字符串轉(zhuǎn)換成Java里可使用的jstring類型
size_t CharsToJString(JNIEnv *env, 
    
const char *mbstr, jstring *jstr) 
{
    jchar 
*jwstr=0
    wchar_t 
*wcstr=0
    size_t slen
=0, nsize=0
    register 
int i=0;

    
if( mbstr != NULL ) 
        slen 
= strlen(mbstr); 
    
if( mbstr == NULL || slen <= 0 ) { 
        
*jstr = (*env)->NewStringUTF(env, ""); 
        
return 0
    }

    wcstr 
= (wchar_t *) malloc((slen+1)*sizeof(wchar_t)); 
    mywmemset(wcstr, 
0, slen+1); 
    nsize 
= mbstowcs(wcstr, mbstr, slen*2); 
    
    jwstr 
= (jchar *) wcstr; 

#if    defined(_WIN32) || defined(__WIN32__)
#else
    
for(i =0; i < (int)nsize; i ++) {
        jwstr[i] 
= jwstr[i*2]; 
    }
    jwstr[nsize] 
= 0
#endif

    
if( nsize <= 0 ) 
        
*jstr = (*env)->NewStringUTF(env, ""); 
    
else 
        
*jstr = (*env)->NewString(env, jwstr, nsize); 

    free(wcstr); 
    
return nsize;
}
posted on 2005-10-03 11:40 Javen-Studio 閱讀(778) 評(píng)論(0)  編輯 收藏 引用

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品99久久久久久宅男| 国产精品永久| 欧美激情一区三区| 亚洲国内自拍| 99精品欧美一区二区三区综合在线 | 久久中文欧美| 国产精品萝li| 一本色道久久综合| 日韩一级免费| 欧美日韩国产999| 亚洲国内精品在线| 国产一区二区三区奇米久涩| 亚洲综合电影| 另类图片国产| 99国产欧美久久久精品| 麻豆国产va免费精品高清在线| 久久综合久久综合久久| 国产一区二区三区观看| 亚洲欧美日韩专区| 蜜臀久久99精品久久久久久9| 久久久久久久综合狠狠综合| 老牛嫩草一区二区三区日本| …久久精品99久久香蕉国产| 亚洲美女淫视频| 欧美国产一区在线| 国产精品久久77777| 日韩视频永久免费观看| 午夜精品成人在线| 一区二区久久久久久| 久久影院午夜论| 久久久久成人网| 欧美风情在线| 欧美在线免费播放| 日韩午夜电影| 亚洲国产成人午夜在线一区| 亚洲免费综合| 亚洲一区在线免费| 欧美日韩成人精品| 亚洲电影在线播放| 一区二区亚洲精品国产| 午夜精品区一区二区三| 午夜在线成人av| 国产精品国产三级国产普通话三级 | 久久国产精品一区二区三区四区 | 女同性一区二区三区人了人一 | 99视频在线精品国自产拍免费观看| 亚洲黄色免费| 欧美国产日本在线| 亚洲国产日韩欧美在线动漫| 亚洲国产成人av在线| 亚洲欧美日韩电影| 亚洲一区二区三区乱码aⅴ| 欧美激情偷拍| 亚洲精品女av网站| 影音先锋亚洲电影| 久久综合九色九九| 亚洲国产成人tv| 亚洲精品三级| 欧美日韩一区二区精品| 一区二区三区免费看| 亚洲欧美影院| 国内精品久久久久久久果冻传媒| 久久精品二区亚洲w码| 麻豆精品视频| 亚洲啪啪91| 国产精品v欧美精品v日韩精品| 99精品视频一区二区三区| 亚洲免费在线观看视频| 国产小视频国产精品| 开心色5月久久精品| 欧美福利视频| 亚洲一区国产视频| 国产综合精品| 欧美成人免费播放| 一区二区三区波多野结衣在线观看| 亚洲免费在线观看| 精品福利av| 欧美日韩久久不卡| 香蕉av777xxx色综合一区| 另类激情亚洲| 在线亚洲+欧美+日本专区| 国产精品扒开腿做爽爽爽软件| 99在线精品观看| 久久久不卡网国产精品一区| 在线日韩欧美| 国产精品久久久久久久久久免费 | 亚洲免费成人av电影| 欧美特黄一区| 久久网站免费| 中文亚洲欧美| 一区二区三区四区蜜桃| 国产精品久久久久一区二区三区| 欧美在线观看一区二区| 亚洲国产精品小视频| 久久成人精品电影| 亚洲精品一区二区三区av| 国产视频在线观看一区二区| 欧美成人综合网站| 午夜日韩激情| 一本久久综合亚洲鲁鲁| 免费国产自线拍一欧美视频| 亚洲午夜av在线| 最新热久久免费视频| 国产日韩一区二区| 国产精品豆花视频| 免费在线观看日韩欧美| 欧美一区二区啪啪| 亚洲午夜精品久久久久久app| 欧美成人在线免费视频| 久久精品免费看| 亚洲欧美综合一区| 一区二区三区欧美在线观看| 在线观看日韩欧美| 国产自产高清不卡| 国产人成一区二区三区影院| 欧美日韩高清不卡| 免费成人性网站| 久久久久久噜噜噜久久久精品| 亚洲免费在线播放| 亚洲少妇诱惑| 亚洲午夜精品网| 99re6这里只有精品视频在线观看| 欧美a级片网站| 久久综合影视| 久久综合狠狠综合久久激情| 欧美在线视频一区二区三区| 亚洲图片欧美午夜| 99亚洲一区二区| 亚洲日本中文字幕区| 亚洲国产成人porn| 一区三区视频| 尤物九九久久国产精品的分类| 国产亚洲一区在线播放| 国产欧美日韩综合一区在线播放| 欧美午夜一区二区| 国产精品卡一卡二| 国产精品久久久久91| 国产精品免费网站| 国产精品成人在线| 国产精品日韩一区| 国产精品日韩一区二区| 免费美女久久99| 欧美专区福利在线| 欧美一区二粉嫩精品国产一线天| 在线亚洲激情| 亚洲一区二区三区欧美| 亚洲综合精品四区| 午夜精品久久| 久久精品女人| 欧美jizz19hd性欧美| 欧美高清在线视频| 欧美日韩国产探花| 国产精品福利在线| 国产精品一区二区三区久久久| 国产精品久久久久久久第一福利| 国产精品午夜电影| 国产综合自拍| 亚洲日本成人| 亚洲一区二区黄色| 午夜一区二区三区在线观看| 欧美中文字幕| 亚洲第一在线视频| 一区二区三区精品国产| 亚洲欧美国产va在线影院| 久久久99精品免费观看不卡| 嫩模写真一区二区三区三州| 欧美日韩国产丝袜另类| 国产伦精品一区二区三区四区免费 | 国内精品久久久久久久影视蜜臀 | 欧美制服丝袜第一页| 免费成人美女女| 国产精品国产馆在线真实露脸| 国产日韩欧美一区| 亚洲国产另类久久精品| 亚洲视频第一页| 久久色在线观看| 亚洲精品视频在线播放| 中文无字幕一区二区三区| 久久国产天堂福利天堂| 欧美裸体一区二区三区| 国模吧视频一区| 亚洲图中文字幕| 鲁大师影院一区二区三区| 日韩视频在线免费观看| 久久精品99无色码中文字幕| 欧美日韩国产首页在线观看| 国产午夜一区二区三区| 一本色道久久综合亚洲精品不卡| 久久久久久国产精品一区| 91久久久久久久久| 欧美一区二区视频在线观看2020| 免费成人av在线| 国产一区二区三区免费在线观看| 亚洲精品专区| 久久伊人精品天天| 亚洲伊人伊色伊影伊综合网| 欧美阿v一级看视频| 国产一区二区丝袜高跟鞋图片| 日韩一区二区精品在线观看| 久久久综合网站|