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

java(jsp)使用MySql数据库,中文乱码的完整解决方案

 java(jsp)使用MySql数据库,中文乱码的完整解决方案
mysql是一个小型的开源的数据库,用来自学一些技术是十分方便的。但使用mysql存储数据,也会遇到一些非常恶心的问题,如:中文乱码问题、java驱动程序无法使用的问题(已经解决,详见:http://hi.baidu.com/lauo1988/blog/item/ff0da655bd3e2eceb745ae0b.html)。
对于中文乱码问题。网上搜索得到的解决方案比较多,主要还是设置mySql的配置文件。这些都比较麻烦,但是设置成功的话,的确能够一劳永逸。但我尝试了很多次网上的方法,都不能很好的解决这个问题。乱码依然存在。想想,要做网站的话,用mySql数据库存放数据,中文都不能很好支持的话,做这东西是没有用的!
最终,我按照:将中文字字符串,按照无损编码的方式,对其进行编码,然后直接存于数据库中。当要取出数据时,再将中文字符串解码。这样可以达到存储中文字符串,又不会产生乱码的目标。
我在网上找到了一些无损编码的方式,详见:http://www.cnblogs.com/qiren5761/articles/523790.html
我采用了里面的:“String-GBK〉ByteArray-ISO-8859-1〉String-ISO-8859-1〉ByteArray-GBK〉String
”的编码/解码方式。
主要的java处理函数如下:
/*
*完成从gbk编码到ISO-8859-1的转换
*/
public static
String encode(String str)
{
   if(str==null||str.equals("")) return
str;
   try
   {
    return new
String(str.getBytes("gbk"),"ISO-8859-1");
   }
   catch(Exception e){
e.printStackTrace(); return str;}
}
/*
*从ISO-8859-1恢复gbk编码
*/
public static String
decode(String str)
{
   if(str==null||str.equals("")) return str;
  
try
   {
    return new String(str.getBytes("ISO-8859-1"),"gbk");
  
}
   catch(Exception e){ e.printStackTrace(); return
str;}
}
当然,对于sql操作,不管是插入还是查询,sql语句必需先经过encode函数编码,然后得到的查询结果使用decode,可以恢复到需要的中文字串。举例如下:
/*
*获得用户的描述信息
*/
public String[]
getUserInfo(String uid)
{
   if(uid==null||uid.equals("")) return
null;
   try
   {


相关文档:

Oracle分页存储过程及java的具体调用方法

--包
create or replace package pkg_query as
  type cur_query is ref cursor;
end pkg_query;
--过程
CREATE OR REPLACE  PROCEDURE "PRC_QUERY" (p_tableName  
        in  varchar2,   --表名
      & ......

MYSQL数据库实用学习资料之常用命令集合

 Mysql数据库是一个多用户,多线程的关系型数据库,是一个客户机/服务器结构的应用程序。它是对个人用户和商业用户是免费的.
Mysql数据库具有以下优点:
1.同时访问数据库的用户的数量不受限制
2.可以保存超过5千万条的记录
3.是目前市场上现有数据库产品中运行速度最快的数据库系统
4.用户权限设置简单、有 ......

用java连接MySql数据库

 一个简单示例--
1,准备:MySQL数据库驱动包【mysql-connector-java-5.1.10-bin.jar】导入
2,创建测试连接主程序
package mysqlConnection;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class JdbcDemo {
public static void main(String[] args) {
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号