Oracle数据库Clob转化String乱码问题

1.常规转化

/**
 * 将Clob类型转换为String类型
 *
 * @param clob 存放内容的变量
 * @return 返回Clob类型的String类型内容.
 * @author xc
 */
public static String changeClobToString(Clob clob) throws Exception,
        SQLException {
    BufferedInputStream bi = new BufferedInputStream(clob.getAsciiStream());
    int len = (int) clob.length();
    byte[] by = new byte[len];
    int i;
    while (-1 != (i = bi.read(by, 0, by.length))) {
        bi.read(by, 0, i);
    }
    String clobValue = new String(by);
    bi.close();
    return clobValue;
}

问题:这里我发现用到这个之后,相反拿到的数据变成乱码.

解决:直接将数据库获得Clob类型的数据进行 String content=clob.getSubString((long)1,(int)clob.length());
也就是不用写什么Util,一步搞定. 当然,在我的项目中是这样.

猜你喜欢

转载自blog.csdn.net/qq_36579211/article/details/80900416
今日推荐