import java.beans.*;
import java.io.*;
import java.lang.reflect.*;
import java.util.*;import org.apache.commons.beanutils.*;public class ObjectBeanUtils {
public ObjectBeanUtils() {
} /**
* 对List对象进行转码处理
* @param List List对象
* @return String
*/
public static void ObjectConvert(List list){
if (list==null && ! (list instanceof List)) {
return ;
}
for(int i=0;i<list.size();i++){
Object co=list.get(i);
ObjectConvert(co);
}
} /**
* 对Iterator对象进行转码处理
* @param Iterator iterator对象
* @return Iterator
*/ public static Iterator IteratorConvert(Iterator iterator){
List temp=new ArrayList();
if (iterator==null && ! (iterator instanceof Iterator)) {
return null;
}
while(iterator.hasNext()){
Object co=iterator.next();
ObjectConvert(co);
temp.add(co);
}
return temp.iterator();
} /**
* 对Object(Class)对象进行转码处理
* @param o Object对象
* @return String
*/
public static void ObjectConvert(Object o){
try {
Map map = BeanUtils.describe(o);
Set keySet = map.keySet();
for (Iterator iter = keySet.iterator(); iter.hasNext(); ) {
Object element = (Object) iter.next(); PropertyDescriptor desc = PropertyUtils.getPropertyDescriptor(o,
element.toString());
Class cl = desc.getPropertyType();
System.out.print(cl.getName());
if(cl.equals(String.class)){
BeanUtils.setProperty(o, element.toString(), ObjectCharacterConvertChinese(map.get(element)));
}
}
}
catch (IllegalAccessException e) {
e.printStackTrace();
}
catch (InvocationTargetException e) {
e.printStackTrace();
}
catch (NoSuchMethodException e) {
e.printStackTrace();
}
} public static String ObjectCharacterConvertChinese(Object value){
if (value == null && ! (value instanceof String) ) {
return "";
}
try {
String temp_p = (String)value;
byte[] temp_t = temp_p.getBytes("ISO-8859-1");
String unicode = new String(temp_t, "gbk");
return unicode;
}
catch (UnsupportedEncodingException e) {
return "";
}
} public static String ObjectCharacterConvertISO(Object value){
if (value == null && ! (value instanceof String) ) {
return "";
}
try {
String temp_p = (String)value;
byte[] temp_t = temp_p.getBytes("gbk");
String unicode = new String(temp_t, "ISO-8859-1");
return unicode;
}
catch (UnsupportedEncodingException e) {
return "";
}
}}
用这个类做转换试试,我在mysql数据库中需要用到这个类,但是oracle9也能解决,但是oracle8没试过
import java.io.*;
import java.lang.reflect.*;
import java.util.*;import org.apache.commons.beanutils.*;public class ObjectBeanUtils {
public ObjectBeanUtils() {
} /**
* 对List对象进行转码处理
* @param List List对象
* @return String
*/
public static void ObjectConvert(List list){
if (list==null && ! (list instanceof List)) {
return ;
}
for(int i=0;i<list.size();i++){
Object co=list.get(i);
ObjectConvert(co);
}
} /**
* 对Iterator对象进行转码处理
* @param Iterator iterator对象
* @return Iterator
*/ public static Iterator IteratorConvert(Iterator iterator){
List temp=new ArrayList();
if (iterator==null && ! (iterator instanceof Iterator)) {
return null;
}
while(iterator.hasNext()){
Object co=iterator.next();
ObjectConvert(co);
temp.add(co);
}
return temp.iterator();
} /**
* 对Object(Class)对象进行转码处理
* @param o Object对象
* @return String
*/
public static void ObjectConvert(Object o){
try {
Map map = BeanUtils.describe(o);
Set keySet = map.keySet();
for (Iterator iter = keySet.iterator(); iter.hasNext(); ) {
Object element = (Object) iter.next(); PropertyDescriptor desc = PropertyUtils.getPropertyDescriptor(o,
element.toString());
Class cl = desc.getPropertyType();
System.out.print(cl.getName());
if(cl.equals(String.class)){
BeanUtils.setProperty(o, element.toString(), ObjectCharacterConvertChinese(map.get(element)));
}
}
}
catch (IllegalAccessException e) {
e.printStackTrace();
}
catch (InvocationTargetException e) {
e.printStackTrace();
}
catch (NoSuchMethodException e) {
e.printStackTrace();
}
} public static String ObjectCharacterConvertChinese(Object value){
if (value == null && ! (value instanceof String) ) {
return "";
}
try {
String temp_p = (String)value;
byte[] temp_t = temp_p.getBytes("ISO-8859-1");
String unicode = new String(temp_t, "gbk");
return unicode;
}
catch (UnsupportedEncodingException e) {
return "";
}
} public static String ObjectCharacterConvertISO(Object value){
if (value == null && ! (value instanceof String) ) {
return "";
}
try {
String temp_p = (String)value;
byte[] temp_t = temp_p.getBytes("gbk");
String unicode = new String(temp_t, "ISO-8859-1");
return unicode;
}
catch (UnsupportedEncodingException e) {
return "";
}
}}
用这个类做转换试试,我在mysql数据库中需要用到这个类,但是oracle9也能解决,但是oracle8没试过
没有象 mysql 那样,在 url 上加个参数就解决问题的方法吗?
比如使用拦截器。我能够轻易地做到转码后存入数据库。 onsave方法
可是,我不知如何才能做到取出时转码。而且,由于我在存入前对对象进行了转码,不知如何在存入后还原
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0]"NLS_LANG"="american_america.we8iso8859p1"
比如说以上的是连接数据库字符集为8859的配置