Re: Problem with Text::Template 1.43 and Frontier::RPC2 and Japanese text
[email protected] (Peter Chow) Wed, 12 Jun 2002 10:20:36 +0900 (JST)
| Newsgroups | perl.i18n |
|---|---|
| Message-ID | <[email protected]> |
Hi Kevin, Thanks for your response. I tried to reply to your address [email protected] but there were problems reaching your address. Anyways, here is an update to the problem. At the time I reported the problem I did not use either utf or bytes pragma. Actually I didn't know what they were since I am new to 5.6.1 and Unicode, have been working with 5.005 in the past. I tried each of "use utf8", "no utf8", "use bytes" and "no bytes", but each one still resulted in corrupted text. I am not really clear on what exactly these do. I assume "use utf8" tells Perl to specifically handle all characters as UTF-8 internally. But i would think that "no utf8" would be the same as "use bytes". In any case I had no luck getting Text::Template with type FILE to work with any of these pragma settings. To simplify things a bit I tried to use type STRING and for the source string a Shift-JIS encoded japanese string. Then I tried the various pragmas again and found that there was no corruption when I had "use utf8" enabled. I am a bit baffled as to why it would work with the STRING but not the FILE type in Text::Template. Since the STRING type doesn't really help me and I couldn't get it to work with the FILE type I decided to try it on a different version of Perl. I installed Perl 5.005 and then re-tested, there is no corruption! So the problem has to do with how Perl 5.6.1 handles my Shift-JIS characters. I would think that I would want to turn off UTF-8 handling in Perl 5.6.1 so that it doesn't try to handle the Shift-JIS as UTF-8. Using Perl 5.005 is a workaround, but eventually I would like my code to work in Perl 5.6.1 and later. So I would still be interested in any help anybody can offer to solve this problem. >Hi Peter, > >Are you using the utf or bytes pragma(s)? I couldn't reproduce this, >but would be happy to try if you wanted to send me your template. When >I transmit data, I try to use UTF-8.. but that may not suit your needs. > >Cheers, >Kevin > >On Mon, Jun 10, 2002 at 08:48:37PM +0900, Peter Chow ([email protected]) said something similar to: >> I am using Perl 5.6.1 on Debian Linux with Text::Template 1.43 >> and Frontier::RPC2 0.06. >> >> My template file is in Japanese Shift-JIS encoding. I am writing >> a XML-RPC server using Frontier::RPC2 as a CGI-based type running >> under Apache. The method I am calling is supposed to take a few >> parameters, populate the values into the template with Text::Template >> and then send out an email. >> >> What I have found is that the Japanese characters in my template >> gets corrupted in the output of the email when Text::Template runs >> with the data received from the XML-RPC client. Initially I thought >> the problem was with Text::Template, but I tested calling my >> Text::Template code directly and there was no character corruption. >> The problem only seems to occur when it is called with the data >> received from the XML-RPC client. >> >> I thought the problem was with the XML-RPC module, so I tried using >> RPC::XML instead of Frontier::RPC2, but the same corruption occurs. >> I also tried using the Template module instead of Text::Template, >> but still the same corruption. >> >> The parameters values I am sending between the XML-RPC client and >> server are currently just ASCII text. The terminal I am using to >> view the results is in Shift-JIS. >> >> Is there some Unicode conversion I have to do somewhere? >> Any suggestions would be greatly appreciated.