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)。
我的资产文件中有一个 csv 文件,我想使用 opencsv 读取它
我成功获取并读取文件但打印失败,
并且字符串显示为下面的屏幕截图。
我的 csv 保存为来自 excel
我读取和记录 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)。