今天遇到了一个很坑的问题,在抓取内容后写入文本,顺利成功了。但是把文件导入数据库时,都是乱码!!
但是写代码的时候已经指定了UTF-8格式了呀,为啥还是乱码呢?
打开文件看了下,有中文的确实是UTF-8格式,但是没有中文内容的文件格式UNIX格式,好吧系统自动根据文件内容默认使用了UNIX格式。
上代码:
1:原来的代码
public void WriteStringToFile4(String filePath, String content) {
try {
RandomAccessFile rf = new RandomAccessFile(new File(filePath), "rw");
byte buffer[] = new byte[1024];
buffer = content.getBytes();
rf.write(buffer);
rf.close();
} catch (IOException e) {
e.printStackTrace();
}
}
2:修改后的代码
public void WriteStringToFile4(String filePath, String content) {
try {
File file = new File(filePath);
RandomAccessFile rf = new RandomAccessFile(filePath, "rw");
if (file.length() < 1) {
final byte[] bom = new byte[] { (byte) 0xEF, (byte) 0xBB, (byte) 0xBF }; //指定文件编码格式
rf.write(bom);
}
byte buffer[] = new byte[1024];
buffer = content.getBytes();
rf.write(buffer);
rf.close();
} catch (IOException e) {
e.printStackTrace();
}
}