Java中文问题的一般解决办法
事实上,Java的中文问题都是由于Java应用所采用的缺省编码格式与目标或者应用所要读入字符的编码格式不同而造成的(具体参见文献1)。对于如何解决Java的中文问题,通常有四种方法: 1)选择JDK的中文本地化版本。尽管Java2 JDK的中文本地化版本(http://java.sun.com/products/jdk/1.2/chinesejdk.html)并不是一个官方的版本,Sun公司也没有承诺会对该本地化版本进行升级,但其仍不失为一个Java中文问题的解决方案。 2)选择合适的编译参数。对于Java的国际版本来讲,我们也可以在编译Java应用的时候通过指定确定的编码机制来实现其编译结果对中文的支持。例如,对于需要支持繁体中文和简体中文应用可以通过javac -encoding big5 sourcefile.java 和javac -encoding gb2312 sourcefile.java来编译源程序。 3)通过编程的方式实现字符编码的转换代码。通过编程的方式来解决Java的中文问题,已经成为了一种较为普遍的做法。下面就是一种最常见的字符编码转换函数,其将字符的编码格式转换为中文Windows系统的GBK编码形式。public static String toChinese(String strvalue)
{
try{
if(strvalue==null)
return null;
else
{
strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK");
return strvalue;
}
}catch(Exception e){
return null;
}
} 4)定义字符输出集。对于JSP应用,我们可以通过<%@ page contentType="text/html; charset=GBK" %>或<%@ page contentType="text/html; charset=GB2312" %>来定义JSP页面的字符输出集。当然,我们也可以通过HTML的标记<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">来定义字符的输出集。
事实上,Java的中文问题都是由于Java应用所采用的缺省编码格式与目标或者应用所要读入字符的编码格式不同而造成的(具体参见文献1)。对于如何解决Java的中文问题,通常有四种方法: 1)选择JDK的中文本地化版本。尽管Java2 JDK的中文本地化版本(http://java.sun.com/products/jdk/1.2/chinesejdk.html)并不是一个官方的版本,Sun公司也没有承诺会对该本地化版本进行升级,但其仍不失为一个Java中文问题的解决方案。 2)选择合适的编译参数。对于Java的国际版本来讲,我们也可以在编译Java应用的时候通过指定确定的编码机制来实现其编译结果对中文的支持。例如,对于需要支持繁体中文和简体中文应用可以通过javac -encoding big5 sourcefile.java 和javac -encoding gb2312 sourcefile.java来编译源程序。 3)通过编程的方式实现字符编码的转换代码。通过编程的方式来解决Java的中文问题,已经成为了一种较为普遍的做法。下面就是一种最常见的字符编码转换函数,其将字符的编码格式转换为中文Windows系统的GBK编码形式。public static String toChinese(String strvalue)
{
try{
if(strvalue==null)
return null;
else
{
strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK");
return strvalue;
}
}catch(Exception e){
return null;
}
} 4)定义字符输出集。对于JSP应用,我们可以通过<%@ page contentType="text/html; charset=GBK" %>或<%@ page contentType="text/html; charset=GB2312" %>来定义JSP页面的字符输出集。当然,我们也可以通过HTML的标记<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">来定义字符的输出集。
解决方案 »
- 大一点的软件公司注重的是员工的算法能力还是设计模式能力?
- POI与jxl.jar性能大揭秘
- Dispatcher initialization failed 请高手帮忙
- sqlserver 2005 怎样根据日期每天自动生成一张 表名就是当前的日期
- j2ee 中实现网站在线统计人数的几个问题?
- 询问下后台主动联系前台方法,比如后台主动通知前台有东西到达。
- Resin 一启动网站就报:java.lang.OutOfMemoryError 是什么原因
- hibernate注解外键
- 哪里有用像JIVE这样不过是用struts的开源项目。
- 请问对于客户端逻辑比较复杂的B/S系统,用javascript还是Applet实现较好?
- 只有高手能解决了!!!大家来看看啊!!!!
- MySql图形用户界面的问题
Document doc = null;
try {
doc = builder.build(inputstream); } catch (JDOMException ex) {
ex.printStackTrace();
} Element root = doc.getRootElement();//////我是在这一步出错的,有中文就出错! inputstream就是一个xml文件,楼上的四种方法,我该用那一种呢?怎么用?