java上传文件到linux上 防止文件名中文乱码
2017-12-23 15:04
791 查看
在windows系统下 默认编码是GBK/GB2312的编码格式,linux上默认为utf-8的编码格式。
当我们在windows上上传文件的时候,JVM会根据本身的操作系统所默认的编码格式 编译成unicode字节数组,进行存储。
然后解析的时候也会根据本身的操作系统默认的编码格式进行解析。
上传文件中文乱码时: JVM编译成gbk格式的unicode字节数组,然后解析成utf-8的格式,所以导致乱码。
乱码的本质是: 字符串原本的编码格式 和 读取解析的编码格式不一致 所造成的 。
在java中使用 new String(bytes,charset); 方法可以解决乱码问题。
bytes :表示编译采用什么格式进行编译 ,charset : 表示使用什么格式进行解析
在windows上 如:
String str="我很帅哦";
System.out.println(new String(str.getBytes(),"gbk")); 是正确的
System.out.println(new String(str.getBytes("utf-8"),"utf-8")); 也是正确的
System.out.println(new String(str.getBytes("gbk"),"utf-8")); 是错误的
那么 如何将GBK 转化成utf-8呢? (实际上是unicode转成utf-8)
byte[] utfbytes=str.getBytes("utf-8");
String strFinsh=new String (utfbytes,"utf-8");
简写:System.out.println(new String(str.getBytes("utf-8"),"utf-8"));
utf-8转成gbk 也是一样的
new String(str.getBytes("gbk"),"gbk");
getBytes(charset)
在JDK中这样描述的:Encodes this String into a sequence of bytes using the named charset, storing the result into a new byte array.
当我们在windows上上传文件的时候,JVM会根据本身的操作系统所默认的编码格式 编译成unicode字节数组,进行存储。
然后解析的时候也会根据本身的操作系统默认的编码格式进行解析。
上传文件中文乱码时: JVM编译成gbk格式的unicode字节数组,然后解析成utf-8的格式,所以导致乱码。
乱码的本质是: 字符串原本的编码格式 和 读取解析的编码格式不一致 所造成的 。
在java中使用 new String(bytes,charset); 方法可以解决乱码问题。
bytes :表示编译采用什么格式进行编译 ,charset : 表示使用什么格式进行解析
在windows上 如:
String str="我很帅哦";
System.out.println(new String(str.getBytes(),"gbk")); 是正确的
System.out.println(new String(str.getBytes("utf-8"),"utf-8")); 也是正确的
System.out.println(new String(str.getBytes("gbk"),"utf-8")); 是错误的
那么 如何将GBK 转化成utf-8呢? (实际上是unicode转成utf-8)
byte[] utfbytes=str.getBytes("utf-8");
String strFinsh=new String (utfbytes,"utf-8");
简写:System.out.println(new String(str.getBytes("utf-8"),"utf-8"));
utf-8转成gbk 也是一样的
new String(str.getBytes("gbk"),"gbk");
getBytes(charset)
在JDK中这样描述的:Encodes this String into a sequence of bytes using the named charset, storing the result into a new byte array.
相关文章推荐
- 解决部署在Linux下的java程序上传文件,文件名中文乱码
- WINDOWS上传中文文件名文件到LINUX显示乱码
- java上传下载文件,中文文件名不显示或乱码
- FCKeditor for Java 中文文件名文件上传乱码问题
- Uploadify上传文件中文文件名乱码 Java
- java上传文件到ftp-解决中文乱码的问题
- Struts1 FormFile上传中文文件,文件名出现乱码(struts.jar)
- Rails中上传文件保存中文文件名乱码
- 在windows中php 不能上传中文文件名文件和上传中文文件名乱码
- linux下将中文文件名文件cp到windows目录下后文件名乱码问题的解决
- 使用edtftpnet上传文件到Serv-U出现乱码的问题,并且不能创建中文文件名或文件夹。
- Linux下如何解压rar、zip格式文件?Linux VPS安装7zip/使用方法/压缩解压中文文件名乱码解决方案
- EXTJs + Struts2上传中文文件出现文件名乱码
- java io写文件 在linux出现中文乱码
- java web应用文件下载(包括中文文件名乱码处理)
- FCKeditor 在上传中文文件时文件名出现乱码
- java web应用文件下载(包括中文文件名乱码处理)
- FCKeditor 上传中文文件时文件名乱码
- java io写文件 在linux出现中文乱码
- 彻底解决Moodle上传文件中文文件名乱码解决方法