This gist explains the issue:
In a nutshell if a US-ASCII source file is passed a UTF-8 string and tries to merge it with a local string using '%' jruby performs differently than 1.9 and also differently from '+' in jruby. I would expect consistent behavior with MRI.
This is causing real world encoding bugs for me. Any library using '%' in a US-ASCII source file will garble any UTF-8 strings passed in.