I should add that the text is coming from a multipart form and I'm using the commons-fileupload library to parse the form.
You might need to set the platform character set for Java to UTF-8 when you start.
Thanks - this was almost the solution. In fact, UTF-8 is the default encoding on Linux and something called "Cp1252" - which isn't even documented as a Java recognized encoding - is the default on Windows.
Since the commons fileupload class has a method for decoding with a specified character encoding, I solved the problem by explicitly passing Cp1252 as the encoding method and now I'm getting the behavior I want on either system.
I still haven't figured out how to do the same thing for regular (non-multipart) forms. There's a function on the Request object called setCharacterEncoding, but it had no effect when I tried it.