Java 解决数据库中信息乱码的问题,万能思路!
2012-03-02 21:12
316 查看
/**
* 测试某个字符串的编码,以解决乱码问题
* 切忌:一定先取得待测字符串的数组形式然后再测试,别转换为字符串!
* @param bt 要检测的字符的字节数组
* @param sample 是传入一些包含在待确定编码类型的字符串中的一段字符(需要在调用函数中人工输入!)
* 如果该参数为空字符串或null,则函数列出待确定编码类型字符串的字节数组的所有编码输出供选择
* 根据输出结果,就可以判断适合采用哪种编码形式
*/
public static void checkStringCharset(String sample, byte[] syd168) {
SortedMap<String, Charset> map = Charset.availableCharsets(); //创建哈希表
ArrayList<String> charSets = new ArrayList<String>(); //创建列表
//遍历哈希表元素
for (Iterator<String> it = map.keySet().iterator(); it.hasNext();) {
Object key = it.next(); //获取编码名称
charSets.add(key.toString()); //添加到列表
}
//遍历列表元素
for (Object ob : charSets) {
//如果没输入样本数据,则逐个进行编码显示,以供人工判断编码类型
if (sample.equals("") || sample.equals(null)) {
try {
System.out.println("原字符串的[" + ob.toString() + "]编码输出为:" + new String(syd168, ob.toString()));
}
catch (IOException e1) {}
System.out.println("请根据输出结果,选择适合的编码方式进行处理");
System.out.println("可以用 new String(byte[],charset)可以解决乱码问题");
} else {//传入了样本数据
try {
String tmp = new String(syd168, ob.toString());//取得编码结果
if (tmp.indexOf(sample) >= 0) {//在编码字符串中找到了样本字符串,说明编码正确
System.out.println("待确定编码类型的字符串可能的编码为:" + ob.toString());
}
}
catch (UnsupportedEncodingException e) {}
}
}
}
* 测试某个字符串的编码,以解决乱码问题
* 切忌:一定先取得待测字符串的数组形式然后再测试,别转换为字符串!
* @param bt 要检测的字符的字节数组
* @param sample 是传入一些包含在待确定编码类型的字符串中的一段字符(需要在调用函数中人工输入!)
* 如果该参数为空字符串或null,则函数列出待确定编码类型字符串的字节数组的所有编码输出供选择
* 根据输出结果,就可以判断适合采用哪种编码形式
*/
public static void checkStringCharset(String sample, byte[] syd168) {
SortedMap<String, Charset> map = Charset.availableCharsets(); //创建哈希表
ArrayList<String> charSets = new ArrayList<String>(); //创建列表
//遍历哈希表元素
for (Iterator<String> it = map.keySet().iterator(); it.hasNext();) {
Object key = it.next(); //获取编码名称
charSets.add(key.toString()); //添加到列表
}
//遍历列表元素
for (Object ob : charSets) {
//如果没输入样本数据,则逐个进行编码显示,以供人工判断编码类型
if (sample.equals("") || sample.equals(null)) {
try {
System.out.println("原字符串的[" + ob.toString() + "]编码输出为:" + new String(syd168, ob.toString()));
}
catch (IOException e1) {}
System.out.println("请根据输出结果,选择适合的编码方式进行处理");
System.out.println("可以用 new String(byte[],charset)可以解决乱码问题");
} else {//传入了样本数据
try {
String tmp = new String(syd168, ob.toString());//取得编码结果
if (tmp.indexOf(sample) >= 0) {//在编码字符串中找到了样本字符串,说明编码正确
System.out.println("待确定编码类型的字符串可能的编码为:" + ob.toString());
}
}
catch (UnsupportedEncodingException e) {}
}
}
}
相关文章推荐
- java链接mysql数据库并且写入数据并且解决写入数据库乱码问题
- java IO流、DB数据库、Web乱码问题及解决办法总结
- java数据库等——乱码问题解决办法
- java项目 java web项目数据库乱码问题的解决办法
- 将java的集合转换为数据库集合类型 解决weblogic调用存储过程的时候,返回值乱码问题
- 谈谈怎么解决Java程序和数据库交互出现乱码的问题
- Java程序问题 和MySQL 数据库的性能问题解决思路
- java向数据库中插入数据,数据库乱码问题解决
- java 微信授权后获取微信用户信息昵称乱码问题 解决
- 安卓(JAVA)读取Mp3文件中的歌曲信息(及readLine()出现乱码问题的解决方法)
- 关于java web开发中乱码问题的解决思路
- Java 微信登录授权后获取微信用户信息昵称乱码问题解决
- java 乱码问题解决思路
- Java乱码 数据库乱码 url乱码 url中文参数乱码 标签乱码问题解决方法
- 解决javac和java命令在Mac OSX终端里的乱码问题(引)
- 关于java web中get方法的解决中文乱码问题
- PHP使用PDO操作数据库的乱码问题解决方法
- Orace查询数据出现乱码的问题解决思路
- Java中的Swing控件显示乱码问题解决
- java-导出excel并解决乱码问题