Thanks for the suggestion. I gave it a try, and got the following error message:
Tk::Error: Cannot decode string with wide characters at /usr/lib/perl/5.8/Encode.pm line 166.
A UTF-8 character pasted into one of the Text widgets does end up in the database correctly, so my feeling is that communications between the app and the database are not the problem.