分析java中文乱码的原因
在java开发中都能遇到java中文乱码的情况,怎样才能够恰当地选择汉字编码方式并正确地处理汉字的编码呢?希望通过下面的总结的java中文乱码解决方法对遇到过此类问题的朋友有所帮助。
首先,要想解决java中文乱码问题就有必要了解一下什么是字符,字符集,编码的概念。
字符:是文字与符号的总称,包括文字、图形符号、数学符号等。
字符集:就是一组抽象字符的集合。字符集常常和一种具体的语言文字对应起来,该文字中的所有字符或者大部分常用字符就构成了该文字的字符集,比如英文字符集。繁体汉字字符集、日文汉字字符集等等。
计算机要处理各种字符,就需要将字符和二进制内码对应起来,这种对应关系就是字符编码: 制定编码首先要确定字符集,并将字符集内的字符排序,然后和二进制数字对应起来。根据字符集内字符的多少,会确定用几个字节来编码。
每种编码都限定了一个明确的字符集合,叫做被编码过的字符集(Coded Character Set),这是字符集的另外一个含义。通常所说的字符集大多是这个含义。
其次,要想解决java中文乱码问题也得了解一下我们常用的编码方式:
ASCII编码是目前计算机中用得最广泛的字符集及其编码。
ISO8859-1可以表示的是西欧语言。看起来很单一为什么还在使用呢?,由于是单字节编码,和计算机最基础的表示单位一致,所以很多时候,仍旧使用ISO-8859-1编码来表示。 而且在很多协议上,默认使用该编码。
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。通常我们所遇到过多UTF-8这是Unicode编码的实现方式,请一定要加以区分。
GB2312字集是简体字集;BIG5字集是台湾繁体字集;GBK字集是简繁字集,包括了GB字集、BIG5字集和一些符号
GB18030是国家制定的一个强制性大字集标准,它的推出使汉字集有了一个统一的标准。
Linux系统默认使用的是ISO-8859-1编码,Win32系统默认使用的是GB2312编码。
再是,了解乱码是怎么产生的,如何解决java中文乱码?
字符在保存时的编码格式如果和要显示的编码格式不一样的话,就会出现乱码问题。我们在做开发的时候,始终提倡开发环境编码一致。如页面编码,数据库编码等。
Java在运行期一律以Unicode来存储字符,这样有利的支持了多语言环境。我们在开发过程中经常会用到文件读取。Java读文件的时候会用到系统默认的编码来解码文件。所以在用FileInputStream类读取文件可以指定编码读取。
JSP页面乱码通常只要在页面开始地方用下面代码指定字符集编码即可。如果还不行,那么请用下面这句话来转换 str=new String(str.getBytes("ISO-8859-1"),"页面编码方式");
JAVA在网络传输中使用的编码是"ISO-8859-1",故在输出时需要进行转化,如:
String str=new String(str.getBytes("开发环境编码"),"ISO-8859-1");
经过网络编码后的中文,要正确显示在页面上必须要用类似于
Stirng str=new String(str.getBytes("ISO-8859-1"),"开发环境编码");这样的方式来解码
最后,为了避免不必要的java中文乱码,我们首先要从源头做起。
什么意思呢?这就是说,我们在项目开发中,首先要让我们开发环境统一编码。比如我用的开发环境是Eclipse+Tomcat5.0+SQLServer 2005。Eclipse的项目属性中可以设置项目的编码,可以针对JSP页面的设置统一的编码。
转载于:https://blog.51cto.com/zhongzh/652696
分析java中文乱码的原因相关推荐
- java中文乱码的原因及解决方法
在java开发中都能遇到java中文乱码的情况,怎样才能够恰当地选择汉字编码方式并正确地处理汉字的编码呢?希望通过下面的总结的java中文乱码解决方法对遇到过此类问题的朋友有所帮助. 首先,要想解决j ...
- J2EE (六) 详解 java 中文乱码
简介 在Java项目的开发过程中,经常会出现中文乱码的情况,这也是一直是困扰大家的一个问题,很多的程序员都会经常遇到这个问题. 有时捣鼓调试半天也摸不着头绪,不知道究竟哪里出了问题,那是你还不清楚出现 ...
- mysql保存中文乱码的原因和解决办法
当你遇到这个mysql保存中文乱码问题的时候,期待找到mysql保存中文乱码的原因和解决办法这样一篇能解决问题的文章是多么激动人心. 也许30%的程序员会选择自己百度,结果发现网友已经贴了很多类似 ...
- java中文乱码解决之道(二)—–字符编码详解:基础知识 + ASCII + GB**
原文出处:http://cmsblogs.com/?p=1412 在上篇博文(java中文乱码解决之道(一)-–认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述 ...
- cmd运行Java中文乱码,无法加载主类Error: Could not find or load main class
网上说了好多方法,只说我用了的 cmd运行Java中文乱码 设置环境变量--系统环境变量 添加条目:JAVA_TOOL_OPTIONS 值:-Dfile.encoding=UTF-8 -Duser.l ...
- mysql保存时乱码了_MySQL保存中文乱码的原因和解决办法
(3)MySQL的字符集设置. 这个是重点了,一般都是在这里搞错而出现了mysql乱码. mysql编码设置可以分为三种设置:数据库的编码.表的编码.和字段的编码. a.数据库的编码: 在sqlyog ...
- java 中文乱码过滤器_JAVA中文乱码过滤器(用java过滤器解决中文乱码)V0422 整理版...
JAVA中文乱码过滤器(用java过滤器解决中文乱码)V0422 整理版 不用再担心java中文乱码问题,一步到位,一次性解决.更方便更快捷. web-xml配置 EncodingFilter com ...
- [转]java中文乱码解决之道(三)-----编码详情:伟大的创想---Unicode编码
http://www.cnblogs.com/chenssy/ java中文乱码解决之道(三)-----编码详情:伟大的创想---Unicode编码 随着计算机的发展.普及,世界各国为了适应本国的语言 ...
- Java中文乱码特殊字符解决方案
Java中文乱码&特殊字符解决方案 相信很多朋友遇到过Java的乱码问题,最近我也在解决一个"使用文本生成图片过程中中文以及特殊字符乱码"的问题:花了我大量时间,Debug ...
最新文章
- 5G和AI机器人平台
- 论外部调用代理应该属于那一层
- R 语言 download.file 的几点知识
- 俩台电脑怎么设置同一局域网_【必看】局域网ip地址不够用怎么办?
- Problem 58 怎样判断当前程序链接的是多线程版的Glibc还是单线程版的Glibc?
- Linux之Redis安装
- 网站添加页面热力图--百度统计
- th:text=“${user?.name}“ ${?.}
- 微信表情暂停使用,漂流瓶功能彻底再见!
- MTK:文件操作接口详解
- HTML和CSS是什么玩意儿
- c语言上级题目,C语言上级考试题目.doc
- iphone iPhone开发中如何将制作图片放大缩小代码实现案例
- Layui中的table中toolbar自定义过程
- java 单个session过期_session过期的三种方法
- 树莓派——CSI摄像头和USB摄像头的配置与调试
- 小白IT:如何快速写出一个前端页面(网页),Python中如何使用前端语言什么是?JavaScript?BOMDOM?Bootstrap??
- linux字符驱动愚见
- 离线高清卫星地图SDK及解决方案
- 身份证OCR识别接口的优点
热门文章
- Spark RDD/Core 编程 API入门系列 之rdd实战(rdd基本操作实战及transformation和action流程图)(源码)(三)...
- ajaxReturn 之前dump调试,导致$.ajax不能正常运行
- Spring学习笔记—最小化Spring XML配置
- Find non-overlap jobs with max cost
- 程序清单8-9 回送所有命令行参数和所有环境字符串
- windows cmd编辑文本
- DNN模型训练词向量原理
- Part8 多态性 8.1运算符重载
- 1、python基础速成
- Ubuntu使用Windows下的conio.h