- 浏览: 3010209 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (893)
- android (110)
- iphone (198)
- java (79)
- JavaScript手册-目录 (9)
- JavaScript手册-Array (19)
- JavaScript手册-Boolean (5)
- JavaScript手册-Date (50)
- JavaScript手册-Math (30)
- JavaScript手册-Number (14)
- JavaScript手册-RegExp (7)
- JavaScript手册-String (38)
- JavaScript手册-全局函数 (8)
- JavaScript实用脚本 (7)
- Others (21)
- java-jpcap (7)
- java-thread (1)
- ibm文章 (3)
- classloader (2)
- java-filter (2)
- 运行环境 (33)
- java-正则 (2)
- oracle (1)
- linux-shell (26)
- wap (1)
- sqlite (3)
- wow (1)
- jvm (1)
- git (5)
- unity3d (29)
- iap (2)
- mysql (23)
- nginx (14)
- tomcat (9)
- apache (2)
- php (1)
- ubuntu (40)
- rsa (1)
- golang (21)
- appstore (5)
- sftp (2)
- log4j (2)
- netty (18)
- 测试工具 (6)
- memcache (5)
- 设计模式 (1)
- centos (8)
- google_iab (5)
- iOS专题 (4)
- mac (10)
- 安装配置帮助手册 (2)
- im4java_graphicsmagick (5)
- inotify-tools (1)
- erlang (6)
- 微信支付 (1)
- redis (8)
- RabbitMQ (5)
最新评论
-
heng123:
Netty视频教程https://www.douban.com ...
netty4.0.23 初学的demo -
maotou1988:
使用Netty进行Android与Server端通信实现文字发 ...
netty4.0.23 初学的demo -
码革裹尸:
非常感谢,正好用上
android 呼入电话的监听(来电监听) -
rigou:
提示的/222.177.4.242 无法链接到ip地址,是什 ...
通过 itms:services://? 在线安装ipa ,跨过app-store -
duwanbo:
GridView与数据绑定
在java开发中,经常会遇到乱码问题(包括中文乱码、其他国家语言文字乱码等),怎么样才能花最小的代价来解决这个问题呢?下面就将提供一种方式来彻底解决这个麻烦。(本方法已经在很多项目中使用,希望能给那些为乱码困扰的朋友带来帮助!)
方法分成以下3个步骤(请放心,每一步都非常简单)
1. 首先将开发项目(如在Eclipse中创建的项目)的设置成UTF-8编码方式(如下图)。这一点在开始一个新的项目的时候尤其重要,目前的项目基本上都使用UTF-8编码了。
2. 确保项目内的所有开发文件都是UTF-8编码的。这里的开发文件主要指:java,jsp,html,js,css,xml类型等开发涉及到的文件,当然图片文件就不用了,貌似没有UTF-8的图形文件。其中的java,js,css,xml类型文件,只要文件的编码方式为UTF-8就可以了。而jsp文件则还需要在文件内容中设置如下:
另外html文件还需要在文件内容中设置:
对jsp文件和html文件要特别注意,大多数时候遇到乱码是因为粗心没有进行UTF-8编码或者文件内容没有设置对造成的。遇到乱码问题一般先检查相应的文件编码和内容是否符合要求。
如果原来不是UTF-8编码的可以用文本工具进行转换,包括最简单的记事本也可以将打开的文件另存为UTF-8编码,当然可以用UltraEdit工具转换[菜单:文件-转换-ASCII转UTF-8]更加方便。
3. 在项目应用中加一个编码虑镜。编码虑镜的代码(很简单的)具体如下:
编码虑镜的使用方法:只要在项目的web.xml文件的开头中加入如下的配置参数就可以了:
这样能确保所有出入项目的调用都是UTF-8编码的。
经过上面的3个步骤后,你的java项目就不必再受到乱码的困扰了,当然在实际的开发中,由于使用一些第3方的开源组件可能会遇到乱码问题,不过,大部分的问题都是由于开源组件造成的,不必怀疑自己的项目。只要对开源组件中的编码方式进行设置或者作相应的修改,一般就能解决问题。
这是我在javaeye博客上的第一篇文章,希望给一些遇到类似问题的朋友带来帮助。
让我们一起努力吧,我行我可以!
stephen 2008-10-17
stephen830 写道184168730@qq.com 写道只能解决以post提交的问题...还有get的呢get方式同样有效,浏览器一般默认都是以utf-8方式发送url的。理论上是可以 但是我现在做的就不行 我用get的方式提交站内搜索,提交内容就变成乱码了
表单方式 get方式提交后,浏览器会自动对参数进行utf-8编码,空格全部用+替换,request接收时自动对参数解码,同时把+替换回空格;
如果是url的get方式,浏览器也会自动对参数进行utf-8编码,空格全部用%20替换,request接收时同样自动对参数解码,同时把%20替换回空格。
184168730@qq.com 写道只能解决以post提交的问题...还有get的呢get方式同样有效,浏览器一般默认都是以utf-8方式发送url的。
理论上是可以 但是我现在做的就不行 我用get的方式提交站内搜索,提交内容就变成乱码了
184168730@qq.com 写道只能解决以post提交的问题...还有get的呢get方式同样有效,浏览器一般默认都是以utf-8方式发送url的。
理论上是可以 但是我现在做的就不行 我用get的方式提交站内搜索,提交内容就变成乱码了
只能解决以post提交的问题...还有get的呢
get方式同样有效,浏览器一般默认都是以utf-8方式发送url的。
方法分成以下3个步骤(请放心,每一步都非常简单)
1. 首先将开发项目(如在Eclipse中创建的项目)的设置成UTF-8编码方式(如下图)。这一点在开始一个新的项目的时候尤其重要,目前的项目基本上都使用UTF-8编码了。
2. 确保项目内的所有开发文件都是UTF-8编码的。这里的开发文件主要指:java,jsp,html,js,css,xml类型等开发涉及到的文件,当然图片文件就不用了,貌似没有UTF-8的图形文件。其中的java,js,css,xml类型文件,只要文件的编码方式为UTF-8就可以了。而jsp文件则还需要在文件内容中设置如下:
<%@ page contentType="text/html;charset=UTF-8"%> ... <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> ...
另外html文件还需要在文件内容中设置:
... <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> ...
对jsp文件和html文件要特别注意,大多数时候遇到乱码是因为粗心没有进行UTF-8编码或者文件内容没有设置对造成的。遇到乱码问题一般先检查相应的文件编码和内容是否符合要求。
如果原来不是UTF-8编码的可以用文本工具进行转换,包括最简单的记事本也可以将打开的文件另存为UTF-8编码,当然可以用UltraEdit工具转换[菜单:文件-转换-ASCII转UTF-8]更加方便。
3. 在项目应用中加一个编码虑镜。编码虑镜的代码(很简单的)具体如下:
/* * Created on 2005-11-6 * Author stephen * Email zhoujianqiang AT gmail DOT com * CopyRight(C)2005-2008 , All rights reserved. */ package com.soft4j.filter; import java.io.IOException; import javax.servlet.*; public class CharsetFilter implements Filter { protected String encoding = null;// ///要制定的编码,在web.xml中配置 protected FilterConfig filterConfig = null; public void destroy() { this.encoding = null; this.filterConfig = null; } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if (request.getCharacterEncoding() == null) { String encoding = getEncoding();// //得到指定的编码名字 if (encoding != null) request.setCharacterEncoding(encoding);// //设置request的编码 } chain.doFilter(request, response);// /有机会执行下一个filter } public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; this.encoding = filterConfig.getInitParameter("encoding");// /得到在web.xml中配置的编码 } protected String getEncoding() { return (this.encoding);// /得到指定的编码 } }
编码虑镜的使用方法:只要在项目的web.xml文件的开头中加入如下的配置参数就可以了:
<filter> <filter-name>SetCharacterEncoding</filter-name> <filter-class>com.soft4j.filter.CharsetFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>SetCharacterEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
这样能确保所有出入项目的调用都是UTF-8编码的。
经过上面的3个步骤后,你的java项目就不必再受到乱码的困扰了,当然在实际的开发中,由于使用一些第3方的开源组件可能会遇到乱码问题,不过,大部分的问题都是由于开源组件造成的,不必怀疑自己的项目。只要对开源组件中的编码方式进行设置或者作相应的修改,一般就能解决问题。
这是我在javaeye博客上的第一篇文章,希望给一些遇到类似问题的朋友带来帮助。
让我们一起努力吧,我行我可以!
stephen 2008-10-17
评论
12 楼
奇迹海
2012-05-16
楼主,问一下 我做的上传文件,页面都是UTF-8的,但上传的文件是GBK的,要怎么处理,显示到页面才不会是乱码?
11 楼
stephen830
2008-10-22
184168730@qq.com 写道
stephen830 写道184168730@qq.com 写道只能解决以post提交的问题...还有get的呢get方式同样有效,浏览器一般默认都是以utf-8方式发送url的。理论上是可以 但是我现在做的就不行 我用get的方式提交站内搜索,提交内容就变成乱码了
表单方式 get方式提交后,浏览器会自动对参数进行utf-8编码,空格全部用+替换,request接收时自动对参数解码,同时把+替换回空格;
如果是url的get方式,浏览器也会自动对参数进行utf-8编码,空格全部用%20替换,request接收时同样自动对参数解码,同时把%20替换回空格。
10 楼
fabulous
2008-10-22
晕 不小心就提交了两次 是我的问题还是JE的问题呀 呵呵
9 楼
fabulous
2008-10-22
晕 不小心就提交了两次 是我的问题还是JE的问题呀 呵呵
8 楼
fabulous
2008-10-22
stephen830 写道
184168730@qq.com 写道只能解决以post提交的问题...还有get的呢get方式同样有效,浏览器一般默认都是以utf-8方式发送url的。
理论上是可以 但是我现在做的就不行 我用get的方式提交站内搜索,提交内容就变成乱码了
7 楼
fabulous
2008-10-22
stephen830 写道
184168730@qq.com 写道只能解决以post提交的问题...还有get的呢get方式同样有效,浏览器一般默认都是以utf-8方式发送url的。
理论上是可以 但是我现在做的就不行 我用get的方式提交站内搜索,提交内容就变成乱码了
6 楼
stephen830
2008-10-21
184168730@qq.com 写道
只能解决以post提交的问题...还有get的呢
get方式同样有效,浏览器一般默认都是以utf-8方式发送url的。
5 楼
fabulous
2008-10-20
只能解决以post提交的问题...还有get的呢
4 楼
chenlb
2008-10-20
过虑器,tomcat、spring自带有。 http://chenlb.iteye.com/blog/196528
3 楼
chenlb
2008-10-20
过虑器,tomcat、spring自带有。
2 楼
stephen830
2008-10-19
谢谢 amcucn 的赞赏,确实如此,从最早使用java开始就一直被乱码所困扰,到目前基本上已经彻底告别了这个问题。
记得最早的时候,大家都在用getBytes()方法进行转码,那时候真的很麻烦。不过,现在好了,雨过天晴,很舒畅。
记得最早的时候,大家都在用getBytes()方法进行转码,那时候真的很麻烦。不过,现在好了,雨过天晴,很舒畅。
1 楼
amcucn
2008-10-19
文章不错!目前我工作的时候就是采用这种办法!
发表评论
-
Java的内存机制
2016-08-22 13:27 4821.Java的内存机制 Java 把内存划分成两 ... -
监听域对象中属性的变更的监听器
2016-07-18 19:06 1753监听域对象中属性的变更的监听器 域对象中属性 ... -
HttpSessionActivationListener
2016-07-18 18:46 649HttpSessionActivationListe ... -
Web容器监听器(实现在线统计人数,踢人)
2016-07-18 10:48 950Web容器监听器(实现在线统计人数,踢人) Servl ... -
HttpSessionBindingListener接口
2016-07-18 10:29 642HttpSessionBindingListene ... -
ServletRequestAttributeListener接口
2016-07-17 22:24 8342. HttpSessionAttribut ... -
Servlet3中异步Servlet特性介绍
2016-07-17 15:50 846Servlet3中异步Servlet特性介绍 ... -
HttpSessionAttributeListener
2016-07-15 17:49 696HttpSessionAttributeListener ... -
使用ServletContextAttributeListener
2016-07-15 16:47 847使用ServletContextAttr ... -
ServletRequestListener
2016-07-15 16:25 600ServletRequestListener接口 ... -
HttpSessionListener
2016-07-15 14:56 634HttpSessionListener接口 M ... -
ServletContextListener 接口
2016-07-15 12:16 628在 Servlet API 中有一个 Se ... -
ReflectASM,高性能的反射
2016-04-29 17:19 961http://www.oschina.net/p/r ... -
Java多线程与静态方法
2016-04-26 11:52 850Java多线程与静态方法 在多线程中使用静态方法会发生什么 ... -
log4j日志输出格式
2016-04-12 20:58 1117log4j日志输出格式 在LOG4J的配置文件中,l ... -
Servlet3.0
2016-04-12 16:58 698一、Servlet3.0介绍 Servlet3 ... -
log4j2 使用详解
2016-04-12 14:14 1466log4j2 使用详解 转载自 Blog of ... -
Eclipse jar打包和命令行运行
2016-04-08 10:44 2963?Eclipse jar打包和命令行运行 第1步: ... -
GRAPHICSMAGICK+IM4JAVA错误Cannot run program "gm": error=2
2015-05-19 15:27 4112在通过 GRAPHICSMAGICK+IM4JAVA ... -
GraphicsMagick安装、实时生成缩略图
2015-05-19 13:39 2421GraphicsMagick安装、实时生成缩略图 ...
相关推荐
在Java编程中,读取和写入TXT文件时,经常遇到中文乱码的问题。这是因为Java默认的字符编码可能与TXT文件的实际编码不一致,导致字符无法正确解析。本篇文章将深入探讨这个问题,并提供完整的源码解决方案。 首先,...
### MySQL + JDBC 彻底解决中文乱码问题 #### 一、引言 在使用 MySQL 数据库进行数据存储时,可能会遇到中文字符显示为乱码的问题。这种情况通常出现在数据库连接参数配置不当或数据库本身的字符集设置不正确时。...
在IT行业中,网络请求是应用程序与服务器交互的重要方式,而HttpClient是Java开发中常用的一款HTTP客户端库。然而,处理HTTP响应时,特别是涉及到文本内容时,乱码问题常常困扰着开发者。本文将深入探讨如何使用...
在Web开发过程中,经常遇到的一个问题是中文或其它非ASCII字符的乱码问题。这种现象通常出现在浏览器接收的数据与实际编码格式不匹配时。解决此类问题的一种常见方法是使用过滤器(Filter)对请求进行预处理,以确保...
在开发基于Java的JSP应用程序时,遇到中文乱码问题是很常见的困扰。这是因为Java的核心和class文件基于Unicode编码,这为跨平台提供了便利,但也引入了处理中文字符时可能出现的问题。乱码问题主要分为两大类:Java...
本文将详细介绍如何彻底解决MySQL运行SQL语句中文乱码的问题。 #### 一、理解乱码产生的原因 在探讨解决方案之前,我们先来了解一下为什么会出现乱码问题。乱码主要是由于字符集不匹配导致的。当MySQL处理中文字符...
在Java开发中,文件上传和下载是常见的功能需求,尤其在Web应用中。这个压缩包提供的组建源码,专门针对中文乱码问题进行了优化,基于jspsmartupload库进行了改进,确保了在处理文件名时不会出现编码问题,从而提高...
本文将深入探讨FCKeditor编辑器中的中文乱码问题及其彻底解决方案。 中文乱码问题通常源于字符编码不一致。在计算机系统中,不同的程序或文件可能使用不同的字符编码,如ASCII、GBK、UTF-8等。当这些程序或文件互相...
本文将深入探讨Java中解决中文乱码的终极策略,帮助开发者彻底摆脱这个困扰。 首先,我们要理解Java中的字符编码体系。Java采用Unicode作为其内部编码,这使得它能够处理世界上几乎所有的字符集。然而,当与外部...
本文将详细介绍如何在Servlet与JSP中彻底解决中文乱码问题,并给出具体的解决方案。 #### 二、中文乱码的原因分析 中文乱码主要由以下几个原因引起: 1. **服务器端编码设置不正确**:如果服务器端的字符集设置与...
本文将深入探讨如何彻底解决这一问题,包括自动判断文档编码类型以及进行转码操作。 首先,我们需要理解为什么会出现中文乱码。在计算机中,文本是以特定编码格式存储的,例如ASCII、GBK、UTF-8等。不同的编码格式...
通过上述步骤,我们可以在Java Web开发中(使用JSP和Servlet)彻底解决乱码问题,确保数据从输入到输出的整个过程中都使用一致的UTF-8编码。这不仅提高了数据处理的准确性,也提升了用户体验,特别是在涉及多语言...
这对于开发者来说是一个很大的优势,可以深入理解其工作原理,以便在遇到问题时能快速定位并解决问题。 6. **直接引用**:描述中提到,只需将这个jar包引入项目,即可使用其功能。这意味着HTMLParser.jar的API设计...
对于部分情况,仅修改Eclipse的编码设置可能不足以彻底解决问题,尤其是在使用Struts框架时,资源属性文件在被读取到JSP页面上时仍可能出现乱码。这是因为Java在处理这些文件时可能会进行两次编码,导致乱码问题依旧...
本篇文章将深入探讨如何彻底解决Spring MVC中的中文乱码问题,以便于开发者能够流畅地处理中文数据。 首先,当用户通过表单提交中文参数时,可能会遇到乱码问题。确保JSP页面的编码设置为UTF-8,例如在页面头部添加...
要彻底解决中文乱码问题,首先需要了解其产生的原因。在Web环境中,数据从浏览器到服务器的传输过程中涉及多个环节,包括但不限于: 1. **客户端编码**:浏览器提交表单时,默认会按照HTML文档声明的编码格式对数据...
在IT行业中,尤其是在Web开发领域,Tomcat是一个广泛使用的开源应用服务器,主要处理Java Servlet和JSP(JavaServer Pages)应用程序。然而,在实际操作中,开发者时常会遇到字符编码问题,尤其是在Tomcat 5这样的较...
在Java Web开发中,使用SmartUpload组件上传附件时,可能会遇到中文文件名乱码的问题。这个问题通常涉及到字符编码的处理,特别是在不同的操作系统和Web服务器环境下。以下是对彻底解决该问题的详细解析: 首先,...