回覆列表
  • 1 # 麥凱阿颯

    在計算機中,任何文字都是以指定的編碼方式儲存的,在java中常見的幾種編碼是:utf 、ISO8859-1,GBK 、unicode.

    iso8859-1屬於單自己編碼,只能表示0~255的字元範圍,主要應用在英語上

    gbk中文的國標編碼,主要表示漢字,是雙位元組編碼

    unicode 標準編碼之一,使用16進製表示編碼,此編碼不相容iso8859-1

    utf編碼是不定長編碼,每一個字元的長度從1-6個位元組不等。

    亂碼的產生,主要是因為程式沒有處理好字元編碼,比如預設編碼是utf,但是在程式中使用了iso8859-1編碼,這時就產生了亂碼。亂碼產生的根本原因是字元編碼不統一造成的。

    System類可以獲取系統相關的資訊, 獲得編碼的方法是 public static properties getProperty()

  • 2 # 匠心架構

    1.第一種方式【java.net.URLDecoder】

    String condition = URLDecoder.decode(condition, "utf-8");

    2.第二種方式

    String filePath = new String(filePath.getBytes("UTF-8"),"iso-8859-1");

    3.第三種方式【java.net.URLEncoder】

    String fileName = URLEncoder.encode(fileName, "utf-8");

    在合適的地方運用合適的編碼轉碼,就能得到良好的效果!

    判斷字串的編碼方式:

    String iso8859 = new String(fileName.toString().getBytes("iso8859-1"));

    String gbk = new String(fileName.toString().getBytes("gbk"));

    String utf8 = new String(fileName.toString().getBytes("utf-8"));

    if(iso8859.equals(fileName.toString())){

    System.out.println("iso8859");

    }else if(gbk.equals(fileName.toString())){

    System.out.println("gbk");

    }else if(utf8.equals(fileName.toString())){

    System.out.println("utf8");

    }

  • 中秋節和大豐收的關聯?
  • 100史詩荊棘紅眼穿上怎麼樣?