JSP/ Servlet常见的中文乱码原因
在开发中,我们经常遇到中文乱码的问题,比方:
&浏览器中看到的 Jsp/Servlet 页面中的汉字成了 ’?’ ?
&浏览器中看到的 Servlet 页面中的汉字都成了乱码
&Jsp/Servlet 页面无法显示 GBK 汉字。
&Jsp/Servlet 不能接收 form 提交的汉字。
&JSP/Servlet 数据库读写无法获得正确的内容。
隐藏在这些问题后面的是各种错误的字符转换和处理。解决类似的字符encoding问题,须要了解 Jsp/Servlet 的执行过程,检查可能出现故障的各个点。以下是一些自己运用中的一些分享:
1.在jsp中假设指定了<%@ page contentType="text/html; charset=A"%>,那么在该jsp中全部构造的String(不是引用),假设沒有指定编码,那么这些String的编码是A的;从request得到的String假设沒有指定request的编码的话,他是iso-8859-1的;从别的地方得到的String是使用原來初始的编码的,比方从数据库得到String,假设数据库的编码是B,那么该String的编码是B而不是A的,也不是系统默认的。此时,假设要输出的String的编码不是A,那么,非常可能显示乱码的,所以首先要将String正確转化为编码A的String,然后输出。
2. 假设在jsp中沒有指定<%@ page contentType="text/html; charset=A"%>,那么相当于指定了<%@pagecontentType="text/html; charset=ISO-8859-1" %>。
3. Servlet中假设运行了语句:response.setContentType("text/html;charset=A");説明将response的字符输出流编码设置为A,全部要输出的String的编码要转化为A,否則会得到乱码。Servlet中从request得到的String的编码和jsp中一样的,可是在servlet java文件里构造的String是使用的系统默认的编码的。在servelt中从外部得到的String是使用原来的编码的,比方从编码为B的数据库得到的数据是编码为B的,不是A,也不是系统默认的编码。
综上所属,要解决我们常见的中文乱码问题,须要理解数据交互中Jsp, Servlet, 数据库中数据的编码定义,统一编码格式或做适当转换。
JSP/ Servlet常见的中文乱码原因的更多相关文章
- Jsp页面中的中文乱码问题解决
Jsp页面中的中文乱码问题解决 在编写Jsp页面的时候,发现写入其中的中文在浏览器浏览的时候会出现乱码的情况. 出现乱码的原因分析: 因为页面中对自己的编码格式的声明和页面的实际编码格式不相同,而浏览 ...
- Java中关于Servlet中请求中文乱码及文件下载
1,Servlet请求响应中文乱码问题 package com.demo.servlet; import java.io.PrintWriter; import java.io.IOException ...
- Servlet中文乱码原因 解决 Get 和 Post 和客户端
一.Get方式的中文乱码 1) 使用如下页面表单内容: <form action="http://127.0.0.1:8080/day07/params" method=&q ...
- JSP开发过程遇到的中文乱码问题及解决方案
对于程序猿来说,乱码问题真的很头疼,下面列举几种常见的乱码. 1.数据库编码不一致导致乱码 解决方法: 首先查看数据库编码,输入: show variables like "%char%&q ...
- servlet中的中文乱码问题
老师总会说道:学完这个知识点,我们来谈谈中文乱码问题. 乱码的问题总是无处不在,处理不好会给用户带极差的用户体验. 那么我们来记录一下servlet中的乱码问题吧! 1.服务器向客户端响应时出现的乱码 ...
- JSP表单提交中文乱码解决方案
分2种提交方式,解决方案不同: 1.form表单提交方式为get 乱码: 解决方案: 因为get方法是参数在URL中显示,因为tomcat的URL编码默认是:IOS-8859-1所以要么改tomcat ...
- Servlet、MySQL中文乱码
1.Servlet中文乱码: 在doPost或doGet方法里,加上以下两行即可: response.setContentType("text/html;charset=UTF-8" ...
- jsp表单提交中文乱码的解决
<%@ page language="Java" contentType="text/html; charset=utf-8 " pageEncod ...
- SpringMvc @ResponseBody字符串中文乱码原因及解决方案
今天突然发现一个问题,后来在网上也找到了很多解决思路,自己也查找到了问题所在,记录一下. @RequestMapping(value = "/demo1") @ResponseBo ...
随机推荐
- SpringMVC——注解的使用与结果跳转方式
1.项目结构 2.源代码 package com.zhengbin.controller; import java.io.IOException; import javax.servlet.Servl ...
- 【转】Android 如何在Eclipse中查看Android API源码 及 support包源码
原文网址:http://blog.csdn.net/vipzjyno1/article/details/22954775 当我们阅读android API开发文档时候,上面的每个类,以及类的各个方法都 ...
- git push冲突解决
1. 首先,可以试图用git push origin branch-name推送自己的修改:2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并:如果git pull提示 ...
- 完美完全卸载Oracle 11g数据库
Oracle 11g可在开始菜单中卸载,然后同时需要删除注册表中相关内容. 操作系统:windows10专业版. 卸载步骤: 1.停用oracle服务:进入计算机管理,在服务中,找到oracle开头的 ...
- leveldb源码笔记
关于KV数据库leveldb的介绍,网上已经太多了,这里只是自己再学习源码过程中,整理的笔记,磁盘存储和内存存储的结构用了伪代码表示出来了,首先是内存中存储结构,然后是log文件存储结构和磁盘数据ss ...
- delphi ole word
源代码如下: //Word打印(声明部分) wDoc,wApp:Variant; function PrnWordBegin(tempDoc,docName:String):boolean; func ...
- npm + webpack +react
踏上征途 在开始之前,你需要把你的 Node.js 和 NPM 都更新到最新的版本.访问 nodejs.org 查看安装详情.我们将会使用 NPM 安装一些工具. 开始使用 Webpack 非常简单, ...
- Codeforces Round #362
A - Pineapple Incident #pragma comment(linker, "/STACK:102c000000,102c000000") #include &l ...
- What do data scientist do?
What do data scientist do? 1. Define the question 2.Define the ideal data set 3.Determine what data ...
- 《Genesis-3D开源游戏引擎--横版格斗游戏制作教程:简介及目录》(附上完整工程文件)
介绍:讲述如何使用Genesis-3D来制作一个横版格斗游戏,涉及如何制作连招系统,如何使用包围盒实现碰撞检测,软键盘的制作,场景切换,技能读表,简单怪物AI等等,并为您提供这个框架的全套资源,源码以 ...