Java打印出来的txt或者csv文件的中文内容是乱码
下面这段代码,打印出来的中文是乱码。求帮助public static void main(String[] args) {
printFile("F:/Con/1111.csv");
}
public static void printFile(String fileName){
try{
DocFlavor dof = null;
if(fileName.endsWith(".gif")){
//gif
dof = DocFlavor.INPUT_STREAM.GIF;
}else if(fileName.endsWith(".jpg")){
//jpg
dof = DocFlavor.INPUT_STREAM.JPEG;
}else if(fileName.endsWith(".png")){
//png
dof = DocFlavor.INPUT_STREAM.PNG;
}else{
dof = DocFlavor.INPUT_STREAM.AUTOSENSE;
}
FileInputStream fin = new FileInputStream(fileName);
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
pras.add(new Copies(1));
PrintService pss[] = PrintServiceLookup.lookupPrintServices(null,pras);
if (pss.length == 0){
System.err.println("The printer does not support the appropriate DocFlavor");
return;
}
//PrintService ps = PrintServiceLookup.lookupDefaultPrintService();
for (int i=0;i<pss.length;i++) {
PrintService ps = pss[i];
if ("HP LaserJet Professional CM1410 Series PCL 6".equals(ps.getName())) {
System.out.println("Printing ps=============" + ps);
//DocAttributeSet das = new HashDocAttributeSet();
Doc doc = new SimpleDoc(fin, dof, null);
DocPrintJob job = ps.createPrintJob();
job.print(doc, pras);
fin.close();
System.out.println("Printing OK...........");
break;
}
}
}catch (IOException ie){
ie.printStackTrace();
} catch (PrintException e) {
e.printStackTrace();
}
} --------------------编程问答-------------------- 猜一下,可能是区域设定的问题。另外,cvs里面如果有中文的话,用什么编码可能也是需要考虑的。 --------------------编程问答-------------------- 大多数中文乱码都是编码的问题~ --------------------编程问答-------------------- 同问 也是这个问题求解决 --------------------编程问答-------------------- 读代码的时候,加个编码格式
代码看着有点晕 --------------------编程问答-------------------- 是编码的问题! --------------------编程问答-------------------- 编码的问题~往这个方向考虑下~ --------------------编程问答-------------------- 可能是编码问题。 --------------------编程问答-------------------- 应该是文件的编码和java编码方式的不同吧 --------------------编程问答-------------------- java默认的字符编码是gbk,当然这和你的操作系统有关。如果文件不是以gbk编码的话,比如是UTF-8那么你读进来的数据会出先乱码,因为gbk是2个字节编码中文,而utf-8默认是3个字节编码中文的。
补充:Java , Java SE