The send/receive bytes are identical ( “\u0010\u00A5”). The yen sign is only being shown when printing the string. The first character is not printable and the second character is the yen sign. See the following code:
String sendValue = "\u0010\u00A5";
int max = sendValue.length();
for (int i = 0; i < max; i++) {
char c = sendValue.charAt(i);
System.out.println("send[" + i + "]=" + (int)c);
}
System.out.println("send string=" + sendValue);
Key key = new Key("test", "myset", "mykey");
Bin bin = new Bin("mybin", sendValue);
client.put(null, key, bin);
Record record = client.get(null, key);
String receiveValue = (String)record.bins.get("mybin");
max = receiveValue.length();
for (int i = 0; i < max; i++) {
char c = receiveValue.charAt(i);
System.out.println("receive[" + i + "]=" + (int)c);
}
System.out.println("receive string=" + sendValue);
if (sendValue.equals(receiveValue)) {
System.out.println("send == receive");
}
else {
System.out.println("send != receive");
}
Results:
send[0]=16
send[1]=165
send string=¥
receive[0]=16
receive[1]=165
receive string=¥
send == receive
You can always store values as a blob if these string representations are causing confusion.