The attached patch makes rpm convert query output to the current locale.
Created attachment 107057 [details] Locale patch
The looks like an approach to the problem, once over seems correct as well. The real problem, that rpm string types are 8 bit clean but not utf8 encoded, needs to be addressed in *.spec parsing during build, and perhaps a utility that runs periodically against the rpmdb, converting changelog entries once, not every query, in package headers. The real fixx needs to go after string types, not just changelog, as well, as the day of i18n package names and file names in rpm packaging is rapidly approaching.
Patch added to rpm-4.4.3-0.25.