這是一個(gè)可以從亂碼文本中得到正確的原始文本的程序,其基于的原理在于錯(cuò)誤的編碼往往導(dǎo)致位補(bǔ)充,因此正確的文本使用的字節(jié)數(shù)應(yīng)該是最少的(之一)。
import java.io.UnsupportedEncodingException;
/*
* 這是一個(gè)可以從亂碼文本中得到正確的原始文本的程序,其基于的原理在于錯(cuò)誤的編碼往往導(dǎo)致位補(bǔ)充,
* 因此正確的文本使用的字節(jié)數(shù)應(yīng)該是最少的(之一)。
*
* 如果你在測(cè)試此程序時(shí),無法得到正確的文本,可能的原因如下:
* 1.此程序僅能從一次錯(cuò)誤編碼文本中得到原始文本,無法從多次錯(cuò)誤編碼中恢復(fù)文本。
* 2.有時(shí)錯(cuò)誤的編碼導(dǎo)致一些字符變?yōu)椴豢梢娮址憧赡軟]有把所有的亂碼文本拷貝過來,從而導(dǎo)致位缺失。這種情況下無法恢復(fù)文本。
* 3.原始文本是一個(gè)比較大的字符集,錯(cuò)誤的編碼使用小的字符集,那些在小字符集之外的字符信息丟失,無法從中解析正確的文本。
* 4.恭喜你中獎(jiǎng)了,有一些字符使用任何一種編碼沒有什么不同或者錯(cuò)誤的編碼沒有導(dǎo)致位補(bǔ)充,那么我也無能為力了。(這種情況確實(shí)很少見)
*
* 注:程序中的亂碼文本是將百度首頁(utf-8)調(diào)整為gbk(顯然會(huì)亂碼)得到的,有興趣的同志可以使用其他的亂碼測(cè)試。有問題歡迎回復(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="寰
主站蜘蛛池模板:
焉耆|
中超|
开阳县|
山阴县|
金寨县|
嘉祥县|
凤冈县|
乌鲁木齐县|
澄江县|
阳朔县|
基隆市|
通榆县|
惠来县|
华亭县|
南澳县|
榕江县|
丁青县|
花莲市|
韩城市|
五大连池市|
武平县|
通州区|
靖江市|
巴青县|
泰安市|
民乐县|
万山特区|
潍坊市|
南京市|
昭觉县|
静海县|
长泰县|
资中县|
荥经县|
子长县|
乌兰察布市|
额济纳旗|
秀山|
龙州县|
呼伦贝尔市|
桐庐县|