上传文件乱码,GBK转UTF-8

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了上传文件乱码,GBK转UTF-8相关的知识,希望对你有一定的参考价值。

最近遇到这样一个问题,我上传文件没有转换字符集windows默认GBK,结果当我需要读文件显示时用UTF-8转当然会出现乱码,为了解决这个问题,我就将上传时文件一同也转成UTF-8了这样就不会乱码了,上传时转换字符集方法如下:

String root = filePath;// 上传路径
File rootFile = new File(root);
// 路径不存在先创建路径
if (!rootFile.exists()) {
rootFile.mkdirs();
}
// 获取后缀type
String suffix = domain.getSuffixName();
// 新文件名
String strNewName = domain.getScriptName().trim() + domain.getVersionName().trim() + "."
+ suffix;
domain.setScriptUrl("/" + strNewName);
File destFile;
String destFilePath=root+"/"+strNewName;
destFile = new File(root, strNewName);
OutputStream outputStream;
outputStream = new FileOutputStream(destFile);
// file是上传过来的文件,存放为临时tmp
File file = domain.getFile();

String context = "";
InputStreamReader isr;
isr = new InputStreamReader(new FileInputStream(file), "GBK");
BufferedReader br = new BufferedReader(isr);
String line;

while ((line = br.readLine()) != null) {
context += line + "\r\n";
System.out.println(line);
}

br.close();

byte[] content = context.getBytes();
context = new String(content, "UTF-8");

BufferedWriter writer;

FileOutputStream fos = new FileOutputStream(destFilePath, true);
System.out.println(root+"/"+strNewName);
writer = new BufferedWriter(new OutputStreamWriter(fos, "UTF-8"));
writer.append(context);
writer.close();

 

以上是关于上传文件乱码,GBK转UTF-8的主要内容,如果未能解决你的问题,请参考以下文章

理解并解决GBK转UTF-8奇数中文乱码(转)

如何把js获取url中文乱码转码

c# 将文件gbk转换为utf-8

Java 中文字符串编码之GBK转UTF-8

utf-8编码的页面如何转成gbk编码的页面(急)

字符串转码中文乱码问题的进一步理解 UTF-8 GBK转码