#!/usr/bin/perl -w use strict; use warnings; use Encode; use utf8; use BerkeleyDB; use Encode; use Data::Dumper; use Devel::Peek; # Encode::_utf8_off($string); unlink "xx.db"; tie my %h, "BerkeleyDB::Btree", -Filename=>"xx.db", -Flags=>DB_CREATE; my $db=tied %h; $Data::Dumper::Useqq=1; $db->filter_fetch_key( sub { warn ">>fetch: ".Dumper($_); Dump($_); $_=decode("utf8", $_); warn "<filter_store_key( sub { warn ">>store: ".Dumper($_); Dump($_); $_=encode("utf8", $_); warn "<db_cursor(); my $value; $key = "لل"; print "key before c_get call\n"; Dump($key); print "calling c_get\n"; my $status = $cursor->c_get($key, $value, DB_SET_RANGE); print "\n\ntry again, turning UTF8 flag off key\n"; $key = "لل"; Encode::_utf8_off($key); print "key before c_get call\n"; Dump($key); print "calling c_get\n"; $status = $cursor->c_get($key, $value, DB_SET_RANGE);