I copied the hash algorithm straight out of -base, so they should match. I remember a few months ago Richard was playing around with hash functions and this might be causing some issues, now.
I just looked it up, the changes were made on rev 36344.
There is another issue... -base allows UTF-8 strings, which will not be hashed to the same UTF-16 value. In my opinion, allowing UTF-8 string literals is not a good idea and base should revert back to Latin1 as the default C string encoding. I'm actually debating adding a UTF-16 string literals configure option for corebase. I believe using UTF-16 internally is the only sane solution to non-ASCII encodings.
I've tried experimenting with other hash functions that are not one-at-a-time, but unfortunately have not found anything that will work on both ASCII and Unicode strings consistently. It would be really nice to be able to work with 32- or 64-bit integers directly instead of 8- or 16-bit characters. If could use UTF-16 across the board, this wouldn't be a problem.