I just released an update to CaRP that makes the truncation code that is used to limit the length of titles and description multi-byte aware. In the past, CaRP counted each byte as a character even for characters composed of multiple bytes, and ran the risk of chopping a chacter in half if a multibyte character spanned the truncation boundary. The new version won't do that. The bad news is that that's not the only problem CaRP had with multibyte feeds. The good news is that I've got a solution for the other problem.
The other problem was that the only multibyte encoding that CaRP can handle is UTF-8 (since that's the only one that PHP's XML parser can handle). So to display, for example, Japanese feeds encoded in Shift JIS or EUC, you need to first transcode them to UTF-8. And if your webpage isn't encoded in UTF-8, you'll also need to transcode the output to the character set that you're using. If you've purchased CaRP Koi or CaRP Evolution, you'll find a transcoder script that will handle the first half of that, but the second half can be handled in your webpage more efficiently.
Here's some example code--first, for the case where your webpage is in UTF-8:
Notice how CaRP gets the data from transcode.php (in UTF-8, which is transcode.php's default output encoding) by passing the URL of the feed to transcode.php.
Now, how about if your webpage is in Shift JIS:
In this case, you use the outputformat setting to tell CaRP not to output anything, but instead store it in the variable $carpoutput. Then, you use iconv to convert $carpoutput from UTF-8 to Shift JIS, and echo to output the results.
Note that transcode.php and the code shown above require iconv support, so if your server doesn't have it, you'll have to find your own way to handle the transcoding.
So there you have it--CaRP is now suitable for working with feeds in any language!