您的位置:

java设置解析编码格式,java怎么设置编码格式

本文目录一览:

Java 修改编码格式的几种方式

主要分response的字节字符输出流和request接受中文参数doGet(),doPost()的设置四种.以及从服务器下载文件到浏览器的编码问题.

都是我学习java时总结的,希望能帮到你.

response的字节输出流:

// 设置浏览器默认打开的时候采用的字符集编码

response.setHeader("Content-Type", "text/html;charset=UTF-8");

// 设置中文转成字节数组的时候取出的编码

response.getOutputStream().write("如果不设置编码,这里就是乱码".getBytes("UTF-8"));

response的字符输出流:

//设置浏览器默认打开的时候采用的字符集编码,response的字符流的缓冲区的编码.

response.setContentType("text/html;charset=UTF-8");

response.getWriter().println("中文");

request的doGet()编码解决:

String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");

System.out.println("GET方式:"+name);

request的doPost()编码解决:

request.setCharacterEncoding("UTF-8");

String name = request.getParameter("name");

System.out.println("POST方式:"+name);

下载文件时浏览器编码问题:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// 1.接收参数

String filename = new String(request.getParameter("filename").getBytes("ISO-8859-1"),"UTF-8");

System.out.println(filename);

// 2.完成文件下载:

// 2.1设置Content-Type头(获取文件的mime类型)

String type = this.getServletContext().getMimeType(filename);

//设置文件的mime类型

response.setHeader("Content-Type", type);

// 2.3web项目文件的绝对路径

String realPath = this.getServletContext().getRealPath("/download/"+filename);

// 获得浏览器的类型处理中文文件的乱码问题.(User-Agent:服务器收到客户端版本之类的一些信息)

String agent = request.getHeader("User-Agent");

System.out.println(agent);

if(agent.contains("Firefox")){

filename = base64EncodeFileName(filename);

}else{

//IE谷歌编码

filename = URLEncoder.encode(filename,"UTF-8");

}

// 2.2设置Content-Disposition头(固定写法,让浏览器必须下载,不能直接打开)

response.setHeader("Content-Disposition", "attachment;filename="+filename);

//获得文件

InputStream is = new FileInputStream(realPath);

// 获得response指定的方法获取输出流:如果用其他流是直接拷贝而不是下载

OutputStream os = response.getOutputStream();

int len = 0;

byte[] b = new byte[1024];

while((len = is.read(b))!= -1){

os.write(b, 0, len);

}

//响应流可以不关,在服务器做出相应后服务器会自动把response获得的流关闭

is.close();

}

//火狐

public static String base64EncodeFileName(String fileName) {

BASE64Encoder base64Encoder = new BASE64Encoder();

try {

return "=?UTF-8?B?"

+ new String(base64Encoder.encode(fileName

.getBytes("UTF-8"))) + "?=";

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

throw new RuntimeException(e);

}

}

java怎么设置为utf-8的编码

要让一个

Java

源文件打开时编码格式为

UTF-8,需要做2件事情:

1)设置Java

源文件的默认编码格式为UTF-8;

2)设置workspace的编码格式为UTF-8。

相应设置如下:

设置

Java

源文件的默认编码格式为

UTF-8

Windows-Preference

页面中,选择

General-Content

Types

在右边的框中,选择

Text-Java

Source

File,将下面的

Default

Encoding

改为

UTF-8

设置

workspace

的编码格式为

UTF-8

Windows-Preference

页面中,选择

General-WorkSpace

选择右侧框中的

Text

File

encoding,改为

UTF-8

设置完这2处,默认打开

Java

源文件就是UTF-8编码了。

java创建txt文件设置编码方式

可以通过“FileOutputStream”(此时指定编码格式即可)创建文件实例,之后过“OutputStreamWriter”流的形式进行存储,举例:

OutputStreamWriter

pw

=

null;//定义一个流

pw

=

new

OutputStreamWriter(new

FileOutputStream(“D:/test.txt”),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.txt”实例

pw.write("我是要写入到记事本文件的内容");//将要写入文件的内容,可以多次write

pw.close();//关闭流

备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。