JSP&Servlet中字符编码的转换

1. 在jsp中声明字符编码
<%@ page contentType="text/html; charset=utf-8" %>
或者
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
或者
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
2. 在HTML文档的头部
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>首页</title>
</head>
3. 在设定MySQL数据库URL时
String dbUrl="jdbc:mysql://localhost:3306/db_name?useUnicode=true&characterEncoding=utf-8";
4. 当请求方式是“Post”时

此时请求参数位于请求头的正文部分,可以将正文的字符编码进行设置再读取。

request.setCharacterEncoding("utf-8");
String aname=request.getParameter("aname");

当请求方式为“Get”时,请求参数位于请求头的URI中,此时使用上述方法不能改变请求参数的字符编码。

5. 直接对字符串编码进行转换
String str=...;
str=new String(str.getBytes("GB2312"),"UTF-8");

HTTP的Get参数默认为ISO-8859-1编码,所以转码可以:

String data=request.getParameter("aname");
data = new String(data.getBytes("ISO-8859-1"), "UTF-8");
6. 上传文件时转码
org.apache.tomcat.util.http.fileupload.FileItem.getString("utf-8")
或者
org.apache.commons.fileupload.FileItem.getString("utf-8")
7. Cookie的转码

Cookie不能直接存放中文,会出现 “Control character in cookie value or attribute” 的错误。需将中文字符转成BASE64编码。

  • 编码
import java.net.URLEncoder;
...

String encodeUserName = URLEncoder.encode(userName, "UTF-8");
String encodePassword = URLEncoder.encode(password, "UTF-8");

Cookie cookie = new Cookie("user", encodeUserName + "-" + encodePassword);
cookie.setMaxAge(60 * 60 * 24 * 7); // 单位:秒
response.addCookie(cookie);
  • 解码
Cookie[] cookies=request.getCookies();
for(int i=0;cookies!=null && i<cookies.length;i++){
	if(cookies[i].getName().equals("user")){
		//对Cookie中的中文信息进行BASE64的解码
		String str=cookies[i].getValue().split("-")[0];
		userName=URLDecoder.decode(str,"UTF-8");
		str=cookies[i].getValue().split("-")[1];
		password=URLDecoder.decode(str,"UTF-8");
	}
}
8. 对返回客户端的响应进行编码设定

HttpServletResponse response默认编码是“ISO8859-1”。

response.setCharacterEncoding("gbk");
或者
response.setCharacterEncoding("utf8");
或者设定返回的页面编码
response.setContentType("text/html;charset=UTF-8");
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
二维码URL JSP转换成图片,需要借助于Java的相关技术。首先,需要生成二维码内容的字符串,可以使用QR Code库进行生成。其次,需要将二维码内容字符转换成图片,可以使用Java绘图API将其绘制成图片。最后,可以将生成的图片以文件的形式保存到本地或者以流的形式输出到相应的输出流。 具体而言,在JSP页面,可以使用Java Servlet来处理二维码生成和图片绘制的相关逻辑。在Servlet,首先可以通过request对象获取前端传来的二维码URL,然后使用QR Code库生成对应的二维码内容字符串。接下来,可以使用Java绘图API将二维码绘制成图片,这里可以借助于Java2D的BufferedImage类和Graphics2D类来实现。最后,可以使用ImageIO将生成的图片保存到本地,或者使用OutputStream将图片以流的方式输出到前端页面。 在实现过程,需要注意的是二维码URL需要进行编码处理,以避免文乱码等问题。同时,在输出图片时需要注意输出格式,一般常用的格式有PNG、JPEG等。如果需要优化图片压缩率,还可以使用一些图片压缩算法进行优化处理。 总之,将二维码URL JSP转换成图片是一项较为复杂的技术实现,需要借助于Java的相关技术和Web开发的相关经验。在实现过程,需要注意安全性、稳定性和可扩展性等高级特性,以保障程序的可靠性和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值