Javaweb编程中的乱码问题
程序中的乱码问题,主要出现在我们处理中文数据的过程中出现。从浏览器向服务器请求数据,服务器返回的数据在浏览器中显示为乱码。或者是服务器中的java文件用到中文,也有可能会出现乱码。数据库在处理数据的时候,也会碰到乱码问题。
乱码问题总的来说,就是编码方式不同造成的,在数据的建立、传输、处理以及显示过程中,如果处理数据的编码方式不同,就会很容易造成中文的乱码问题。解决的办法宏观上说,就是在数据处理的各个环节都采用统一的编码方式,这样就可以避免乱码问题的发生。
对于JavaWeb编程来说,主要涉及到html、xml、数据库、java文件、java代码这几个部分。我们以“UTF-8”编码为例,说一些在不同文件中的设置或者代码的处理。
首先在html文件中,就是要告诉浏览器这个html文件编码方式是UTF-8。代码应该放在头文件head中,
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
这就表示这个文件里面的数据都是用UTF-8编码的,它里面的数据浏览器打开的时候就会按照UTF-8编码处理,如果这些数据发送的服务器,服务器也应该用UTF-8编码打开。
其次在xml中,一般xml文件的第一句就会设置编码方式。代码为:
<?xml version="1.0" encoding="UTF-8"?>
第三就是在数据库中,以Mysql数据库为例,在建立数据库的时候,都会选择编码方式,这时就要选择UTF-8,继续建立表、字段的时候就可以默认编码方式,也就是和数据库保持一致,这样就能保证这个数据库中所有的数据都是UTF-8编码。
第四就是java文件,保证java文件的编码方式为UTF-8,一般是利用java编程工具的设置,比如myeclipse软件,就是通过windows---->Preferences,导航中找到general---->Workspace,右侧窗口Text file encoding,选择Other,改变为UTF-8,以后新建立工程其属性对话框中的Text file encoding即为UTF-8.点击“ok”保存。当然,还有一些其它的设置方法,这里只列出了其中的一种。对于其它的java编程工具,可以找对应的编码设置方法进行操作。
第五就是在java文件中的代码,特别是Javaweb编程的时候,从浏览器 取得数据,处理后返回给浏览器显示出来,这时候就需要做一些处理。比如我们开发工具是myeclipse,服务器用自带的tomcat,由于tomcat默认编码是ISO-8859-1,所以很容易造成乱码,处理过程是这样的。首先把从浏览器取到的字符串数据txt转换为二进制数据,然后在用UTF-8编码方式还原为字符串。代码为:
byte[] bytes=txt.getBytes("ISO-8859-1");
String utf8txt=new String(bytes, "UTF-8");
在把UTF-8编码的字符串utf8txt返回给浏览器之前,需要在java代码中再次指定编码方式。代码为:
resp.setContentType("text/html,charset=UTF-8");
resp.setCharacterEncoding("UTF-8");
然后再继续用html显示这个数据,代码为:
resp.getWriter().print("<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/></head><body>");
resp.getWriter().print("<strong>"+utf8txt+"</strong>");
resp.getWriter().print("</body></html>");
这样就能够保证浏览器看到显示正常的数据。
对于javaweb编程中碰到的乱码问题一般这些都能够解决。如果在编程中碰到乱码问题,我们可以一步步的调试,找出乱码出现的位置,然后针对性的解决。在java文件中设置断点,看从浏览器拿到的数据是否正常,从数据库拿到的数据是否正常,从tomcat转换后的数据是否正常,一直到服务器返回给浏览器的数据是否正常这个思路来一步步分析,相信乱码问题就会很快查到,并找到解决方法。
以上分析是从如鹏网的杨中科老师解决乱码问题得到的启发,做了一个小小的总结,希望对碰到乱码问题的朋友们有所帮助。
转载于:https://www.cnblogs.com/coodream2009/p/5504842.html
Javaweb编程中的乱码问题相关推荐
- JavaWeb编程中如果jar包存在但显示无法输出,就在IDEA的项目发布中添加lib依赖!
JavaWeb编程中如果jar包存在但显示无法输出,就在IDEA的项目发布中添加lib依赖! 第一步:点击设置选择项目结构 第二步:选择工件artifact,选子模块,然后再WEB-INF目录下添加l ...
- JavaWeb中的乱码解决方法总结
JavaWeb中的乱码解决方法总结 get请求提交中文(参数放在url中) 原因:服务器获取解析url的时候不知道编码规则 修改Tomcat服务器的安装路径下的conf目录下的配置文件server.x ...
- vs2012编程中输出中文出现乱码
关于"vs2012编程中输出中文出现乱码"问题的探究 问题如下: //代码如下// #include<iostream> using namespace std; in ...
- jsp写入mysql数据库乱码_JSP写入MySQL数据库中出现乱码问题笔记
1.在数据库链接字符串上要形如:jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF-8(注意要加chara ...
- JAVA 代码交互率低的原因分析,深入剖析Java编程中的中文问题及建议最优解决方法...
说明:本文为作者原创,作者联系地址为: josserchai@yahoo.com .由于 Java 编程中的中文 问题是一个老生常谈的问题,在阅读了许多关于 Java 中文问题解决方法之后,结合作者的 ...
- c mysql 工具类_Jave工具——servlet+jsp编程中mysql数据库连接及操作通用工具类
该工具类是在JavaWeb中连接mysql所用到的通用工具类 该类用于Java+Servlet的编程中,方便数据库的操作,连接,获取其列表值.下面是这个数据库操作类的通用方法,基本上能够用于类里面只含 ...
- C/C++ 编程中多国语言处理
C/C++ 编程中多国语言处理 简介: 多国语言的存在,使程序员在编码处理上花费了大量时间和精力:然而各种各样的乱码问题,如 XML 格式错误.文本显示异常.解析器异常等依然层出不穷.特别的,相对于 ...
- java中作用是什么_Java在编程中的作用是什么?
2017-07-28 Java编程中更新XML文档的常 JAXP是Java API for XML Processing的英文字头缩写,中文含义是:用于XML文档处理的使用Java语言编写的编程接口. ...
- 微信公众号回复、接收消息中中文乱码问题的分析及解决
微信公众号回复.接收消息中文乱码问题的分析及解决 为了方便,我们把接收时用的编码记为A.把处理时用的编码记为B.把返回时用的编码记为C 文章目录 微信公众号回复.接收消息中文乱码问题的分析及解决 中文 ...
最新文章
- 缩进动画Scaleanimation的一个小示例
- WINCE5.0和WINCE6.0的内存与系统架构
- JSON.NET 简单的使用
- Python TCP聊天器
- (转)会议期刊论文发表介绍(计算机科学领域)
- java创建mysql驱动,JDBC之Java连接mysql实现增删改查
- android view rotate,Android使用RotateImageView 旋转ImageView
- socket编程实例_NIO之网络编程源码阅读
- 最小生成树、二分图问题概述
- paip.提升用户体验-----可访问性大原则及一些方法
- matlab拟合出余弦曲线,如何用matlab做正弦曲线拟合?
- PS改变证件照片背景颜色
- 我大ps可以N倍长腿
- 【日语】五十音图-一个好用的日语五十音图记忆方法
- python控制鼠标移动
- python写android的App(kivy框架)的实践(1)
- 市场上各种深度摄像头测试之华捷艾米A100
- jsp实验中:tag文件报java.util.ArrayList cannot be cast to java.lang.String
- Kafka---如何配置Kafka集群和zookeeper集群
- 永琳的竹林迷径(path)
热门文章
- vue 计算屏幕的高度_学习Vue可以参考的10个开源项目——OpenSource
- 【sprinb-boot】资源、配置、lib分离打包
- typecho引入php文件,Typecho的functions.php
- 面对对象课程设计报告java,面向对象编程 JAVA编程综合实验报告.doc
- 计算机网络优化是啥,浅析计算机网络优化的方案.doc
- 火车头采集php源码不同,防火车头采集的功能
- python删除空白没有显示_删除Python字符串中的空白
- python3 安装opencv_Page20-opencv的编译与安装
- 逻辑回归和线性回归的区别_[PRML]线性分类模型贝叶斯逻辑回归
- elasticsearch 7.8.0 kibana 7.8.0安装部署