小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

- 好山,好水,好人家——鄧鵬的bolg

 accesine 2005-08-25

最近一段時(shí)間,因?yàn)檎谘芯咳臋z索,所以遇到了很多問(wèn)題。首先就是怎樣對(duì)文章進(jìn)行差別處理,這種差別在中文中尤其明顯,例如:標(biāo)點(diǎn),數(shù)字、字母的全半角問(wèn)題等。

我在網(wǎng)上查找了一些關(guān)于全半角轉(zhuǎn)換的代碼,但可惜只有C#(因?yàn)檎麄€(gè)系統(tǒng)需要考慮移植的問(wèn)題,所以計(jì)劃用JAVA實(shí)現(xiàn)),不過(guò),有總比沒(méi)有好,仔細(xì)研究了一下算法,感覺(jué)用JAVA實(shí)現(xiàn)也很簡(jiǎn)單,所以就產(chǎn)生今天這篇文檔,希望可以為今后的工作提供參考。

進(jìn)入主題>>

1、首先,需要知道的是中文編碼的種類,有:GB2312 、GBK、Unicode、UTF8、BIG5等?,F(xiàn)在大多數(shù)的應(yīng)用軟件都采用Unicode編碼,在JAVA的內(nèi)部也是如此。所以關(guān)于上述問(wèn)題,只需要對(duì)字符的Unicode編碼進(jìn)行一個(gè)相應(yīng)的處理就可以解決。

2、下面說(shuō)明一下Unicode編碼,該編碼采用雙字節(jié)編碼方式,對(duì)所有字符,都采用2個(gè)字節(jié)編碼,即4byte,這點(diǎn)很重要,我們只需要對(duì)這4byte進(jìn)行處理就可以完成相應(yīng)字符的轉(zhuǎn)換了。另外在Unicode編碼中,標(biāo)點(diǎn)、數(shù)字、字母的編碼與漢字的編碼在最高位會(huì)有明顯區(qū)別。有興趣可以參看Unicode 編碼表

3、關(guān)于全角轉(zhuǎn)半角的問(wèn)題,在Unicode中,標(biāo)點(diǎn)、數(shù)字、字母的半角編碼最高位均為0,它們的全角編碼與半角編碼的第三位相差32h。

根據(jù)上面的結(jié)論,實(shí)現(xiàn)的全角轉(zhuǎn)半角的JAVA代碼如下,至于半角轉(zhuǎn)全角,加變減就成了:

public class change {
    
    public static void main(String[] args) {
    
     String QJstr="hello!! 全角轉(zhuǎn)換,DAO";
     
     String result=SBCchange(QJstr);
    
     System.out.println(QJstr+"\n"+result);
  
 }
 
 
 public static final String SBCchange(String QJstr)
 {
     String outStr="";
     String Tstr="";
     byte[] b=null;

     for(int i=0;i<QJstr.length();i++)
     {     
      try
      {
       Tstr=QJstr.substring(i,i+1);
       b=Tstr.getBytes("unicode");
      }
      catch(java.io.UnsupportedEncodingException e)
      {
       e.printStackTrace();
      }     
   
      if (b[3]==-1)
      {
       b[2]=(byte)(b[2]+32);
       b[3]=0;      
        
       try
       {       
        outStr=outStr+new String(b,"unicode");
       }
       catch(java.io.UnsupportedEncodingException e)
       {
        e.printStackTrace();
       }      
      }else outStr=outStr+Tstr;
     }
    
     return outStr; 
  }

 }
原帖來(lái)自于網(wǎng)易社

另外感覺(jué)C#與JAVA在字符處理方面的差別比較大,不知道是不是我的理解有問(wèn)題,改天得好好看看。

至于其它編碼,以后有時(shí)間再想吧,腦子有點(diǎn)疼了。。。

相關(guān)鏈接:

           C#里面全角和半角的自由轉(zhuǎn)換 av

           Unicode 編碼表

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多