最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用java從亂碼文本中解析出正確的文本

 更新時間:2014年04月09日 09:13:07   作者:  
這篇文章主要介紹了使用java從亂碼文本中解析出正確的文本的方法,需要的朋友可以參考下

這是一個可以從亂碼文本中得到正確的原始文本的程序,其基于的原理在于錯誤的編碼往往導(dǎo)致位補(bǔ)充,因此正確的文本使用的字節(jié)數(shù)應(yīng)該是最少的(之一)。


復(fù)制代碼 代碼如下:

package com.hongyuan.test;

import java.io.UnsupportedEncodingException;

/*
 * 這是一個可以從亂碼文本中得到正確的原始文本的程序,其基于的原理在于錯誤的編碼往往導(dǎo)致位補(bǔ)充,
 * 因此正確的文本使用的字節(jié)數(shù)應(yīng)該是最少的(之一)。
 *
 * 如果你在測試此程序時,無法得到正確的文本,可能的原因如下:
 * 1.此程序僅能從一次錯誤編碼文本中得到原始文本,無法從多次錯誤編碼中恢復(fù)文本。
 * 2.有時錯誤的編碼導(dǎo)致一些字符變?yōu)椴豢梢娮址?,你可能沒有把所有的亂碼文本拷貝過來,從而導(dǎo)致位缺失。這種情況下無法恢復(fù)文本。
 * 3.原始文本是一個比較大的字符集,錯誤的編碼使用小的字符集,那些在小字符集之外的字符信息丟失,無法從中解析正確的文本。
 * 4.恭喜你中獎了,有一些字符使用任何一種編碼沒有什么不同或者錯誤的編碼沒有導(dǎo)致位補(bǔ)充,那么我也無能為力了。(這種情況確實(shí)很少見)
 *
 * 注:程序中的亂碼文本是將百度首頁(utf-8)調(diào)整為gbk(顯然會亂碼)得到的,有興趣的同志可以使用其他的亂碼測試。有問題歡迎回復(fù)。
 */
public class CharSetTest {

 public static final String[] CHARSET_NAMES=new String[]{"ISO8859-1","GBK","UTF-8"};

 public static void main(String[] args) throws UnsupportedEncodingException {
  //亂碼字符串
  String str="寰蔣鐧懼害鍏辨帹Windows XP鑱斿悎闃叉姢瑙e喅鏂規(guī)";

  int strLength=Integer.MAX_VALUE; //字符長度
  String newStr="";     //從亂碼字符串分析出的字符串
  String srcCharSet="";    //當(dāng)前亂碼字符串編碼
  String targetCharSet="";   //亂碼字符串正確的編碼

  //遍歷可能的編碼組合,從中造成編碼長度最小的編碼格式
  for(int i=0;i<CHARSET_NAMES.length;i++){
   for(int j=0;j<CHARSET_NAMES.length;j++){
    String temp=new String(str.getBytes(CHARSET_NAMES[i]),CHARSET_NAMES[j]);
    //System.out.println(temp);
    if(temp.length()<=strLength){
     strLength=temp.length();
     newStr=temp;
     srcCharSet=CHARSET_NAMES[i];
     targetCharSet=CHARSET_NAMES[j];
    }
   }
  }
  //輸出查詢到的編碼及正確文本格式
  System.out.println(srcCharSet+"-->"+targetCharSet+":"+newStr);
 }

}

相關(guān)文章

  • java提取json中某個數(shù)組的所有值方法

    java提取json中某個數(shù)組的所有值方法

    下面小編就為大家分享一篇java提取json中某個數(shù)組的所有值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • JAVA Frame 窗體背景圖片,首位相接滾動代碼實(shí)例

    JAVA Frame 窗體背景圖片,首位相接滾動代碼實(shí)例

    這篇文章主要介紹了JAVA Frame 窗體背景圖片,首位相接滾動代碼示例,需要的朋友可以參考下復(fù)制代碼
    2017-04-04
  • Spring之ShutDown?Hook死鎖現(xiàn)象解讀

    Spring之ShutDown?Hook死鎖現(xiàn)象解讀

    這篇文章主要介紹了Spring之ShutDown?Hook死鎖現(xiàn)象解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • mybatis中orderBy(排序字段)和sort(排序方式)引起的bug及解決

    mybatis中orderBy(排序字段)和sort(排序方式)引起的bug及解決

    這篇文章主要介紹了mybatis中orderBy(排序字段)和sort(排序方式)引起的bug,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 淺析JDK和Tomcat的安裝與配置方法

    淺析JDK和Tomcat的安裝與配置方法

    這篇文章主要介紹了JDK和Tomcat的安裝與配置方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-12-12
  • Java調(diào)用第三方接口封裝實(shí)現(xiàn)

    Java調(diào)用第三方接口封裝實(shí)現(xiàn)

    本文主要介紹了Java調(diào)用第三方接口封裝實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Java架構(gòu)設(shè)計之六步拆解 DDD

    Java架構(gòu)設(shè)計之六步拆解 DDD

    DDD(Domain-Driven Design 領(lǐng)域驅(qū)動設(shè)計)是由Eric Evans最先提出,目的是對軟件所涉及到的領(lǐng)域進(jìn)行建模,以應(yīng)對系統(tǒng)規(guī)模過大時引起的軟件復(fù)雜性的問題
    2022-02-02
  • spring MVC cors跨域?qū)崿F(xiàn)源碼解析

    spring MVC cors跨域?qū)崿F(xiàn)源碼解析

    本文主要介紹了spring MVC cors跨域?qū)崿F(xiàn)源碼解析。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • MyBatis-Plus中實(shí)現(xiàn)自定義復(fù)雜排序邏輯的詳細(xì)步驟

    MyBatis-Plus中實(shí)現(xiàn)自定義復(fù)雜排序邏輯的詳細(xì)步驟

    這篇文章主要介紹了MyBatis-Plus中實(shí)現(xiàn)自定義復(fù)雜排序邏輯,通過使用MyBatis-Plus的QueryWrapper和SQL原始片段,我們可以靈活地實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)排序邏輯,這種方法尤其適用于需要對數(shù)據(jù)進(jìn)行特定規(guī)則排序的場景,需要的朋友可以參考下
    2024-07-07
  • springmvc的@Validated注解使用

    springmvc的@Validated注解使用

    這篇文章主要介紹了springmvc的@Validated注解使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12

最新評論

南漳县| 郎溪县| 温宿县| 西乌| 保德县| 进贤县| 馆陶县| 阿荣旗| 武山县| 称多县| 龙口市| 温泉县| 句容市| 芦溪县| 卓尼县| 阳曲县| 万年县| 松滋市| 株洲市| 枝江市| 遵义市| 阳东县| 庆城县| 黄龙县| 都昌县| 黄浦区| 丰原市| 龙陵县| 长汀县| 尚义县| 琼中| 平塘县| 天门市| 清流县| 涟水县| 迁安市| 怀集县| 英超| 湘潭县| 西藏| 南雄市|