今天在写程序(java导出csv文件)的时候,无论怎么调,导出的文件都是乱码。
具体状况如下:
1、数据库中取出的数据时 ,数据没有乱码。
2、导出时,将数据写入到writer中:
writer.append(new String(t.toString().getBytes("utf-8"),"gb2312")).append(CSV_END);
结果调试过程中总是调试乱码。
针对以上问题,我通过
select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';
查询ORACLE数据库编码,发现数据库编码是ZHS16GBK。
因此,我把数据写入到writer中时不转码:
writer.append(new String(t.toString().getBytes())).append(CSV_END);
在写入到文件中,规定OutputStreamWriter的编码方式为GB2312:
通过使数据库编码与导出CSV编码一致,结果导出文件没有乱码。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29753604/viewspace-1253299/
,如需转载,请注明出处,否则将追究法律责任。