HSQL:Java自带的数据库
  当重启HSQL数据库时,里面的汉字全部变成问号(?),不知道为什么?郁闷
  (正常操作时 都可以显示正确的中文,包括增删改查都行,就是重起之后,原来数据库中存放的中文都变成问号.但新插入中文可以正确的插入到数据库中)
=================
  是不是要修改数据库的编码什么的?
  对HSQL不是很熟悉

解决方案 »

  1.   

    Java自带的数据库 ?
    是哪个,derby?
      

  2.   

     数据是写入 CSV 文件的
      

  3.   

    引用网上的一个相关贴子:
    =================
    2007-02-05
    HSQLDB 中文编码问题
    关键字: HSQLDB 
    HSQLDB连接到已经存在的数据库,然后根据该数据库构建新数据库。中文内容是可以正确读取的,没有问题。 
    但是,如果是将数据库的Script文件拿过来,重新生成数据库内容,数据库内容虽然表面看上去都一样,但是编码有问题。 是这样子的: 
    HSQLDB数据库默认的编码是ASCII编码,因此,对于我们输入的中文内容,它是以ASCII的编码方式存储到Script文件中的。 当我们通过Script文件生成数据库的时候,我们首先解析文件的内容,JAVA读写文件是以本地操作系统的默认编码方式来进行解析的。我的机器上,是GBK编码。 
    因此,我们得到的SQL语句和最初存储到Script文件中的SQL语句不一样。存储到Script文件中的中文被编码为GBK了。(GBK的ASCII部分估计是在和ACSCII兼容) 之后,对这个数据库,我们进行计算,生成了度量实体数据库。那么存储进去的内容,那肯定也是GBK编码的(ASCII)。 这样子,我们直接读出这个ASCII编码的字符串,显然还是不能得到我们的中文内容。 因此,问题就在此:从ASCII编码的字符串中还原我们的中文内容。 解决这个问题很简单: String unicodeStr = StringConverter.asciiToUnicode(ascStr); 
    System.out.println(unicodeStr); 这样就可以输出中文:) 下面是实例:) 
    \u5f00\u53d1\u5e73\u53f0_\u8fc7\u7a0b\u670d\u52a1\u7ec4_\u8d28\u91cf\u5e73\u53f03.0\u5347\u7ea7 
    开发平台_过程服务组_质量平台3.0升级