簡體   English   中英

如何在Android中將下載的csv文件(ANSI)轉換為UTF-8

[英]How can I convert a downloaded csv file (ANSI) to UTF-8 in Android

我的程序下載了一個CSV文件,將其拆分,然后用它來構建listView,但是某些字符錯誤。 我在notepad ++中檢查了CSV文件,發現字符編碼為ANSI。 如何將其轉換為UTF-8。

@Override
protected List<Teendo> doInBackground(String... params) {
try {

        URL url = new URL("http://www.programozas-oktatas.hu/androidvizsga/todo.csv");
        InputStream is = url.openStream();
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);

        String sor = br.readLine();

        while ((sor = br.readLine()) != null) {
            String [] darabok = sor.split(";");
            if (darabok.length > 1) {
                String megnevezes = darabok[0];
                String [] datumdarabok = darabok[1].split("-");
                int ev = Integer.parseInt(datumdarabok[0]);
                int ho = Integer.parseInt(datumdarabok[1]);
                int nap = Integer.parseInt(datumdarabok[2]);
                int fontossag =  Integer.parseInt(darabok[2]);
                Teendo teendo = new Teendo (megnevezes,ev,ho,nap,fontossag);
            teendoList.add(teendo);
            }
        }
    } catch (MalformedURLException e) {
        Log.w("DOWNLOAD", e.getMessage());
    } catch (IOException e) {
        Log.w("DOWNLOAD", e.getMessage());
    }           
    return teendoList;
}

“ ANSI”是一個模糊,誤導性的術語, 應避免使用

在這種情況下,如果文件是匈牙利語,請使用支持以下字符的編碼:ISO-8859-2或Windows-1250-而不是ISO-8859-1。 例如,第一行包含以下任一內容:

"Határidõ"   // lowercase-O with tilde, ISO-8859-1
"Határidő"   // lowercase-O with double-acute, ISO-8859-2

Windows字符集具有其他可打印字符,以代替“等效” ISO字符集中的控制字符。 但是與ISO-8859-1的情況不同,Windows-1252在同一位置具有8859-1的所有可打印字符,而Windows-1250在不同位置具有一些可打印的字符。 考慮所有這些因素,理想情況下,您可以確定實際使用的編碼。 例如,如果數據使用歐元(僅在Windows-1250中使用歐元),則可以在實例化InputStreamReader時指定:

InputStreamReader isr = new InputStreamReader(is, "Windows-1250");

告訴您的InputStreamReader使用正確的編碼:

InputStreamReader isr = new InputStreamReader(is, "ISO-8859-1");

這將導致文件被讀取為ISO-8859-1(ANSI),而不是系統默認編碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM