package db;

17 1 月, 2010

在QMaster分类里记录的相关源码是个人认为写得比较好、比较有用(可复用程度比较高)的一部分,并非QMaster的全部源码。欢迎评论。

dbconfig.xml

<?xml version=”1.0″ encoding=”GB2312″?>
<!–数据库配置文件–>
<dbconfig>
    <jdbcdriver>com.mysql.jdbc.Driver</jdbcdriver><!–JDBC Driver–>
    <jdbcurl>jdbc:mysql://localhost:3306/questionnaire</jdbcurl><!–JDBC URL–>
    <dbuser>root</dbuser><!–数据库用户名–>
    <dbpwd>yarpee19890607</dbpwd><!–数据库密码–>
</dbconfig>

DBConfig.java

/**
 * 功能:解析dbconfig.xml文件,提供数据库配置。
 */
package db;

import java.io.IOException;
import java.io.InputStream;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

Read the rest of this entry »

关于QMaster

17 1 月, 2010

QMaster是J2EE课程我们小组开发的一个基于平台的问卷调查系统(小组内称之为客户调查系统,与工作室的投票系统有类似功能,但更强大),也是我的第一个J2EE项目。虽然对J2EE的认识和掌握还很不够,但在这次纠结的开发过程中还是收获颇丰。因此,我特地为QMaster新建了一个分类,用来记录和发布QMaster相关的东东。

KHelper Beta

13 1 月, 2010

KHelper 金山毒霸助手 V1.0 Beta是一款旨在帮助金山毒霸(2009、2011)用户快速便捷申请金山通行证的绿色小小小软件。

该软件为金山毒霸2009用户免费申请120天、180天金山通行证;为2011用户免费申请90天金山通行证。

如您使用的版本不是2009、2011,也可尝试使用本软件。并在方便的情况下将结果告知作者。

该软件系个人编程习作,仅供编程探讨交流,请勿用作其它用途,否则后果自负。

该版本为测试版本,可能会出现不稳定情况。如因此造成的损失,使用者自负责任。

下载

最新更新:

KHelper 金山毒霸助手 V1.1 Beta

为2011用户免费申请366天金山通行证

最新V1.1 Beta下载

投票系统V1.1 Beta

3 1 月, 2010

修正了V1.0 Beta中PHP设置关闭了全局参数传递而主题ID未定义的问题。

本地下载

天空软件站下载

浅谈字符集

26 12 月, 2009

强烈推荐一篇文章:理解字符编码

在写程序的过程中,字符集的问题遇到过N多。查查改改,解决问题,一直没有总结。这段时间做J2EE的项目,遇到了更多的字符集问题,在解决的过程中收获不少。写篇文章浅谈下字符集问题。

个人将字符集粗分为两大类:ASCII和UNICODE。简单介绍下它们:

众所周知,计算机是美国人发明的。因此,为了方便使用计算机,那么计算机起码要能表达他们(美国人)的语言。这也就是ASCII(美国信息交换标准代码)的由来了。计算机的最小信息单位是位(bit),但更常用的基本信息单位是字节(Byte),它们之间的转换是1Byte = 8bits(为什么是8而不是2、4、16等,我就不得而知了)。ASCII又分基础的(7位,最高位用作奇偶校验)和扩展的(8位),最多能表示256个字符。这对于表示全世界的语言字符是不可能的,因此有了UNICODE。

UNICODE简单的来说就是,用两个字节(16位)来表示一个字符。但是基于不同的考虑(如存储空间)又有UTF-8、UTF-16、UTF-32等不同的格式,这里就不详细介绍了。

正是ASCII和UNICODE给我们带来了字符集问题。一个比较好的程序,应该要能支持UNICODE。对于我们(中国人),更是如此,因为我们使用的是汉字而不是英文。接下来,我要以一个不完全的Java Web Server例子来说说个人的理解。

OS(Windows、Unix、Linux等)、Java、MySQL在全世界流行,因此很容易预见到它们都是支持ASCII和UNICODE的。先说说OS,个人用的是Windows XP(中文版)(Windows对于本地化的支持有个“代码页”的概念,在此不详细介绍),很容易知道OS的字符集是UNICODE的GBK。对于运行在该OS上的Java平台,也是如此。而MySQL对字符集的支持主要表现在它的存储。

在例子中,MySQL采用latin1(称之为ASCII或者ISO-8859-1都行),而JSP采用GB2312。

问题一:JSP page指令中的pageEncoding属性指定的字符集是指该JSP页面被打开时,OS用哪种字符集格式读取。这就相当于你在记事本里写篇文字(即有英文又有中文),保存的格式。如果为ASCII,则中文会丢失原有的信息,为UNICODE则能正常显示。因此,其实只要你在该JSP里面的注释仅有英文,是可以设置该属性为ISO-8859-1的。

问题二:JSP page指令中的contentType=”text/html;charset=gb2312″和HTML中的<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″ />意思一样,都是指该页面由浏览器解析时采用的字符集。

问题三:Java中所有字符都是两个字节,无论是ASCII还是UNICODE,但是建议你不要简单地认为它就是UNICODE。而网络上传输的字符是ISO-8859-1(1Byte)的(因为网络传输是基于字节流的)。所以前一个JSP页面的中文参数采用POST方法传到后一个页面接收后,它是乱码。详细:一个汉字两个字节都有数据**(GB2312),网络传输成* *(ISO-8859-1),后一个页面接收后成#* #*(GB2312)两个汉字四个字节。(*表示数据,#表示未知,空格表示字符间隔)当然乱码了。重新组合下new String(data.getBytes(“ISO-8859-1”))就好了(默认采用页面charset编码组合即GB2312)。采用GET方法则要在前一个页面先将中文编码后再在URL中传递参数:String msg = java.net.URLEncoder.encode(“中文”, “UTF-8”);在后一个页面取得msg后,对应的使用new String(msg.getBytes(“ISO-8859-1”), “UTF-8”)或者java.net.UREDecoder.decode(msg, “UTF-8”);。

Read the rest of this entry »