Java開發中字符集的使用

實際代碼開發中,經常會用到字符集,UTF-8GBK等。

如:

1,String類裏獲取字節數組的方法:

public byte[] getBytes(String charsetName) throws UnsupportedEncodingException {
    // ...
}
public byte[] getBytes(Charset charset) {
    // ...
}

2,HttpServletRequestHttpServletResponse設置字符集方法:

// HttpServletRequest
public void setCharacterEncoding(String env) throws java.io.UnsupportedEncodingException;

// HttpServletResponse
public void setCharacterEncoding(String charset);

很多人遇到這種情況就在參數中直接用硬編碼的方式。這樣雖不會造成程序運行錯誤,但也不好維護,建議使用常量的方式。

其實JDK和一些第三方的包中已經爲我們預定義了很多常用的字符集。我們直接拿來使用即可,還不用自己在項目中定義:

JDK自帶的StandardCharsets類:

注意:該類從JDK1.7纔開始引入。

public final class StandardCharsets {
    
    public static final Charset US_ASCII = Charset.forName("US-ASCII");
    
    public static final Charset ISO_8859_1 = Charset.forName("ISO-8859-1");

    public static final Charset UTF_8 = Charset.forName("UTF-8");

    public static final Charset UTF_16BE = Charset.forName("UTF-16BE");

    public static final Charset UTF_16LE = Charset.forName("UTF-16LE");

    public static final Charset UTF_16 = Charset.forName("UTF-16");
}

Apachecomons-compress包中的CharsetNames類:

public class CharsetNames {

    public static final String ISO_8859_1 = "ISO-8859-1";
    
    public static final String US_ASCII = "US-ASCII";
    
    public static final String UTF_16 = "UTF-16";
    
    public static final String UTF_16BE = "UTF-16BE";
    
    public static final String UTF_16LE = "UTF-16LE";
    
    public static final String UTF_8 = "UTF-8";
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章