Java Web 乱码

在做关于 Java Web 的项目中,有时候项目的整体设置为 utf-8 编码以后,你还是会发现项目还是乱码。

1.出现乱码实例

正如下图所示:

虽然在代码中,加入了:request.setCharacterEncoding("utf-8"); 结果还是会乱码。

/**
 * 插入管理员
 */
@WebServlet("/intsertinfo")
public class IntsertAdmininfoServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
    public IntsertAdmininfoServlet() {
        super();
    }
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		UpdateAdminTrueServlet u=new UpdateAdminTrueServlet();
		// TODO Auto-generated method stub
		request.setCharacterEncoding("utf-8");
		String LoginName=request.getParameter("loginname");
		String Password=request.getParameter("password");
		String RealName=request.getParameter("realname");
		String LastLoginIP="127.0.0.1";
		String sql="INSERT INTO [dbo].[Admin] ([LoginName],[Password],[RealName],[LastLoginIP]) VALUES (‘"+LoginName+"‘, ‘"+Password+"‘,             ‘"+RealName+"‘, ‘"+LastLoginIP+"‘) ";
		try {
			SqlHelp sh=new SqlHelp();
			boolean h=sh.insert(sql);
			if(!h)request.getRequestDispatcher("/listAllAdmin").forward(request, response);
			else System.out.println("插入失败!");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

2.解决乱码问题

为了解决这个问题,我们得定义一个类,代码如下:

	/**
	 * 对字符串进行解码
	 *
	 * @param string
	 *            需要转码的字符串
	 * @param codeMode
	 *            目标格式
	 * @return 转码后的字符串
	 */
	public static  String decoder(String string, String codeMode) {
		try {
			String s = new String(string.getBytes("ISO-8859-1"), codeMode);
			return s;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

  加入这个方法。然后调用这个方法,传入解码的 string(字符串) 和 codeMode(编码的方式),就可以了。

String lname=decoder(request.getParameter("loginname"),"utf-8");
String rname=decoder(request.getParameter("realname"),"utf-8");

  

希望对您有帮助,欢迎点赞。

时间: 2024-10-24 12:29:02

Java Web 乱码的相关文章

java web 乱码 整理

众所周知 java 程序使用的是Unicode 编码字符集,是说java内存里面使用Unicode字符集操作文字,java内存外当然使用的是程序员自己制定的字符集,如果程序员没有指定字符集,那么会使用操作系统默认的字符集.linux 系统下面可以使用echo $LANG 查看系统默认的字符集,使用locale 查看系统支持的字符集. 经常遇到的几种乱码情况 终端看到的都是方框,说明没有没有安装中文字符集,yum install 安装简体中文和繁体中文 2.锟斤拷乱码, 3. 乱码, 4.????

Java Web乱码分析及解决方案

1.  什么是URL编码. URL编码是一种浏览器用来打包表单输入的格式,浏览器从表单中获取所有的name和其对应的value,将他们以name/value编码方式作为URL的一部分或者分离的发送到服务器上. 2.  URL编码规则. 每对name/value由&分开,每对来自表单的name/value用=分开.如果用户没有输入值的那个name依旧会出现不过就是没有值. URL编码是在字符ASCII码的十六进制数的前面加上%.例如\(她的十六进制数表示为5c)的URL编码就是%5c. 3.  简

Java Web乱码分析及解决方案(一)——GET请求乱码

引言:     在进行Web开始时,乱码是我们最经常遇到也是最基本的问题,有经验的程序猿很容易能解决,初学者则容易被泥潭困住.而且很多时候,我们即使解决了乱码问题也是不明就里,往往云里雾里. 其实乱码问题很简单,就是客户端和服务器使用了不一样的字符集导致的.也就是我们发送文件是用的字符编码和解析文件的编码不一致.所以只要搞清楚了我们的文件是怎么被编码和解码的解决乱码就很简单了.分析乱码,我们从请求乱码和响应乱码来分析,请求乱码又需要根据GET和POST来单独分析. 请求乱码--GET     请

Java Web乱码分析及解决方案(三)——响应乱码

响应乱码 请求乱码是客户端向服务器发送数据时,服务器解码错误.响应乱码则是服务器处理完请求后,输出到浏览器的数据被浏览器错误解码造成的显示乱码,这类乱码是最常见也是最直接的.造成这类乱码的情况最直接的一点就是服务器对Content-Type响应报文设置错误. 页面编码: 我们的页面一般来说,可能是通过下面两种方式生成的,也就是常说的静态页面和动态页面: (1)静态页面:我们用记事本或其他IDE工具编写的页面(比如.html),这些页面在编写的时候就需要指定一个字符编码,比如我们指定为ISO-88

Java Web乱码分析及解决方案——POST请求

引言 GET请求的本质表现是将请求参数放在URL地址栏中,form表单的Method为GET的情况,参数会被浏览器默认编码,所以乱码处理方案是一样的.对于POST请求乱码,解决起来要比GET简单,我们关心的重点是在Request Body中. 请求乱码--Method方式 使用Method方式发送HTTP请求时,根据HTTP协议的规定,查询参数应该在Request的Body中,例如在Chrome下可以看到URL中不含有查询参数. 浏览器的编码 浏览器对POST的Request Body编码会采用

1.JAVA WEB 笔记中文乱码

JAVA WEB 乱码问题解析 乱码原因 在Java Web开发过程中,经常遇到乱码的问题,造成乱码的原因,概括起来就是对字符编码和解码的方式不匹配. 既然乱码的原因是字符编码与解码的方式不匹配,那么为什么我们一定要对字符进行编码,不编码可不可以呢?这是因为在计算机中存储数据的基本单位是1个字节,即8个bit,那么它所能表达的字符的最多有28=256个,而在我们现实社会中存在的字符(汉字.英文.其他文字等等)远远多余这个数字,所以为了解决字符与字节的矛盾,对字符进行编码处理才能存储在计算机中.

java web中请求和响应中包含中文出现乱码解析

说明:在计算机中保存的一切文本信息是以一定的编码表(0,1,0,1)来保存我们所认识的字符(汉字或英文字符),由字符到计算机存储的二进制过程是编码,由读取二进制到文本的过程称为解码.而字符编码有多种不同的编码表,所以,如果编码格式和解码格式不是同一个码表就会出现乱码.想要避免出现乱码,需要使保存和读取时使用相同的码表. 在java web编程中经常会出现乱码,现在详细讲解一下如何进行设置,避免乱码 1 网页编码 在编写网页的时候,需要指定网页的编码格式,使用<meta http-equiv=&quo

Java web中常见编码乱码问题(二)

根据上篇记录Java web中常见编码乱码问题(一), 接着记录乱码案例: 案例分析:   2.输出流写入内容或者输入流读取内容时乱码(内容中有中文) 原因分析: a. 如果是按字节写入或读取时乱码,应该先检测系统编码是什么样的,看看是否支持中文编码的字符集. System.out.println(System.getProperty("file.encoding")); a1.如果是不支持中文的就要设置jvm编码了,设置方法: Windows环境就在catalina.bat配置: s

Java Web项目中HTML文件中的汉字在浏览器中显示乱码的解决方案

今天在做一个Java Web项目的时候,html中的汉字在浏览器中显示为乱码,分析其可能原因有: (1)html文件属性中有默认的编码方式,如果它的设置与html文档中content charset属性设置有冲突,则显示为乱码. (2)与浏览器有关,如果html的编码方式与浏览器默认的编码方式不同,则会出现乱码. 下面直接上图,看我的实验: (1)html的文件属性和content charset都设置为UTF-8,但是浏览器默认是GBK编码,显示乱码.我用了谷歌Chrome浏览器和搜狗浏览器都