Apparently there's a conspiracy among PayPal's website developers to keep the average human from changing character set encoding preferences. If you have product names with special characters, chances are you'll want to use UTF-8 encoding. And though you can set your page's charset, and pass a special setting into your transaction to specify encoding...
While the PayPal help files, numerous blog posts and other Google results show a series of selections something like this
Login to your PayPal account
Go to the "My Account Overview -> Profile -> More options" section.
In column "Selling Preferences" click the "Language Encoding" link.
Ensure that setting for "Your website's language" is correct.
Click the "More Options" button, select the "UTF-8" option for "Encoding" and leave the "Yes" option selected for "Do you want to use the same encoding for data sent from PayPal to you (e.g., IPN, downloadable logs, emails)?".
Click "Save" to save your changes.
but... no. The entire PayPal UI has changed, and the option you're trying to change is nowhere in the complex menu.
Instead, you'll want to go to Profile (that part is the same) and then go to the very bottom of the page. Forget all the options on the left, it would be far too easy to put a link there for Character Encoding. No... you have to find the link at the foot of the page that says "PayPal button language encoding". But, you don't have PayPal buttons... you are using IPN with your own eCommerce integration. Don't worry about it making sense, click the "PayPal button language encoding" link.
And there you are presented with a wealth of options.
Western European Languages (including English)
First of all, what does that have to do with ... nevermind. It isn't supposed to make sense.
And then, those aren't web standard encoding options... nevermind. Just... nevermind. you're almost there.
Find the "more options" button (in between "save" and "cancel" as of this writing).
And there... you will find the secret buried setting.
Use the following drop-down menu to select the encoding used on your website.
(here you can select encoding)
Do you want to use the same encoding for data sent from PayPal to you (e.g., IPN, downloadable logs, emails)?
(and here you can select different encoding if needed, for IPN)
By the time you read this they may bury it behind a few more levels of spaghetti-nav, but for today, that's where you can find the setting for IPN language encoding. If you set your page to UTF-8, and change this setting to UTF-8, you should be able to pass weird characters into your transactions.