天天看點

Android Studio讀取assets目錄json檔案亂碼問題

最近在項目中遇到了一個很奇怪的問題,将assets目錄下的json檔案讀取出來後出現亂碼,檢查項目編碼格式統一是utf-8。讀取assets的方法為

public static String getJson(Context mContext, String fileName) {
        StringBuilder sb = new StringBuilder();
        InputStream input = mContext.getClass().getClassLoader().getResourceAsStream("assets/" +
                fileName);
        try {
            byte[] b = new byte[];
            for (int n; (n = input.read(b)) != -; ) {
                sb.append(new String(b, , n));
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            sb.delete(, sb.length());
        }
        return sb.toString().trim();
    }
           
網上求助後嘗試修改為如下:
           
public static String getJson(Context context, String fileName) {
        String resultString = "";
        try {
            InputStream inputStream = context.getResources().getAssets().open(fileName);
            byte[] buffer = new byte[inputStream.available()];
            inputStream.read(buffer);
            resultString = new String(buffer, "UTF-8");
        } catch (Exception e) {
            // TODO: handle exception
        }
        return resultString;
    }
           
應該是讀取assets時候預設轉碼的問題,指定utf-8後正常顯示。