ZK文件上传中文问题:
1.由于ZK上传时系统自动采用页面的编码格式。
文件上传时将按此编码格式读取文件,形成字节流上传到应用服务器,然后应用服务器再根据服务器的编码将字节流写成文件.
如上传文件中有中文, 这样上传的编码字符集和写文件时的编码字符集不同就会造成字符编码不同形成 乱码。
2.解决方案:
例如: 上传的文件编码为:GBK
首先 上传时要将 上传页面的字符编码设置成GBK (如下)
Desktop desktop = this.getPage().getDesktop();
Configuration conf = desktop.getWebApp().getConfiguration();
conf.setUploadCharset("GBK"); 将上传时的字节流转换成GBK编码的字节。
然后: 创建 一个空文件 ,并将上传字节写入到空文件中.
File f = new File(fileuploadpathfileName);
f.createNewFile();
Files.copy(f,r,"GBK"); 将上传的字节流以GBK的字符编码写入到空件中形成一个有容内的文件。
1.由于ZK上传时系统自动采用页面的编码格式。
文件上传时将按此编码格式读取文件,形成字节流上传到应用服务器,然后应用服务器再根据服务器的编码将字节流写成文件.
如上传文件中有中文, 这样上传的编码字符集和写文件时的编码字符集不同就会造成字符编码不同形成 乱码。
2.解决方案:
例如: 上传的文件编码为:GBK
首先 上传时要将 上传页面的字符编码设置成GBK (如下)
Desktop desktop = this.getPage().getDesktop();
Configuration conf = desktop.getWebApp().getConfiguration();
conf.setUploadCharset("GBK"); 将上传时的字节流转换成GBK编码的字节。
然后: 创建 一个空文件 ,并将上传字节写入到空文件中.
File f = new File(fileuploadpathfileName);
f.createNewFile();
Files.copy(f,r,"GBK"); 将上传的字节流以GBK的字符编码写入到空件中形成一个有容内的文件。