中文乱码问题的各种对应的解决方案
以下是几种在开发中中文乱码问题的解决方案
当sevlet返回js脚本时弹出框显示中文乱码的解决方案:
可以在servlet中加上response.setContentType(“text/html;charset=utf-8”);
servlet中用response有3种设置输出内容的编码方式:
1.response.setCharacterEncoding(“UTF-8”); 只能用来设置out输出流中所采用的编码,但是他的优先权最高,可以覆盖后两种方法中的设置;
2.response.setContentType(“text/html;charset=UTF-8”); 即可以设置out输出流中字符的编码方式,也可是设置浏览器接收到这些字符后以什么编码方式来解码,它的优先权低于第一种方法,但高于response.setLocale(new java.util.Locale(“zh”,“CN”)); 相当于服务端解析:<%@ page contentType=“text/html;charset=UTF-8” %>
3.response.setLocale(new java.util.Locale(“zh”,“CN”));只能用来设置out输出流中字符的编码方式,但是它的优先权最低,在已经用前两种方法之一设置了编码方式以后,它就被覆盖而不起作用了。
public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");request.setCharacterEncoding("utf-8");把页面参数按utf-8编码后传入服务器端// response.setLocale(new java.util.Locale("zh","CN"));// response.setCharacterEncoding("utf-8");int bid = Integer.parseInt(request.getParameter("bid"));BookService bookService = new BookServiceImpl();boolean result = bookService.deleteBook(bid);if(result){response.getWriter().print("<script type='text/javascript'>alert('删除成功!');window.location='ShowAllServlet'</script>");}else{response.getWriter().print("<script type='text/javascript'>alert('删除失败!');window.location='ShowAllServlet'</script>");}}
jsp页面显示乱码,则需要你在jsp页面中设置编码方式,这里一般最好三个都要配上utf-8:
<%@ page language=“java” contentType=“text/html; charset=utf-8” pageEncoding=“utf-8”%> 是服务器端java程序运行时的输出编码,服务器端以什么样的编码向客户端输出HTML. 。
< meta http-equiv=“Content-Type” content=“text/html; charset=utf-8”>是指客户端浏览器以什么样的编码来显示网页,指导浏览器解析服务器端传入的HTML流. 同时它还有一个作用,指导其提交表单的时候使用什么编码传入request.
<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body></body>
</html>
如果使用SSM框架开发,则可以通过在web.xml中配置字符编码过滤器的方式统一字符编码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"><display-name>UserManager</display-name><welcome-file-list><welcome-file>login.jsp</welcome-file></welcome-file-list><!-- 配置spring监听 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 统一字符编码 --><filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>utf-8</param-value></init-param><init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter><filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
在web开发中,tomcat对于传输的字符串都是采用iso-8859-1编码/解码方式。而浏览器端对于中文都是用gbk或utf-8中文编码/解码方式,所以传到后台都会是乱码的,容器一般都是有处理的,所以中文能正常显示和存储。但有些情况也是会出现乱码的,解决方式如下
String b = new String(str.getBytes(“iso-8859-1”,“客户端的编码/解码方式”)) // 中文解码方式一般用的是utf-8或者gbk。
如:
String b1 = new String(str.getBytes("iso-8859-1","utf-8"));
感谢您的阅读,欢迎参观我的个人网站:闲乐小站【www.xianlewang.cn】
中文乱码问题的各种对应的解决方案相关推荐
- ajax获取数据中文乱码问题最简单的完美解决方案
ajax获取数据中文乱码问题最简单的完美解决方案 参考文章: (1)ajax获取数据中文乱码问题最简单的完美解决方案 (2)https://www.cnblogs.com/konglxblog/p/1 ...
- springmvc 使用fastjson 处理 json 数据时中文乱码
2019独角兽企业重金招聘Python工程师标准>>> 原因: springmvc在处理请求时,默认采用的是 ISO-8859-1 编码格式,具体原因不了解,个人觉得是还没有来得及 ...
- 推荐一款word转pdf超好用的包:aspose-words(解决中文乱码)
aspose-words 是一款超好用的转换工具,转换效果很好,且实现超级简单 首先通过pom.xml 引入 <dependency><groupId>com.aspose&l ...
- Redis中文乱码问题的解决
今天测试一个小功能,用redis做了个缓存,然后启动redis客户端进行查询,发现得不到想要的中文结果.网上查找相关的解决方案,却没有一个能完整解决问题的,最后自己一步一个脚印解决了. 1. 问题的产 ...
- html中文乱码 HTML5
html中文乱码 HTML5 html中文乱码原因:编码格式不匹配 解决方案: <!DOCTYPE html> <html> <head><!--添加本行代码 ...
- EF for MySql中文乱码问题解决
问题: 使用EntiryFramework for MySql操作数据库时,向表中插入数据出现中文乱码问题,都是问号? 解决方案: 1.保证MySql数据的编码为utf8 设置方法:http://bl ...
- RHEL5.1安装VM TOOL及中文乱码终极解决方案
VMWARE tool 主要的功能就是让用户在虚拟机和真实系统之间实现无缝切换,这个功能很方便,当然VMware Tools最主要是实现linux和windows的文件共享. 1.挂载VM tool的 ...
- php乱码解决方案,php中文乱码问题的4种解决方案
乱码的出现有2种原因,一种是由于编码(charset) 设置错误,导致浏览器以错误的编码来解析,从而出现了满屏乱七八糟的"天书",第二种就是文件被以错误的编码打开,然后保存,比如一 ...
- iis 站点中文乱码 解决方案
iis 站点中文乱码 解决方案 参考文章: (1)iis 站点中文乱码 解决方案 (2)https://www.cnblogs.com/zhaokunbokeyuan256/p/10001726.ht ...
最新文章
- java se用哪个eclipse_【JAVA SE基础篇】5.eclipse的使用和运行
- 为何计算机科学领域的女性不多?
- 词法、语法与语义相关知识
- Customizing Download - product hierarchy
- 语言孪生素数问题_刘建亚教授讲述“素数的故事”
- python定义私有变量的方法_Python类如何定义私有变量
- jdk13.0.2安装mysql_centos下的安装mysql,jdk
- 人脸重建github源码总结
- Python微博项目
- mysql千万测试表生成,随机id、username、age、sex、create_time
- dw css定位,Dreamweaver中层的定位
- linux常用命令课堂总结
- office2007之PPT模版更换与应用
- django项目中涉及到的一些常用sql语句学习整理
- iPhone照片的云端备份和本地移动硬盘备份 策略
- 解决Mac OS 山猫10.8下Xcode无法更新以及速度慢的问题
- C/C++的左值和右值
- python库的下载安装_Python库的安装
- element-ui 中的el-table表格默认的“暂无数据”修改
- 英雄联盟开始游戏后黑屏只有鼠标指针的处理
热门文章
- 太强了!GitHub上白嫖的SpringCloud微服务进阶宝典,啃完感觉能吊锤面试官!
- 基于Java毕业设计游泳馆管理平台源码+系统+mysql+lw文档+部署软件
- JSDoc 注释规范
- VMware虚拟机最新详细安装保姆级教程(2023年新版教程)
- HTML+CSS简单实例(一)
- 【Transformers】第 9 章 :处理很少或没有标签
- GIS100例033—ArcGIS制图阴影效果(制图表达方式)
- HDU6124(有趣的数学题)
- Android recycleview瀑布流中间穿插一行占满一屏
- Java:SoftReference