易截截图软件、单文件、免安装、纯绿色、仅160KB

JAVA/JSP 中文乱码

自从接触Java和JSP以来,就不断与Java的中文乱码问题打交道,现在终于得到了彻底的解决,现将我们的解决心得与大家共享。
  一、Java中文问题的由来
  Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。
  首先Java(包括JSP)源文件中很可能包含有中文,而Java和JSP源文件的保存方式是基于字节流的,如果Java和JSP编译成
class文件过程中,使用的编码方式与源文件的编码不一致,就会出现乱码。基于这种乱码,建议在Java文件中尽量不要写中文(注释部分不参与编译,写
中文没关系),如果必须写的话,尽量手动带参数-ecoding GBK或-ecoding
gb2312编译;对于JSP,在文件头加上或基本上就能解决这类乱码问题。
  本文要重点讨论的是第二类乱码,即Java程序与其他存储媒介交互时产生的乱码。很多存储媒介,如数据库,文件,流等的存储方式都是基于字节流的,Java程序与这些媒介交互时就会发生字符(char)与字节(byte)之间的转换,具体情况如下:
  从页面form提交数据到java程序 byte->char
  从java程序到页面显示 char?>byte
  从数据库到java程序 byte?>char
  从java程序到数据库 char?>byte
  从文件到java程序 byte->char
  从java程序到文件 char->byte
  从流到java程序 byte->char
  从java程序到流 char->byte
  如果在以上转换过程中使用的编码方式与字节原有的编码不一致,很可能就会出现乱码。
  二、解决方法
  前面已经提到了Java程序与其他媒介交互时字符和字节的转换过程,如果这些转换过程中容易产生乱码。解决这些乱码问题的关键在于确保转换时使用的编码方式与字节原有的编码方式保持一致,下面分别论述(Java或JSP自身产生的乱码请参看第一部分)。
  1、JSP与页面参数之间的乱码
  JSP获取页面参数时一般采用系统默认的编码方式,如果页面参数的编码类型和系统默认的编码类型不一致,很可能就会出现乱码。解决这类乱码问
题的基本方法是在页面获取参数之前,强制指定request获取参数的编码方
式:request.setCharacterEncoding("GBK")或
request.setCharacterEncoding("gb2312")。
  如果在JSP将变量输出到页面时出现了乱码,可以通过设置
respons


相关文档:

java parse excel

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRo ......

AES算法java实现浅析

      java jce对aes算法有很好的支持,但是默认安装的JDK或者JRE是不能支持aes192bit密钥和aes256bit密钥两种算法的,需要到sun官方下载Java(TM) Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files,以下是jce unilimited strength jurisdiction policy files 6的官方 ......

Java Reflection (JAVA反射)

Reflection 是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性。例如,使用它能获得 Java 类中各成员的名称并显示出来。
Java 的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性。例如,Pascal、C ......

Java中的泛型

    1、Java.util的集合类中的元素必须是对象化的,他们不能是基本类型。如不能声明Set<char>或List<int>。但对List<Integer>,可以往里面加int型数据,它会用Java的autoboxing机制自动转换成Integer对象。
    2、参数化类中的类型参数可以是数组类型,如Map< ......

Java调用存储过程(MySql数据库)

一、建表
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `ID` int(11) NOT NULL auto_increment,
  `NAME` varchar(16) NOT NULL default '',
  `REMARK` varchar(16) NOT NULL default '',
  PRIMARY KEY  (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8;
&nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号