如何插入特殊字符斜杠\&引用;在hbase值中?

如何插入特殊字符斜杠\&引用;在hbase值中?,hbase,Hbase,无法将\存储在hbase中 put 'table1','rowKey1','column1','This is \ value.' 存储为 This is \x5C value. 从终端和Java API插入时也是如此 为什么会发生这种情况以及如何解决这种情况?为什么会发生这种情况? Hbase shell使用org.apache.hadoop.Hbase.util.Bytes::toStringBinary作为默认转换器,我引用了Hbase shell/src/main/ruby/Hbas

无法将\存储在hbase中

put 'table1','rowKey1','column1','This is \ value.'
存储为

This is \x5C value.
从终端和Java API插入时也是如此


为什么会发生这种情况以及如何解决这种情况?

为什么会发生这种情况?

Hbase shell
使用org.apache.hadoop.Hbase.util.Bytes::toStringBinary作为默认转换器
,我引用了
Hbase shell/src/main/ruby/Hbase/table.rb中的func
convert(column,kv)

toStringBinary
中的代码可以解释为什么会发生这种情况

for (int i = off; i < off + len ; ++i ) {
  int ch = b[i] & 0xFF;
  if ((ch >= '0' && ch <= '9')
      || (ch >= 'A' && ch <= 'Z')
      || (ch >= 'a' && ch <= 'z')
      || " `~!@#$%^&*()-_=+[]{}|;:'\",.<>/?".indexOf(ch) >= 0 ) {
    result.append((char)ch);
  } else {
    result.append(String.format("\\x%02X", ch));
  }
}
for(int i=off;i如果((ch>='0'&&ch='A'&&ch='A'&&ch为什么会发生这种情况?

Hbase shell
使用org.apache.hadoop.Hbase.util.Bytes::toStringBinary作为默认转换器
,我引用了
Hbase shell/src/main/ruby/Hbase/table.rb中的func
convert(column,kv)

toStringBinary
中的代码可以解释为什么会发生这种情况

for (int i = off; i < off + len ; ++i ) {
  int ch = b[i] & 0xFF;
  if ((ch >= '0' && ch <= '9')
      || (ch >= 'A' && ch <= 'Z')
      || (ch >= 'a' && ch <= 'z')
      || " `~!@#$%^&*()-_=+[]{}|;:'\",.<>/?".indexOf(ch) >= 0 ) {
    result.append((char)ch);
  } else {
    result.append(String.format("\\x%02X", ch));
  }
}
for(int i=off;i如果((ch>='0'&&ch='A'&&ch='A'&&ch有什么方法可以强制hbase不将“\”转换为ASCII码吗?@AbhashKumar这只是
hbase shell
选择的方式,在后端存储中,您可以使用java驱动程序从hbase读取内容,然后您可以自己处理它。有什么方法可以强制hbase不转换将“\”转换为ASCII码?@AbhashKumar这只是
Hbase shell
选择显示的方式,在后端存储中,您可以使用java驱动程序从Hbase读取内容,然后您可以自己处理它。