{
if (isNull(block, rowOffset))
return null;
try {
BlobInputStream is;
is = new BlobInputStream(getTable(), block, rowOffset + _columnOffset);
int ch;
StringBuilder cb = new StringBuilder();
while ((ch = is.read()) >= 0) {
if (ch < 0x80)
cb.append((char) ch);
else if ((ch & 0xe0) == 0xc0) {
int ch1 = is.read();
cb.append((char) (((ch & 0x3f) << 6) +
(ch1 & 0x3f)));
}
else {
int ch1 = is.read();
int ch2 = is.read();
cb.append((char) (((ch & 0xf) << 12) +
((ch1 & 0x3f) << 6) +
((ch2 & 0x3f))));
}
}
is.close();
return cb.toString();
} catch (IOException e) {
log.log(Level.WARNING, e.toString(), e);
}