我正在尝试将cql查询结果转换为String然后转换为int,但它在第一步失败。我有以下方法:
private int getNextId() {
int nextId = -1;
CqlResult cr = null;
try {
cr = client.execute_cql3_query(ByteBuffer.wrap("select * from counter".getBytes()), Compression.NONE,
ConsistencyLevel.ONE);
Column column = cr.getRows().get(0).getColumns().get(1);
nextId = Integer.parseInt(new String(column.getValue(), StandardCharsets.UTF_8));
} catch (Exception ex) {
// default try-catch for example purpose
ex.printStackTrace();
}
return nextId;
}
在调试时,列的字节值为1B
。在转换为String期间,它会以 square 而不是27
结尾。同样在调试CqlResult变量包含以下信息:default_value_type:UTF8Type
。据我所知,Cassandra还使用UTF-8存储数据。为什么它不起作用?我做错了什么?