Re: Encode UTF-8 optimizations
[email protected] (Karl Williamson) Wed, 24 Aug 2016 22:49:21 -0600
| Newsgroups | perl.unicode |
|---|---|
| Message-ID | <[email protected]> |
On 08/22/2016 02:47 PM, [email protected] wrote: snip > I added some tests for overlong sequences. Only for ASCII platforms, tests for EBCDIC > are missing (sorry, I do not have access to any EBCDIC platform for testing). It's fine to skip those tests on EBCDIC. > >>> > > Anyway, how it behave on EBCDIC platforms? And maybe another question >>> > > what should Encode::encode('UTF-8', $str) do on EBCDIC? Encode $str to >>> > > UTF-8 or to UTF-EBCDIC? >> > >> > It works fine on EBCDIC platforms. There are other bugs in Encode on >> > EBCDIC that I plan on investigating as time permits. Doing this has >> > fixed some of these for free. The uvuni() functions should in almost >> > all instances be uvchr(), and my patch does that. > Now I'm thinking if FBCHAR_UTF8 define is working also on EBCDIC... I think that it > should be different for UTF-EBCDIC. I'll fix that > >> > On EBCDIC platforms, UTF-8 is defined to be UTF-EBCDIC (or vice versa if >> > you prefer), so $str will effectively be in the version of UTF-EBCDIC >> > valid for the platform it is running on (there are differences depending >> > on the platform's underlying code page). > So it means that on EBCDIC platforms you cannot process file which is encoded in UTF-8? > As Encode::decode("UTF-8", $str) expect $str to be in UTF-EBCDIC and not in UTF-8 (as I > understood). > Yes. The two worlds do not meet. If you are on an EBCDIC platform, the native encoding is UTF-EBCDIC tailored to the code page the platform runs on. In searching, I did not find anything that converts between the two, so I wrote a Perl script to do so. Our OS/390 man, Yaroslav, wrote one in C.