首页 > 后端开发 > 正文

java如何改变输出时编码

2024-06-16 16:57:47 | 我爱编程网

我爱编程网小编给大家带来了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如何改变输出时编码

java如何改变输出时编码

你的概念有问题,java 支持多种编码,在输入的时候就应该制定,不然就有问题,输出的时候倒是很简单。

这个例子是按“Cp1252"读入,转成"UTF-8"输出

String input = new String(dbString.getBytes("Cp1252"), "UTF-8")

byte[] output = input.getBytes("UTF-8");

for (byte b : output) {

System.out.format("0x%02x,", b);

}

java如何改变输出时编码

在java中怎么把一个字符串编译为指定编码格式(如:unicode)的输出

很多种方法request.setCharacterEncoding("utf-8"); //设置输入编码格式

response.setContentType("text/html;charset=utf-8"); //设置输出编码格式

一般写个Servlet的过滤器

(getByte("ISO-8859-1"),"utf-8");在配置文件里面过滤.

以上就是我爱编程网小编给大家带来的java如何改变输出时编码,希望能对大家有所帮助。

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“java如何改变输出时编码”相关推荐
在java中怎么把一个字符串编译为指定编码格式(如:unicode)的输出
在java中怎么把一个字符串编译为指定编码格式(如:unicode)的输出

在java中怎么把一个字符串编译为指定编码格式(如:unicode)的输出很多种方法request.setCharacterEncoding("utf-8");//设置输入编码格式response.setContentType("text/html;charset=utf-8");//设置输出编码格式一般写个Servlet的过滤器(getByte("ISO-8859-1"),"u

2024-06-10 22:53:11
python种如何输出指定位小数
python种如何输出指定位小数

python种如何输出指定位小数方法一:round(X,N)该方法并不严格有效,当X小数位数n<N时,仅能够输出n位小数。方法二:print('%.Nf'%X)或者print("%.Nf"%X)注意该方法有两个“%”,没有“,”。方法三:print(format(X,'.Nf')或者print(format(X,".Nf")注意该方法没有"%",但有“,”。更多

2023-12-12 23:54:15
如何用python写程序输出姓名?
如何用python写程序输出姓名?

如何用python写程序输出姓名?用python编写一个程序,输出你的姓名和学号的方法。1.输入命令提zhidao示符,输入python并按Enter进入python交互模式。2.输入name=input()后按回车,如下所专示。3.输入名字“mymy”,然后回车。此时,变量将“name”回答为“mymy”。4.输入名称后返回,可以看到变量名的内容是属:mym

2023-12-20 20:18:02
如何修改jvm启动参数
如何修改jvm启动参数

如何修改jvm启动参数用java命令查看。用java-option进行修改参数。还有tomcat,eclipse启动时通过配置文件加载的。详细如下:安装Java开发软件时,默认安装包含两个文件夹,一个JDK(Java开发工具箱),一个JRE(Java运行环境,内含JVM),其中JDK内另含一个JRE。如果只是运行Java程序,则JRE已足够;而JDK则只有开发人员才用到。

2024-04-07 06:53:36
eclipseJava中文输出乱码是什么原因?
eclipseJava中文输出乱码是什么原因?

eclipseJava中文输出乱码是什么原因?eclipseJava中文输出乱码的原因可能是字符编码与默认的编码不符合导致的。可以尝试以下方法解决:1.修改Eclipse编码设置:点击Eclipse菜单栏的"Window",选择"Preferences";在弹出的窗口中,找到"General"->"Workspace";在右侧的"Textfileencoding"选项中选择合

2024-04-14 03:47:49
java怎么输出?
java怎么输出?

Java编程,怎样做一个最简单的输出程序?比如myeclipse,那么就是创建一个类,然后敲入main,alt+/可以导出main函数(Java程序的入口就是main)。如果没有用工具,需要配置环境变量的,配置好之后。建一个Java文件,文件名字和类名相同,包括大小写,例如:publicvoidshow(){Scannerscan=newScanner(System.in())

2024-04-22 21:42:44
用python求1到10000所有完美数,改代码怎么敲出来
用python求1到10000所有完美数,改代码怎么敲出来

用python求1000以内的完数用python求1000以内的完数如下:forjinrange(21001):foriinrange(l,j):ifj%1==0:ifs==0:print(j)。第一行:forjinrange(2,1001):创建一个从2到1000的循环,并且将其中的值依次赋值给j。第二行:s=j,创建一个新的变量s,让它等于j,

2023-12-31 16:31:12
java输出程序运行日期 JAVA 获取一段程序运行时间
java输出程序运行日期 JAVA 获取一段程序运行时间

JAVA获取一段程序运行时间abstract class GetTime { public final void getTime() { long start = System.currentTimeMillis(); runcode(); long end = System.currentTimeMillis(); System.out.println("运行时间:" + (end

2024-04-04 04:19:38