Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android--字符串和16進制相互轉化(解決中文亂碼),android--進制

Android--字符串和16進制相互轉化(解決中文亂碼),android--進制

編輯:關於android開發

Android--字符串和16進制相互轉化(解決中文亂碼),android--進制


import java.io.ByteArrayOutputStream;

/**
 * Created by Administrator on 2016/2/2.
 * -----------16進制和字符串互轉---------
 * ------------解決中文亂碼問題---------
 */
public class StringToSixthUtils {

    private static String hexString = "0123456789abcdef";

    /*
     * 將字符串編碼成16進制數字,適用於所有字符(包括中文)
     */
    public static String encode(String str) {
        //根據默認編碼獲取字節數組
        byte[] bytes = str.getBytes();
        StringBuilder sb = new StringBuilder(bytes.length * 2);
        //將字節數組中每個字節拆解成2位16進制整數
        for (int i = 0; i < bytes.length; i++) {
            sb.append(hexString.charAt((bytes[i] & 0xf0) >> 4));
            sb.append(hexString.charAt((bytes[i] & 0x0f)));
        }
        return sb.toString();
    }

    /*
     * 將16進制數字解碼成字符串,適用於所有字符(包括中文)
     */
    public static String decode(String bytes) {
        ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length() / 2);
        //將每2位16進制整數組裝成一個字節
        for (int i = 0; i < bytes.length(); i += 2)
            baos.write((hexString.indexOf(bytes.charAt(i)) << 4 | hexString.indexOf(bytes.charAt(i + 1))));
        return new String(baos.toByteArray());
    }
}

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved