android 工作室:使用 opencsv 读取带有日语字符的 csv

android studio: reading a csv with Japanese character using opencsv

我的资产文件中有一个 csv 文件,我想使用 opencsv 读取它
我成功获取并读取文件但打印失败,
并且字符串显示为下面的屏幕截图。
我的 csv 保存为来自 excel

的 Unicode

我读取和记录 csv 的代码:

AssetManager assetManager = context.getAssets();
    try {
        InputStream csvStream = assetManager.open("data.csv");
        InputStreamReader csvStreamReader = new InputStreamReader(csvStream);
        CSVReader csvReader = new CSVReader(csvStreamReader);
        String [] nextLine;
        Log.d("test","reading csv");

        while ((nextLine = csvReader.readNext()) != null) {
            // nextLine[] is an array of values from the line
            Log.d("test",nextLine.toString() + " etc...");
            String[] temp= nextLine.toString().split(",");
            for(int i=0; i<nextLine.length;i++){
                Log.d("test", nextLine[i]);
            }
            break;
        }


    } catch (FileNotFoundException e) {
        Log.d("test","fail read csv");
        e.printStackTrace();
    } catch (IOException e) {
        Log.d("test","io exception csv");
        e.printStackTrace();
    }

csv 文件的文本

和 logcat 中的屏幕截图:

这取决于文件的编码。

运气好的话,它是 UTF-8 格式的。你需要告诉你的 InputStreamReader 使用 UTF-8 否则它可能 fall back to ISO 8859_1 (ISO-Latin-1).

您可以这样做:

InputStreamReader csvStreamReader = new InputStreamReader(csvStream, "UTF-8");

如果您的文件以其他格式编码,则需要指定。

编辑:重读后,我看到你从 Excel 导出。您需要 tell Excel to export in UTF-8 而不是默认值(可能 Windows-1252)。