<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Feeling

        三人行,必有我?guī)熝?/p>

       ::  :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
      185 隨筆 :: 0 文章 :: 392 評(píng)論 :: 0 Trackbacks

    大概因?yàn)殚_(kāi)發(fā)環(huán)境是英文的緣故吧,做了這么久時(shí)間的SWT-Extension,直到今天才發(fā)現(xiàn)存取中文都是亂碼。不過(guò)顯而易見(jiàn)的是Test Case做得太少了,畢竟是自己的開(kāi)源項(xiàng)目,在上面投入的是興趣,而不是精力。雖然一直在弄,但動(dòng)輒就幾個(gè)月沒(méi)有commit,而且到現(xiàn)在也沒(méi)有一個(gè)正式版發(fā)布。本來(lái)可以積累一點(diǎn)user的,現(xiàn)在估計(jì)也都跑光了。

    下面這段代碼用于JNI中jstring和Window char之間轉(zhuǎn)換:

    char* jstringToNative( JNIEnv  *env, jstring jstr )
    {
      
    int length = env->GetStringLength(jstr );
      
    const jchar* jcstr = env->GetStringChars(jstr, 0 );
      
    char* rtn = (char*)malloc( length*2+1 );
      
    int size = 0;
      size 
    = WideCharToMultiByte( CP_ACP, 0, (LPCWSTR)jcstr, length, rtn,(length*2+1), NULL, NULL );
      
    if( size <= 0 )return NULL;
      env
    ->ReleaseStringChars(jstr, jcstr );
      rtn[size] 
    = 0;
      
    return rtn;
    }

    jstring nativeTojstring( JNIEnv
    * env, char* str )
    {
      jstring rtn 
    = 0;
      
    int slen = strlen(str);
      unsigned 
    short * buffer = 0;
      
    if( slen == 0 )
        rtn 
    = env->NewStringUTF( str ); 
      
    else
      {
        
    int length = MultiByteToWideChar( CP_ACP, 0, (LPCSTR)str, slen, NULL, 0 );
        buffer 
    = (unsigned short *)malloc( length*2 + 1 );
        
    if( MultiByteToWideChar( CP_ACP, 0, (LPCSTR)str, slen, (LPWSTR)buffer, length ) >0 )
          rtn 
    = env->NewString(  (jchar*)buffer, length );
      }
      
    if( buffer )
      free( buffer );
      
    return rtn;
    }



    JNI 用起來(lái)實(shí)在太麻煩了,比我做Java開(kāi)發(fā)效率實(shí)在低得太多,各種各樣的類(lèi)型轉(zhuǎn)換,我頭都暈了…… 另外JNI好像是SUN中國(guó)研究院搞的,怎么就沒(méi)有提供一個(gè)好的中文解決方案?

    Eclipse SWT Extension snapshot:














    評(píng)論

    # re: SWT Extension做了這么久,今天才發(fā)現(xiàn)存取中文有問(wèn)題…… 2007-06-25 12:50 BeanSoft
    所以 SWT 也就 IBM 這樣財(cái)大氣粗的人才來(lái)在哪里搞所謂的 特定平臺(tái)的 本地實(shí)現(xiàn)了. JDK 也是靠 SUN 這個(gè)大樹(shù)在寫(xiě)各個(gè)操作系統(tǒng)的 C 代碼.  回復(fù)  更多評(píng)論
      

    # re: SWT Extension做了這么久,今天才發(fā)現(xiàn)存取中文有問(wèn)題…… 2007-06-27 14:15 bigbigbig
    兄弟的SWT Extension看上去很不錯(cuò)啊~提供個(gè)下載吧,學(xué)習(xí)一下  回復(fù)  更多評(píng)論
      


    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    GitHub |  開(kāi)源中國(guó)社區(qū) |  maven倉(cāng)庫(kù) |  文件格式轉(zhuǎn)換 
    主站蜘蛛池模板: 理论片在线观看免费| 久久亚洲国产精品123区| 伊人久久大香线蕉免费视频| 亚洲已满18点击进入在线观看| 久久综合图区亚洲综合图区| 亚洲?V乱码久久精品蜜桃| 中文字幕无码成人免费视频| 嫩草在线视频www免费观看| 人妻免费久久久久久久了| 亚洲日韩乱码中文字幕| 亚洲伊人久久大香线蕉| 久久精品国产亚洲麻豆| 国产日韩成人亚洲丁香婷婷| 国产一区视频在线免费观看 | 日本一道综合久久aⅴ免费| 1000部无遮挡拍拍拍免费视频观看| 国产在线精品观看免费观看| 成人特级毛片69免费观看| 亚洲AV无码男人的天堂| 亚洲欧美成aⅴ人在线观看| 亚洲女人18毛片水真多| 亚洲网红精品大秀在线观看| 亚洲国产精品免费视频| 亚洲AV永久青草无码精品| 亚洲中文字幕无码一区| 狠狠综合久久综合88亚洲| 亚洲日韩国产精品乱| 亚洲国产成人影院播放| xvideos亚洲永久网址| 亚洲精品456播放| 亚洲精品无码日韩国产不卡?V | 杨幂最新免费特级毛片| 亚洲AV日韩AV无码污污网站| 亚洲av无码一区二区三区在线播放| 亚洲国产成人精品无码区二本 | mm1313亚洲精品国产| 亚洲精品456播放| 亚洲日韩精品无码一区二区三区 | 欧美亚洲精品一区二区| 极品色天使在线婷婷天堂亚洲| 国产成人亚洲精品电影|