It seems that jRuby-based HBase shell does not handle ASCII-8bit correctly.
Is there any work-around for this?

My locale settings are all en_US.

LANG=en_US
LC_CTYPE="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE="en_US"
LC_MONETARY="en_US"
LC_MESSAGES="en_US"
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=


On Thu, Jul 4, 2013 at 4:00 PM, Ding Haifeng <hank.d...@gmail.com> wrote:

> @stack: Thanks for explanation. I understand the difference between single
> quotes and double quotes. Using single quote to interpret the string
> literally is not the behavior I expect. I want the bytes exactly
> represented by the escaped hexadecimal strings.
>
> @Ted: I filed a JIRA issue at
> https://issues.apache.org/jira/browse/HBASE-8865 . I also added some more
> observations there.
>
>
>
> On Thu, Jul 4, 2013 at 1:54 AM, Stack <st...@duboce.net> wrote:
>
>> Try single quotes.  The shell (ruby) may be trying to 'help you' by
>> interpreting your hex.
>>
>> hbase(main):018:0> print "\x20\n"
>>
>> hbase(main):019:0> print '\x20\n'
>> \x20\nhbase(main):020:0>
>>
>> See how w/ double quotes it prints space and new line where when I
>> single-quote it, it prints out the literal?
>>
>> At the end of the shell help it says:
>>
>> "If you are using binary keys or values and need to enter them in the
>> shell, use
>> double-quote'd hexadecimal representation. For example:
>>
>>   hbase> get 't1', "key\x03\x3f\xcd"
>>   hbase> get 't1', "key\003\023\011"
>>   hbase> put 't1', "test\xef\xff", 'f1:', "\x01\x33\x40"
>> ..."
>>
>> Looks like we need to add a line which says if you are using hex, to avoid
>> ruby's interpreting your intent, single-quote.
>>
>> St.Ack
>>
>>
>> On Wed, Jul 3, 2013 at 4:30 AM, Ding Haifeng <hank.d...@gmail.com> wrote:
>>
>> > Hi, all.
>> >
>> > When I tried to do a manual region split from HBase shell, I found that
>> > split command acts incorrectly with hex split keys.
>> >
>> > For example, I executed
>> >
>> > hbase(main):003:0> split 'tsdb', "\x00\x00\xC3"
>> >
>> > but table 'tsdb' actually split at "\x00\x00\xEF\xBF\xBD"
>> >
>> > I'm running Hbase 0.94.8, r1485407, both server-side and client-side.
>> >
>> > Any help would be appreciated. Thanks.
>> >
>> >
>> >
>> > --
>> > Ding Haifeng
>> >
>>
>
>
>
> --
> Ding Haifeng
>



-- 
Ding Haifeng

Reply via email to