Java中文乱码问题研究(二)】的更多相关文章

上面写了console的乱码问题,接下来写的是web中servlet中的问题,大楷我比较关心一点,因为遇到这个的情况多一些吧.直接开始吧. 2. jsp和servlet中的乱码问题 分析: a. 其实在java文件的编译的情况和(一)中的情况是一样的,不过这里是由WEB容器去调用JVM而已,那么我们得知道一些默认的东西 比如特别重要的:(摘要) 如果Servlet 在运行的过程中,需要接受从客户端传来的字符如:表单输入的值和URL中传入的值,此时如果程序中没有设定接受参数时采用的编码格式,则WE…
在上篇博文(java中文乱码解决之道(一)-----认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述字符集.字符编码等基础知识和ASCII.GB的详情. 一.基础知识 在了解各种字符集之前我们需要了解一些最基础的知识,如:编码.字符.字符集.字符编码基础知识. 编码 计算机中存储的信息都是用二进制表示的,我们在屏幕上所看到文字.图片等都是通过二进制转换的结果.编码是信息从一种形式或格式转换为另一种形式的过程,通俗点讲就是就是将我们看到的文字.图片等信息按照…
原文出处:http://cmsblogs.com/?p=1412 在上篇博文(java中文乱码解决之道(一)—–认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述字符集.字符编码等基础知识和ASCII.GB的详情. 一.基础知识 在了解各种字符集之前我们需要了解一些最基础的知识,如:编码.字符.字符集.字符编码基础知识. 编码 计算机中存储的信息都是用二进制表示的,我们在屏幕上所看到文字.图片等都是通过二进制转换的结果.编码是信息从一种形式或格式转换为另一种…
沉寂了许久(大概有三个多月了吧),LZ"按捺不住"开始写博了! java编码中的中文问题是一个老生常谈的问题了,每次遇到中文乱码LZ要么是按照以前的经验修改,要么则是baidu.com来解决问题.阅读许多关于中文乱码的解决办法的博文后,发现对于该问题我们都(更加包括我自己)没有一个清晰明了的认识,于是LZ想通过这系列博文(估计只有几篇)来彻底分析.解决java中文乱码问题,如有错误之处望各位同仁指出!当然,此系列博文并非LZ完全原创,都是在前辈基础上总结,归纳,如果雷同纯属借鉴-- 问…
乱码,我们前台展示的杀手,可能有些朋友和我的经历一样:遇到乱码先按照自己的经验来解决,如果没有解决就google,运气好一搜就可以解决,运气不好可能够你折腾一番了.LZ之所以写这个系列博客就是因为遇到这个令人讨厌的问题,虽然是小问题但又不得不解决. 在这个系列博文中LZ并没有阐述归纳乱码的方法,出现乱码的原因各式各样但根本原因就是编码转换过程中的格式不一样,所以我们只需要了解了java在运行过程中是如何来完成编码和解码的,乱码也许就真不是什么问题了. 在前面三篇博客中LZ说明了各种编码的来由.编…
原文出处:http://cmsblogs.com/?p=1395 沉寂了许久(大概有三个多月了吧),LZ“按捺不住”开始写博了! java编码中的中文问题是一个老生常谈的问题了,每次遇到中文乱码LZ要么是按照以前的经验修改,要么则是baidu.com来解决问题.阅读许多关于中文乱码的解决办法的博文后,发现对于该问题我们都(更加包括我自己)没有一个清晰明了的认识,于是LZ想通过这系列博文(估计只有几篇)来彻底分析.解决java中文乱码问题,如有错误之处望各位同仁指出!当然,此系列博文并非LZ完全原…
我们知道JSP页面是需要转换为servlet的,在转换过程中肯定是要进行编码的.在JSP转换为servlet过程中下面一段代码起到至关重要的作用. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="GBK" %> 在上面代码中有两个地方存在编码:pageEncoding.contentType的charset.其中pageEnco…
关于Java中文乱码与日期格式 Java中文乱码的问题其实很普遍了,首先,一般不会在Windows平台下面出现,同时,一般在Tomcat应用服务器下也都正常,但是到了WebSphere,Weblogic等应用服务器,到了Unix,AIX等操作系统上,乱码呀,日期格式问题就来了. 最近,项目组遇到了如下问题,从Excel读取日期,A服务器读的日期格式记得好像是2009-10-10,但是到了B服务器日期格式就变成了10/10/2009,啥问题呢? 看到这样,初步的分析就是:操作系统环境问题?中文环境…
Java中文乱码解决方案   1.中文乱码解决方案,确保每个文件的默认编码是UTF-8         加入 URIEncoding="UTF-8" 代码中的设置 1>在servlet中加入 //1.设置response的编码为utf-8 response.setCharacterEncoding("utf-8"); //2.通知浏览器,以UTF-8的编码打开 response.setContentType("text/html;charset=UT…
我们知道JSP页面是需要转换为servlet的,在转换过程中肯定是要进行编码的.在JSP转换为servlet过程中下面一段代码起到至关重要的作用. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="GBK" %> 在上面代码中有两个地方存在编码:pageEncoding.contentType的charset.其中pageEnco…
开发java应用出现乱码是很常见的,毕竟现在unicode的使用还不是很广泛,在使用gb2312(包含了gbk简体,big5繁体)的系统中要正确 实现中文的display和数据库的存储是最基本的要求. 1,首先developer要明确自己为什么会遇到乱码,遇到什么样的乱码(无意义的符号还是一串问号或者其它什么东西). 新手遇到一堆很乱的字符时通常不知所措,最直接的反映就是打开google搜索“java中文”(这个字符串在搜索引擎上的查询频率非常高), 然后一个一个的去看别人的解决方法.这样做没有…
我们主要通过两种形式提交向服务器发送请求:URL.表单.而表单形式一般都不会出现乱码问题,乱码问题主要是在URL上面.通过前面几篇博客的介绍我们知道URL向服务器发送请求编码过程实在是实在太混乱了.不同的操作系统.不同的浏览器.不同的网页字符集,将导致完全不同的编码结果.如果程序员要把每一种结果都考虑进去,是不是太恐怖了?有没有办法,能够保证客户端只用一种编码方法向服务器发出请求? 有!这里我主要提供以下几种方法 一.javascript 使用javascript编码不给浏览器插手的机会,编码之…
在JavaWeb应用开发中,经常会出现页面中本该显示中文的地方却是乱码的情况.究其原因,主要是由于在Web组件之间.或Web组件与浏览器.与数据库所使用的字符集标准不统一,Web应用程序运行过程中,中文字符往往需要在不同的字符集之间来回转换,这就导致了中文乱码问题的频繁出现.本文从Web应用的常用编码出发,详细讨论JavaWeb应用开发中出现中文乱码的原因以及解决办法.本文讨论的环境是基于JDK5.0,服务器为Tomcat5.5,数据库为MySQL5.0.1  Web应用的常用编码    Web…
•ASCII ØASCII使用7个比特(bit)进行字符编码,最多可以表示的字符数量为27(128)个字符,这些字符包括了大小写英文字母.阿拉伯数字.标点符号.控制字符和其他符号.每个字符用一个字节表示,每个字节的最高位为0.例如:字符“A”在用ASCII码中用2进制的“01000001”表示,换算成10进制为“65”.     •ISO8859-1 ØISO8859-1,又称Latin-1,是在ASCII的基础上,使用8比特编码,新增了一些字符.新增的字符主要用来支持部分欧洲国家所使用的语言,…
解决JSP中文乱码问题 大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着大家,现把JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考.首先了解一下Java中文问题的由来: Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦.原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题.首先Java(包括JSP)源文件中很可能包含有中文,而Java和JSP源文…
java编码转换过程 我们总是用一个java类文件和用户进行最直接的交互(输入.输出),这些交互内容包含的文字可能会包含中文.无论这些java类是与数据库交互,还是与前端页面交互,他们的生命周期总是这样的: 1.程序员在操作系统上通过编辑器编写程序代码并且以.java的格式保存操作系统中,这些文件我们称之为源文件. 2.通过JDK中的javac.exe编译这些源文件形成.class类. 3.直接运行这些类或者部署在WEB容器中运行,得到输出结果. 这些过程是从宏观上面来观察的,了解这个肯定是不行…
1.解决HTML页面的中文问题:为了使HTML页面很好的支持中文,在每个HTML页面的<head>标签内部增加(创建HTML页面自带) <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> 2.解决jsp页面中的中文问题:pageEncoding是jsp文件本身的编码contentType的charset是指服务器发送给客户端时…
Java平台遇到的两类问题: 1.源代码中文乱码问题: a.Java文件,中文乱码,配置IDE的Preference的编码格式,总有一款适合你. b.HTML(JSP.....)文件,中文乱码,添加并设置HTML的contentType.charset即可.<%@ page contentType="text/html;charset=GBK"%> 2.应用程序中输入中文乱码问题: a.selvert的过滤器filter处理中文乱码问题: 修改web.xml中的配置参数:…
相信很多朋友遇到过Java的乱码问题,最近我也在解决一个“使用文本生成图片过程中中文以及特殊字符乱码”的问题:花了我大量时间,Debug了sun.font.sun.awt下面的各种源码,终于搞懂了其机制,解决了目前次问题:现在把问题解决过程给写下来,做个记录,以免以后再次遇到. 遇到的问题 下面是我想要执行的代码(经过极度简化,但是意思没变): 1 public static void main(String[] args) throws IOException { 2 File file =…
线上执行MapReduce任务计算时,经过排查发现了某些服务器计算的数据出现中文乱码问题,但是服务器的配置是完全一致的.由于我们使用的key可能包含中文,中文乱码问题体现在每次合并map记录的时候计算数据的随机性,每次执行的结果都不一样(由于Map任务执分配的随机性). (注:此文章大部分都参考了同事查找到的问题解决方法.)   在执行Java进程的过程中,通过命令:jinfo+Java进程号 可以查看java进程运行的一些环境信息,其中也包括-D设置的相关参数.   截取的所有信息中,我们比较…
1 处理乱码方式: 1 连接数据库的时候 jdbc.properties:jdbc:mysql://localhost:3306/myproject?useUnicode=true&characterEncoding=utf8 2 修改mysql配置文件my.ini/my.cnf       default-character-set=utf8 3 修改tomcat中的配置文件server.xml改为 <Connector port="8080" protocol=&qu…
1.要记住的事实 java的class文件是utf-8编码的,jvm使用utf-16,而java的字符串使用unicode编码 2.java支持的字符集 java支持的字符集可以通过java.nio.charset.Charset类查看到 for(String key:Charset.availableCharsets().keySet()){ System.out.println(key); } 3.文件读取中的坑 a.读取外部文件 如果没注意外部文件的编码格式,我们的代码也没做处理的话,当默…
注意,这里是针对Tomcat容器中get方式提交的servlet中获得参数,参数中有中文的时候乱码的问题: 之前我已经讲过,Tomcat8.0及以上URIEncoding都是utf-8的默认编码,不会出现get方式乱码的问题: 只有Tomcat7.0及以下的版本,默认的URIEncoding才是ISO-8859-1才会出现中文乱码,当然我们也可以在Tomcat的conf中的server.xml中修改默认的URLEncoding来解决此问题(但是我们这里测试是要求不能修改Tomcat容器中的默认编…
1.URL编码 String str = URLEncoder.encode("中文乱码","UTF-8");//编码 String newStr = URLDecoder.decode(str,"UTF-8");//解码2.new String() String str = new String("中文乱码".getBytes(),"UTF-8");…
1. 这方法行之有效,但是谨慎用,它会作用服务器.超链接中带有的中文字符,<a class="add" href = "system/showDataAdd.action?title=题目&dataType=clientRank& rel=clientRankSet">添加</a> 这样如果不进行处理在后台得到的数据就会出现中文乱码的问题,由于超链接实际是用get方式进行传值的,这个问题的解决方法有:a. 在我们用的Tomca…
查看此文章需要对字符集编码有一定的认识:任意门:字符集编码基础 一.字符串的内部表示? 重点:字符串在java(指在JVM中.在内存中)中统一用unicode表示( 即utf-16 LE) , 下面解释: 对于 String s = "你好哦!"; 如果源码文件(java文件)是GBK编码, 操作系统(windows)默认的环境编码为GBK,那么编译时,  JVM将 按照GBK编码将字节数组解析成字符(系统文件本质就是二进制流),然后将字符转换为unicode格式的字节数组,作为内部存…
前面三篇博客侧重介绍字符.编码问题,通过这三篇博客各位博友对各种字符编码有了一个初步的了解,要了解java的中文问题这是必须要了解的.但是了解这些仅仅只是一个开始,以下博客将侧重介绍java乱码是如何产生的.存在哪些乱码的情况.该如何从根本上解决乱码问题.各位随博主一起征服令人厌烦的java乱码问题吧!!! java编码转换过程 我们总是用一个java类文件和用户进行最直接的交互(输入.输出),这些交互内容包含的文字可能会包含中文.无论这些java类是与数据库交互,还是与前端页面交互,他们的生命…
在上篇博客中LZ介绍了前面两种场景(IO.内存)中的java编码解码操作,其实在这两种场景中我们只需要在编码解码过程中设置正确的编码解码方式一般而言是不会出现乱码的.对于我们从事java开发的人而言,其实最容易也是产生乱码最多的地方就是web部分.首先我们来看在javaWeb中有哪些地方存在编码转换操作. 编码&解码 通过下图我们可以了解在javaWeb中有哪些地方有转码: 用户想服务器发送一个HTTP请求,需要编码的地方有url.cookie.parameter,经过编码后服务器接受HTTP请…
在基于Java的编程中,经常会碰到汉字的处里及显示的问题,比如一大堆乱码或问号. 这是因为JAVA中默认的编码方式是UNICODE,而中国人通常使用的文件和DB都是基于GB2312或者BIG5等编码,故会出现此问题.以前我也经常为这个问题而苦恼,后来经查了些资料,终于解决了,我知道一定有很多朋友也会碰到这个问题,所以特就总结了一下,来拿出来让大家一起分享了. 1.在网页中输出中文. JAVA在网络传输中使用的编码是"ISO-8859-1",故在输出时需要进行转化,如: String s…
Jvm内部编码采用的是Unicode编码. 常见的字符编码集:ASCII编码,GBK编码,Unicode编码 UTF-8只是unicode的实现方式之一: UTF-8最大的一个特点,就是它是一种变长的编码方式.它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度. UTF-8的编码规则很简单,只有两条: 1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码.因此对于英语字母,UTF-8编码和ASCII码是相同的. 2)对于n字节的符号(n>1),第一个字节的…