易截截图软件、单文件、免安装、纯绿色、仅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
   {


相关文档:

对于JAVA包在windows xp下CMD.exe运行

 这个问题今天终于看一个哥们儿的文章搞定了,在此谢谢!所以转载一下
=============================================================

java-package包的使用方法
  
当一个大型程序交由数个不同的程序人员开发时,用到相同的类名是很有可能的,那么如果发生了这样的事件我们该怎么办那?,在我们java程序开 ......

mysql 行转列问题

这几天所作的工作涉及到数据库行转列的问题
记录一下出现的错误,以免以后再犯
举网上最通俗的例子吧
Name Subject Result
张三    语文         80
张三    数学         90
张三    物理  &n ......

MySQL数据库中的Show命令具体用法

 MySQL中有很多的基本命令,show命令也是其中之一,在很多使用者中对show命令的使用还容易产生混淆,本文汇集了show命令的众多用法。
a. show tables或show tables from database_name; -- 显示当前数据库中所有表的名称。
b. show databases; -- 显示mysql中所有数据库的名称。
c. show columns from table_nam ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号