在 iso-8859-1,gb2312, utf-8 以及任意一种编码格式下,英文编码格式都是一样的,每个字符占8位,而中文就麻烦了,在gb2312 下一个中文占 16位,两字节,而在utf-8 下一个中文要占24位,三字节。浏览器在不知道确定编码方式的情况下,就会把这些字符从中间截断,再显示的时候就乱掉了。所以,想要解决乱码问题,就是要告诉浏览器我们到底使用了什么样的编码方式。

为了获得正常显示的中文,需要注意以下几步:

1. 因为服务器要先从本地读取jsp文件,然后经过处理后写入响应,所以我们首先要知道的就是 jsp文件的编码格式。从问题的源头着手解决。

在咱们用的windowxp 下,文件默认的编码格式是gb2312。

2. 我们要在http 的响应(response)中添加编码信息,使用如下方式:

<%@ page contentType="text/html; charset=gb2312"%>

这段要放在 jsp页面的第一行,用来指定响应的类型和编码格式,contentType 为text/html就是html 内容,charset表示编码为 gb2312。这样浏览器就可以从响应中获得编码格式了。

这种<%@ %>的形式叫做jsp指令(directive),现在接触到的是page指令,还有 include和 taglib指令,我们会在后面陆续讲到。

3. 还需要在html 中指定编码格式。

<head>
<meta http-equiv="Content-Type" content="text/html;
charset=gb2312" />
<title>title</title>
</head>

meta 部分用来指定当前html 的编码格式,注意这一段要放在head 标签中,并且放到head 标签的最前面,如果不是最前面 ie下可能会出现问题,尤其是在 title 中有中文的情况下。

完成了以上三段检验,我们才能保证输出的 jsp页面会正常显示中文。

<%@ page contentType="text/html;charset=gb2312"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312" />
<title>title</title>
</head>
<body> <form action="test.jsp" method="post">
<label>用户名</label><label><input tyie="text" name="username"></label>
<br />
<input type="submit" value="提交">
</form> </body>
</html>

POST处理页面:

<%@ page contentType="text/html; charset=gb2312"%>
<%
request.setCharacterEncoding("gb2312");
%>
<%
out.print(request.getParameter("username"));
%>

jsp/post中文乱码问题的更多相关文章

  1. java: jsp:param中文乱码

    java: jsp:param中文乱码 假如a.jsp/b.jsp文件中 a.jsp代码: 需要加入:request.setCharacterEncoding("UTF-8")  ...

  2. jsp页面中文乱码解决方案

    一.JSP页面中文乱码 在JSP页面中,中文显示乱码有两种情况:一种是HTML中的中文乱码,另一种是在JSP中动态输出的中文乱码. 先看一个JSP程序: <%@ page language=&q ...

  3. jsp+servlet中文乱码问题

    jsp+servlet中文乱码问题 servlet想要获得前台传来的值 String strName=new String(request.getParameter("name") ...

  4. JSP出现中文乱码问题

    今天纠结了好半天,本地运行程序后没有中文乱码,唯独发到服务器后运行出现了乱码. 究其原因,皆因eclipse环境默认的JSP编码是Iso-8859-1,需要将其改为utf-8,与JSP文件中的编码声明 ...

  5. 如何彻底解决jsp页面中文乱码及数据库乱码

    最近自己闲做一个小项目,搭建环境框架SSH+MySQL数据库,遇到一个问题:jsp页面中文显示乱码,数据库插入数据和更新数据时中文也显示乱码,后来在网上找了许多解决方法,还是折腾了两天才把问题解决,下 ...

  6. MyEclipse和tomcat结合编写jsp对于中文乱码的解决方法

    一.Java和jsp 中文乱码原因和解决方法: Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦.原因有两方面: 第一方面:J ...

  7. jsp / get 中文乱码问题

    POST 方式下的解决方式还算简单,因为POST 方式下提交的数据都是以二进制的方式附加在http请求的body部分发送,只需要在后台指定编码格式就足矣解决. GET 方式下会将参数直接附加到url ...

  8. JSP页面中文乱码问题

    $.get()方法到服务器端中文乱码 在jsp页面使用encodeURI(“中文”),在服务器端进行解码 String name = req.getParameter("name" ...

  9. 【JSP】中文乱码问题

     原作者http://www.cnblogs.com/xing901022/p/4354529.html 阅读目录 之前总是碰到JSP页面乱码的问题,每次都是现在网上搜,然后胡乱改,改完也不明白原因. ...

  10. JSP网页中文乱码

    在编程过程中总是由于各种原因出现中文乱码.最好的解决方法就是把代码中所有编码格式全部设置为UTF-8,这样一般能解决大部分问题,但是今天我发现另外一种情况.我们都知道当一个jsp文件中全部都是html ...

随机推荐

  1. 植物大战僵尸作弊器源代码(MFC版)

    控制版使用不太方便,此MFC版与控制台版内容一样.具体可以参考前面.此处只附源代码,不加以说明.......... 头文件 // jsMFCDlg.h : 头文件 // #pragma once // ...

  2. lnmp之nginx1.10.2安装

    linux下nginx的安装 为了后面避免缺失,还是什么都安装一下(后面安装php和mysql就不需要重复再执行下面这个了,当然你再执行一遍也没问题) [root@localhost src]# yu ...

  3. marquee实现跑马灯

    <!DOCTYPE html><html> <head><title>跑马灯大全</title> </head> <bod ...

  4. 圆的k次面积并

    搬运别人的 https://vjudge.net/problem/SPOJ-CIRUT //china no.1 #pragma comment(linker, "/STACK:102400 ...

  5. uva10167

    /* 暴力 过了 要使得两半的 樱桃数目相等 去试每一个斜率 还好他这里要的是 A.B 都为正整数 这样范围就锁定在200*100 个点范围内 */ #include <cstdio> # ...

  6. cda转MP3

    首先启动Windows Media Player播放器(依次单击“开始”——“所有程序”——“附件”——“娱乐”——“Windows Media Player”     在工具栏切换到“翻录”选项,这 ...

  7. 服务器返回的json数据中含有null的处理方法

    个人博客:http://guohuaden.com/2017/03/06/json-dataNull/因为有遇到过类似情况,所以就想到了一些解决方法,并且实践了一下,这里简单的做个记录. 注:有看到不 ...

  8. mysql 替换函数replace()实现mysql 替换字符串

    mysql 替换字符串的实现方法:mysql中replace函数直接替换mysql数据库中某字段中的特定字符串,不再需要自己写函数去替换,用起来非常的方便,mysql 替换函数replace()Upd ...

  9. Qt 学习之路 2(55):数据库操作

    Qt 提供了 QtSql 模块来提供平台独立的基于 SQL 的数据库操作.这里我们所说的“平台独立”,既包括操作系统平台,又包括各个数据库平台.另外,我们强调了“基于 SQL”,因为 NoSQL 数据 ...

  10. 关于阿里云专有网络搭建FTP服务器的深坑

    之前用的FTP服务器都是,随便搭建一下就能用了, 昨天因为服务器的问题,换了个服务器,搭建FTP服务器的时候发现, 搭建的服务器居然只能使用 主动模式访问,改成被动后 无法获取目录, 百度了 各大论坛 ...