java程序乱码和服务器上操作系统的编码有关系吗
这个路操作系统也有关系,如果没有指定编码,java 程序就会取系统的编码,建议设置成UTF-8编码。
1servlet中doGet方法:
String name = requestgetParameter("name");
String name = new String(requestgetParameter("name")getBytes("ISO8859-1"),"utf-8");
2使用过滤器解决乱码问题
在工程中新建Fliter过滤器文件
在doFliter方法中写入如下代码:
HttpServletRequest req = (HttpServletRequest)request;
3在开发工具eclipse文件编码设置:
1 点击windows。
2 在列表最下点击reference。
3 在reference界面点击Workspace
4 在右边的Tex file encoding点击Other。
5 选择对应编码即可。
6 建议使用UTF-8编码。
HTML应用变得越来越强大,有时会在浏览器中处理比较大的数据,并传回服务器,简单的get/post提交数据会变得比较慢,影响用户体验。如果对上传到数据先压缩一下再上传就可以节省上传时间。github上有一个JSZIP项目用JS实现了zip的常用的功能。jszip是基于文件结构的deflate压缩,下面来看一下代码。
上传大数据,采用Jszip默认压缩出的BASE64字符串,经过URL Encode处理后,提交到服务器。
private String zip = null;
//Jszip
public void zipUpload(){
if (zip == null) {
Systemoutprintln("zip is null");
return;
}
try {
byte[] data = javaxxmlbindDatatypeConverterparseBase64Binary(zip);
InputStream is = new ZipTool()readFile(new ByteArrayInputStream(data), "datatxt");
LineReader lr = new LineReader(new InputStreamReader(is));
String line = lrreadLine();
while (line != null) {
Systemoutprintln(line);
line = lrreadLine();
}
} catch (UnsupportedEncodingException e) {
eprintStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
}
ZipTool中的readFile方法的内容:
public InputStream readFile(InputStream zipFile, String filename) throws IOException {
ZipInputStream zis = new ZipInputStream(zipFile);
ZipEntry entry = zisgetNextEntry();
while (entry != null && (entryisDirectory() || !entrygetName()equalsIgnoreCase(filename))) {
entry = zisgetNextEntry();
}
if (entry == null) {
return null;
}
return zis;
}
0条评论