很多人 特别是新手 做j2ee 项目中
总能受困于 这样或那样的编码问题
这里讨论下 新手学习,高手指教 一起研究下
(以 tomcat mysql 做例子 我推荐所有的编码采用utf-8)
1 工程
工程内所有的 .java .jsp .xml .txt 都有默认的编码 默认的是系统环境的编码
我们中文系统通常是GBK 推荐都采用utf-8
utf-8 的时候 你编译 生成doc 可能会遇到乱码(特别是采用ant 的时候,生成doc你几乎100%会遇到)
解决方法 以ant 为例子
编译 注意 encoding 参数
<target name="build">
<mkdir dir="${build.dir}">
<javac encoding="utf-8" destdir="${build.dir}" target="1.3" debug="true" deprecation="false" optimize="false" failonerror="true">
<src path="${src.dir}">
<classpath refid="master-classpath">
</javac>
</target>
生成doc 注意 encoding 和 charset
<target name="doc">
<mkdir dir="doc">
<javadoc charset="utf-8" encoding="utf-8" packagenames="${packages}" sourcepath="src" destdir="doc" author="true" version="true" use="true" splitindex="true">
<classpath refid="master-classpath">
</javadoc>
</target>
这里 的encoding 就是指的你 java 文件的编码格式 javac 和javadoc 都有这个参数
charset 指的是 生成 doc 后的编码方式 javadoc 的参数
2 数据库
mysql 的编码最复杂 从4以后 mysql 号称支持多编码 它更灵活了 我们也更麻烦了
mysql 有4个级别的编码
系统级
库级
表级
sql语句级
请保持采用统一的编码 推荐utf-8
其它数据库要简单的多 一般都是一种编码
3 web server
tomcat 为例
tomcat server.xml 中一个参数
<connectorport="8080" maxhttpheadersize="8192" maxthreads="150" minsparethreads="25" maxsparethreads="75" enablelookups="false" redirectport="8443" acceptcount="100" connectiontimeout="20000" disableuploadtimeout="true" urincoding="utf-8">
经测试 这个URIncoding 参数主要是 get 方法中采用编码
4 jsp 显示层
第1条中说明了 jsp 文件本身的格式
很多朋友采用eclipse +myeclipse 生成jsp
它自动生成一个头<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
不要误解 这句话不能保证你在ie里看到的不是乱码
pageEncoding它的意思是 这个页面本身采用的是 utf-8 (似乎只在eclipse 里有效果 ,我不确定)
为了在ie 里不乱码 你还得加一句 <%@ page contentType="text/html; charset=UTF-8"%>
它不能在(myeclispe)自动生成 推荐修改 myeclipse的模板 在下边的目录里
MyEclipse\eclipse\plugins\com.genuitec.eclipse.wizards_4.0.1\Templates
里边的jsp模版 你加上<%@ page contentType="text/html; charset=${encoding}"%>
5 filter
自从tomcat 4 以后 网上就流传了一个SetCharacterEncodingFilter 过滤器 搜一下有很多
很好用 web.xml 中加入
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
6 资源文件
首先保证 文件本身是utf-8
然后部署的时候用 native2ascii 转换
这里给出 ant 里的例子
<native2ascii encoding="utf-8" dest="${web.dir}/WEB-INF/classes" src="${src.dir}" includes="**/*.properties">
分享到:
相关推荐
JavaWeb 乱码问题终极解决方案 下面是从给定的文件中生成的相关知识点: 一、确认乱码发生的位置 在解决 JavaWeb 乱码问题时,首先要确认乱码的地方。出现乱码可能是浏览器显示问题,也可能是 Java 编码问题,也...
本篇文章将针对"乱码问题终极解决方案"这个主题,深入探讨在Java、JSP和Ajax中如何有效地预防和解决乱码问题。 首先,我们要理解乱码产生的原因。乱码通常是因为字符编码不一致导致的,比如文件编码、程序内部编码...
对于给定的"解决乱码终极办法"压缩包文件,很可能是包含了一些示例代码或工具,帮助开发者快速解决特定场景下的乱码问题。如果遇到具体问题,可以参考这些资源,结合本文的知识点,来找到最合适的解决方案。
尽管上述方法可以在一定程度上解决乱码问题,但最好的解决之道是建立一个完整的编码管理策略,涵盖应用的输入、输出以及中间处理的各个环节。在设计阶段就考虑到字符集的兼容性,避免在后期修复导致的复杂性。同时,...
### 终极解决Linux乱码:中文字符乱码详解与解决方案 在Linux系统中,遇到中文乱码的问题是不少用户和管理员都会遭遇的常见难题。本文将深入解析Linux中文乱码的原因,并提供一系列有效的解决方案,旨在帮助用户...
开发中前台页面向后台传参,汉字乱码,看了好多网上的方法都解决不了,所以写了一个工具类,判断是乱码就转换,不乱码就不乱换,汉字字母符号自动判断。最后完美解决汉字乱码问题。
### Struts2乱码终极解决办法 #### 一、引言 在开发基于Struts2框架的应用时,经常遇到的一个问题就是中文乱码。这不仅影响用户体验,还可能导致数据处理错误。本文将详细介绍如何彻底解决Struts2中的乱码问题,并...
### 终极解决方案 解决ASP.NET导出Excel乱码的关键在于确保整个流程中的字符编码一致性。以下是一种被证实有效的解决方案: #### 1. 设置正确的HTTP响应编码 在生成Excel文件前,首先需要设置`Response`对象的`...
终极解决apache乱码和日志分割问题,LoadModule encoding_module modules/mod_encoding.so Header add MS-Author-Via "DAV" </IfModule>
解决 RHEL5.1 安装 VM TOOLS 及中文乱码终极解决方案 本文主要讲述了在 RHEL5.1 系统中安装 VM TOOLS 的解决方案,并解决了 Linux 系统中出现的中文乱码问题。该解决方案主要包括四个部分:安装 VM TOOLS、解决安装...
乱码终极解决方案,如果你对乱码还存在疑惑,请下载,相信能帮助你,解决乱码问题,一步到位,希望能帮的上你
本篇文章将深入探讨MySQL乱码产生的原因以及提供一系列的解决方案,帮助你彻底解决这个问题。 首先,我们需要了解MySQL中的字符编码。MySQL从4.1版本开始引入了对多种字符集的支持,以适应全球化的语言需求。字符集...
### CMD乱码问题的终极解决方案 #### 背景与问题描述 在使用Windows系统自带的命令行工具CMD时,可能会遇到字符显示乱码的问题。这种情况通常发生在输入或输出中文等非英文字符时,严重影响了命令行工具的正常使用...
"smartUpLoad终极版"是一个专为解决这个问题而设计的上传组件,它能够确保在处理包含中文路径的文件时,文件名和路径保持正确无误。 首先,我们来深入理解一下为什么会出现中文路径乱码的问题。在计算机系统中,...
本文将深入探讨这一问题,并提供一种解决数据库查询乱码的终极办法。 #### 一、理解数据库乱码的原因 在深入解决方案之前,我们首先需要了解为什么会出现乱码的情况。一般来说,数据库查询乱码的主要原因有以下几...
"Vim、gvim在Windows下中文乱码的终极解决方案" Vim是一款功能强大且广泛使用的文本编辑器,但是在Windows平台下,却常常出现中文乱码的问题。这些问题包括文件显示乱码、菜单乱码、右键菜单乱码、console输出乱码...
JavaWeb 中文乱码问题是一个常见的问题,解决方法有多种,但都需要了解字符编码、响应头和 Servlet 输出机制等知识。本文将从Servlet 输出乱码、Servlet 文件下载乱码两方面详细讲解 JavaWeb 中文乱码的解决方法。 ...
本文主要给大家介绍了关于php中文乱码问题的终极解决方案,分享出来供大家参考学习,在开始之前,我们先来谈谈为什么会出现中文乱码? 很多新手朋友学习PHP的时候,发现程序中的中文在输出的时候会出现乱码的问题,...
本文将深入探讨Java中解决中文乱码的终极策略,帮助开发者彻底摆脱这个困扰。 首先,我们要理解Java中的字符编码体系。Java采用Unicode作为其内部编码,这使得它能够处理世界上几乎所有的字符集。然而,当与外部...
解决 Ubuntu 下中文乱码问题终极版 在 Ubuntu 系统中,中文乱码问题是一个常见的问题,影响着用户的使用体验。解决这个问题需要从多方面入手,包括 TXT 文件乱码、Rhythmbox 乱码和 WINE 乱码等。下面我们将逐一...