???????????????????????????? ??????????????/????????????????? ............/............... .........................../... ????????????????????????????? >>>>>>>>>>>>>/>>>>>>>>>>>>>>>>> ÿØÿà JFIF    ÿÛ „  ( %!1!%)+//.383,7(-.+  -%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ     ÿÄ J    ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ   ÿÄ *  !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú "SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5 ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e ríV ?> ......................................... ............................................................................. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>/>>>>>>>>>>>>>>>>>> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ???????????????????????????? ??????????????/????????????????? ............/............... .........................../... ????????????????????????????? >>>>>>>>>>>>>/>>>>>>>>>>>>>>>>> ÿØÿà JFIF    ÿÛ „  ( %!1!%)+//.383,7(-.+  -%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ     ÿÄ J    ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ   ÿÄ *  !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú "SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5 ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e ríV ?> ......................................... ............................................................................. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>/>>>>>>>>>>>>>>>>>> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> PK]7^0^0gettext_dumb.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Pure Perl implementation of Uniforum message translation. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::gettext_dumb; use Locale::gettext_pp; use vars qw (%EXPORT_TAGS @EXPORT_OK @ISA $VERSION); %EXPORT_TAGS = (locale_h => [ qw (gettext dgettext dcgettext ngettext dngettext dcngettext pgettext dpgettext dcpgettext npgettext dnpgettext dcnpgettext textdomain bindtextdomain bind_textdomain_codeset )], libintl_h => [ qw (LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES LC_ALL)], ); @EXPORT_OK = qw (gettext dgettext dcgettext ngettext dngettext dcngettext pgettext dpgettext dcpgettext npgettext dnpgettext dcnpgettext textdomain bindtextdomain bind_textdomain_codeset nl_putenv setlocale LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES LC_ALL); @ISA = qw (Exporter); *Locale::gettext_dumb::textdomain = \&Locale::gettext_pp::textdomain; *Locale::gettext_dumb::bindtextdomain = \&Locale::gettext_pp::bindtextdomain; *Locale::gettext_dumb::bind_textdomain_codeset = \&Locale::gettext_pp::bind_textdomain_codeset; *Locale::gettext_dumb::nl_putenv = \&Locale::gettext_pp::nl_putenv; *Locale::gettext_dumb::LC_CTYPE = \&Locale::gettext_pp::LC_CTYPE; *Locale::gettext_dumb::LC_NUMERIC = \&Locale::gettext_pp::LC_NUMERIC; *Locale::gettext_dumb::LC_TIME= \&Locale::gettext_pp::LC_TIME; *Locale::gettext_dumb::LC_COLLATE = \&Locale::gettext_pp::LC_COLLATE; *Locale::gettext_dumb::LC_MONETARY = \&Locale::gettext_pp::LC_MONETARY; *Locale::gettext_dumb::LC_MESSAGES = \&Locale::gettext_pp::LC_MESSAGES; *Locale::gettext_dumb::LC_ALL = \&Locale::gettext_pp::LC_ALL; sub gettext ($) { my ($msgid) = @_; return dcnpgettext ('', undef, $msgid, undef, undef, undef); } sub dgettext ($$) { my ($domainname, $msgid) = @_; return dcnpgettext ($domainname, undef, $msgid, undef, undef, undef); } sub dcgettext ($$$) { my ($domainname, $msgid, $category) = @_; return dcnpgettext ($domainname, undef, $msgid, undef, undef, undef); } sub ngettext ($$$) { my ($msgid, $msgid_plural, $n) = @_; return dcnpgettext ('', undef, $msgid, $msgid_plural, $n, undef); } sub dngettext ($$$$) { my ($domainname, $msgid, $msgid_plural, $n) = @_; return dcnpgettext ($domainname, undef, $msgid, $msgid_plural, $n, undef); } sub dcngettext ($$$$$) { my ($domainname, $msgid, $msgid_plural, $n, $category) = @_; return dcnpgettext ($domainname, undef, $msgid, $msgid_plural, $n, , $category); } sub pgettext ($$) { my ($msgctxt, $msgid) = @_; return dcnpgettext ('', $msgctxt, $msgid, undef, undef, undef); } sub dpgettext ($$$) { my ($domainname, $msgctxt, $msgid) = @_; return dcnpgettext ($domainname, $msgctxt, $msgid, undef, undef, undef); } sub dcpgettext($$$$) { my ($domainname, $msgctxt, $msgid, $category) = @_; return dcnpgettext ($domainname, $msgctxt, $msgid, undef, undef, undef); } sub npgettext ($$$$) { my ($msgctxt, $msgid, $msgid_plural, $n) = @_; return dcnpgettext ('', $msgctxt, $msgid, $msgid_plural, $n, undef); } sub dnpgettext ($$$$$) { my ($domainname, $msgctxt, $msgid, $msgid_plural, $n) = @_; return dcnpgettext ($domainname, $msgctxt, $msgid, $msgid_plural, $n, undef); } sub __get_locale() { my $locale; if (exists $ENV{LANGUAGE} && length $ENV{LANGUAGE}) { $locale = $ENV{LANGUAGE}; $locale =~ s/:.*//s; } elsif (exists $ENV{LC_ALL} && length $ENV{LC_ALL}) { $locale = $ENV{LC_ALL}; } elsif (exists $ENV{LANG} && length $ENV{LANG}) { $locale = $ENV{LANG}; } elsif (exists $ENV{LC_MESSAGES} && length $ENV{LC_MESSAGES}) { $locale = $ENV{LC_MESSAGES}; } else { $locale = 'C'; } return $locale; } sub dcnpgettext ($$$$$$) { my ($domainname, $msgctxt, $msgid, $msgid_plural, $n, $category) = @_; my $locale = __get_locale; return Locale::gettext_pp::_dcnpgettext_impl ($domainname, $msgctxt, $msgid, $msgid_plural, $n, $category, $locale); } sub setlocale($;$) { &POSIX::setlocale; } 1; __END__ =head1 NAME Locale::gettext_dumb - Locale unaware Implementation of Uniforum Message Translation =head1 SYNOPSIS use Locale::gettext_dumb qw(:locale_h :libintl_h); # Normally, you will not want to include this module directly but this way: use Locale::Messages; my $selected = Locale::Messages->select_package ('gettext_dumb'); gettext $msgid; dgettext $domainname, $msgid; dcgettext $domainname, $msgid, LC_MESSAGES; ngettext $msgid, $msgid_plural, $count; dngettext $domainname, $msgid, $msgid_plural, $count; dcngettext $domainname, $msgid, $msgid_plural, $count, LC_MESSAGES; pgettext $msgctxt, $msgid; dpgettext $domainname, $msgctxt, $msgid; dcpgettext $domainname, $msgctxt, $msgid, LC_MESSAGES; npgettext $msgctxt, $msgid, $msgid_plural, $count; dnpgettext $domainname, $msgctxt, $msgid, $msgid_plural, $count; dcnpgettext $domainname, $msgctxt, $msgid, $msgid_plural, $count, LC_MESSAGES; textdomain $domainname; bindtextdomain $domainname, $directory; bind_textdomain_codeset $domainname, $encoding; my $category = LC_CTYPE; my $category = LC_NUMERIC; my $category = LC_TIME; my $category = LC_COLLATE; my $category = LC_MONETARY; my $category = LC_MESSAGES; my $category = LC_ALL; =head1 DESCRIPTION B This module is experimental. It may not work as described! The module B does exactly the same as Locale::gettext_xs(3pm) or Locale::gettext_pp(3pm). While both other modules use POSIX::setlocale() to determine the currently selected locale, this backend only checks the environment variables LANGUAGE, LANG, LC_ALL, LC_MESSAGES (in that order), when it tries to locate a message catalog (a .mo file). This class was introduced in libintl-perl 1.22. =head1 USAGE This module should not be used for desktop software or scripts run locally. Why? If you use a message catalog for example in Danish in UTF-8 (da_DA.UTF8) but the system locale is set to Russian with KOI8-R (ru_RU.KOI8-R) you may produce invalid output, either invalid multi-byte sequences or invalid text, depending on how you look at it. That will happen, when you mix output from B with locale-dependent output from the operating system like the contents of the variable "$!", date and time formatting functions (localtime(), gmtime(), POSIX::strftime() etc.), number formatting with printf() and friends, and so on. A typical usage scenario looks like this: You have a server application (for example a web application) that is supposed to display a fixed set of messages in many languages. If you want to do this with Locale::gettext_xs(3pm) or Locale::gettext_pp(3pm), you have to install the locale data for all of those languages. Otherwise, translating the messages will not work. With Locale::gettext_dumb(3pm) you can relax these requirements, and display messages for all languages that you have mo files for. On the other hand, you will soon reach limits with this approach. Almost any application requires more than bare translation of messages for localisation. You want to formatted dates and times, you want to display numbers in the correct formatting for the selected languages, and you may want to display system error messages ("$!"). In practice, Locale::gettext_dumb(3pm) is still useful in these scenarios. Your users will have to live with the fact that the presented output is in different languages resp. for different locales, when "their" locale is not installed on your system. More dangerous is mixing output in different character sets but that can be easily avoided. Simply make sure that B uses UTF-8 (for example by setting the environment variable OUTPUT_CHARSET or by calling bind_textdomain_codeset()) and make sure that the system locale also uses UTF-8, for example "en_US.UTF8". If that fails, switch to a locale that uses a subset of UTF-8. In practice that will be US-ASCII, the character set used by the default locale "C" resp. "POSIX". Your application will then to a certain extent mix output for different localisations resp. languages. But this is completely under your control. =head1 EXAMPLE See above! Normally you should not use this module! However, let us assume you have read the warnings. In a web application you would do something like this: use Locale::TextDomain qw (com.example.yourapp); use Locale::Messages qw (nl_putenv LC_ALL bindtextdomain bind_textdomain_codeset); use Locale::Util qw (web_set_locale); use POSIX qw (setlocale); # First try to switch to the locale requested by the user. If you # know it you can try to pass it to setlocale like this: # # my $hardcoded_locale = 'fr_FR.UTF-8'; # my $success = POSIX::setlocale (LC_ALL, $hardcoded_locale); # # However, we try to let libintl-perl do a better job for us: my $success = web_set_locale $ENV{HTTP_ACCEPT_LANGUAGE}, $ENV{HTTP_ACCEPT_CHARSET}; # Note: If your application forces the use of UTF-8 for its output # you should pass 'UTF-8' as the second argument to web_set_locale # instead of $ENV{HTTP_ACCEPT_CHARSET}. if (!$success) { # Did not work. Switch to the dumb interface of # Locale::Messages. Locale::Messages->select_package ('gettext_dumb'); # And try to switch to a default locale: if (!setlocale (LC_ALL, 'en_US.UTF-8')) { # Still no luck. Enforce at least US-ASCII: setlocale (LC_ALL, 'C'); } bind_textdomain_codeset 'com.example.yourapp', 'utf-8'; } If your application forces the usage of UTF-8 you should ignore the environment variable =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::TextDomain(3pm), Locale::Messages(3pm), Encode(3pm), perllocale(3pm), POSIX(3pm), perl(1), gettext(1), gettext(3) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 tab-width: 4 End: PK]aOyy Messages.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::Messages; use strict; use vars qw ($package @EXPORT_OK %EXPORT_TAGS @ISA $VERSION); $VERSION = '1.33'; # Try to load the C version first. $package = 'gettext_xs'; # Do not load from current working directory. local @INC = grep { $_ ne '.' } @INC; eval <<'EOF'; require Locale::gettext_xs; my $version = Locale::gettext_xs::__gettext_xs_version(); die "Version: version mismatch ($VERSION vs. $version)" unless $version eq $VERSION; EOF my $no_xs = $@; # There are systems where setlocale() and the LC_ constants are not # defined at all, see https://rt.cpan.org/Ticket/Display.html?id=98109 # # On such systems, we always fall back to gettext_dumb. if ($no_xs) { eval { require POSIX; # void POSIX::setlocale(POSIX::LC_ALL()); }; if ($@) { $package = 'gettext_dumb'; require Locale::gettext_dumb; } else { $package = 'gettext_pp'; require Locale::gettext_pp; } } require Exporter; @ISA = qw (Exporter); %EXPORT_TAGS = (locale_h => [ qw (gettext dgettext dcgettext ngettext dngettext dcngettext pgettext dpgettext dcpgettext npgettext dnpgettext dcnpgettext textdomain bindtextdomain bind_textdomain_codeset ) ], libintl_h => [ qw (LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES LC_ALL) ], ); @EXPORT_OK = qw (select_package turn_utf_8_on turn_utf_8_off gettext dgettext dcgettext ngettext dngettext dcngettext pgettext dpgettext dcpgettext npgettext dnpgettext dcnpgettext textdomain bindtextdomain bind_textdomain_codeset bind_textdomain_filter nl_putenv setlocale LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES LC_ALL); BEGIN { my ($has_encode, $has_bytes); if ($] >= 5.006) { unless (defined $has_encode) { eval "require Encode"; $has_encode = !$@; } unless ($has_encode || defined $has_bytes) { eval "use bytes"; $has_bytes = !$@; } } # Turn the UTF-8 flag on or off unconditionally. The prototypes # allow an optional second parameter, so that you can use the # functions as callbacks to bind_textdomain_filter. if ($has_encode) { eval <<'EOF'; sub turn_utf_8_on($;$) { Encode::_utf8_on ($_[0]); return $_[0]; } sub turn_utf_8_off($;$) { Encode::_utf8_off ($_[0]); return $_[0]; } EOF } elsif ($has_bytes) { eval <<'EOF'; sub turn_utf_8_on($;$) { $_[0] = pack "U0C*", unpack "C*", $_[0]; } sub turn_utf_8_off($;$) { use bytes; $_[0] = join "", split //, $_[0]; } EOF } else { eval <<'EOF'; sub turn_utf_8_on($;$) { return $_[0]; } sub turn_utf_8_off($;$) { return $_[0]; } EOF } } # The textdomain could be undef. We avoid a warning by specifying # a filter for the undefined textdomain. my %filters = (undef => \&turn_utf_8_off); sub select_package { my ($pkg, $compatibility) = @_; # Compatibility quirk for a bug pre 1.17: if (__PACKAGE__ eq $pkg && defined $compatibility) { $pkg = $compatibility; } if ($no_xs && 'gettext_xs' eq $pkg) { $pkg = 'gettext_pp'; } if (defined $pkg && 'gettext_pp' eq $pkg) { # This branch is not unnecessary. The next (elsif) branch does # essentially the same but catches compilation errors. require Locale::gettext_pp; $package = 'gettext_pp'; } elsif (defined $pkg) { my $filename = "Locale::$pkg"; $filename =~ s{::|\'}{/}; $filename .= '.pm'; eval { require $filename }; $package = $pkg unless $@; } else { eval "require Locale::gettext_xs"; $package = 'gettext_xs' unless $@; } return $package; } sub bind_textdomain_filter ($;$$) { my ($textdomain, $coderef, $data) = @_; $filters{$textdomain} = [ $coderef, $data ]; return 1; } sub textdomain (;$) { my $function = "Locale::${package}::textdomain"; no strict 'refs'; &$function; } sub bindtextdomain ($;$) { my $function = "Locale::${package}::bindtextdomain"; no strict 'refs'; &$function; } sub bind_textdomain_codeset ($;$) { my $function = "Locale::${package}::bind_textdomain_codeset"; no strict 'refs'; &$function; } sub gettext ($) { my $textdomain = textdomain; $filters{$textdomain} ||= [ \&turn_utf_8_off ]; my $cb = $filters{$textdomain}; my $function = "Locale::${package}::gettext"; no strict 'refs'; $cb->[0] (&$function, $cb->[1]); } sub dgettext($$) { my $cb = $filters{$_[0]} ||= [ \&turn_utf_8_off ]; my $function = "Locale::${package}::dgettext"; no strict 'refs'; $cb->[0] (&$function, $cb->[1]); } sub dcgettext($$$) { my $cb = $filters{$_[0]} ||= [ \&turn_utf_8_off ]; my $function = "Locale::${package}::dcgettext"; no strict 'refs'; $cb->[0] (&$function, $cb->[1]); } sub ngettext($$$) { my $textdomain = textdomain; $filters{$textdomain} ||= [ \&turn_utf_8_off ]; my $cb = $filters{$textdomain}; my $function = "Locale::${package}::ngettext"; no strict 'refs'; $cb->[0] (&$function, $cb->[1]); } sub dngettext($$$$) { my $cb = $filters{$_[0]} ||= [ \&turn_utf_8_off ]; my $function = "Locale::${package}::dngettext"; no strict 'refs'; $cb->[0] (&$function, $cb->[1]); } sub dcngettext($$$$$) { my $cb = $filters{$_[0]} ||= [ \&turn_utf_8_off ]; my $function = "Locale::${package}::dcngettext"; no strict 'refs'; $cb->[0] (&$function, $cb->[1]); } sub pgettext($$) { my $textdomain = textdomain; $filters{$textdomain} ||= [ \&turn_utf_8_off ]; my $cb = $filters{$textdomain}; my $function = "Locale::${package}::pgettext"; no strict 'refs'; $cb->[0] (&$function, $cb->[1]); } sub dpgettext($$$) { my $cb = $filters{$_[0]} ||= [ \&turn_utf_8_off ]; my $function = "Locale::${package}::dpgettext"; no strict 'refs'; $cb->[0] (&$function, $cb->[1]); } sub dcpgettext($$$$) { my $cb = $filters{$_[0]} ||= [ \&turn_utf_8_off ]; my $function = "Locale::${package}::dcpgettext"; no strict 'refs'; $cb->[0] (&$function, $cb->[1]); } sub npgettext($$$$) { my $cb = $filters{$_[0]} ||= [ \&turn_utf_8_off ]; my $function = "Locale::${package}::npgettext"; no strict 'refs'; $cb->[0] (&$function, $cb->[1]); } sub dnpgettext($$$$$) { my $cb = $filters{$_[0]} ||= [ \&turn_utf_8_off ]; my $function = "Locale::${package}::dnpgettext"; no strict 'refs'; $cb->[0] (&$function, $cb->[1]); } sub dcnpgettext($$$$$$) { my $cb = $filters{$_[0]} ||= [ \&turn_utf_8_off ]; my $function = "Locale::${package}::dcnpgettext"; no strict 'refs'; $cb->[0] (&$function, $cb->[1]); } sub setlocale($;$) { my $function = "Locale::${package}::setlocale"; no strict 'refs'; &$function; } sub nl_putenv($) { my $function = "Locale::${package}::nl_putenv"; no strict 'refs'; &$function; } sub LC_NUMERIC { my $function = "Locale::${package}::LC_NUMERIC"; no strict 'refs'; &$function; } sub LC_CTYPE { my $function = "Locale::${package}::LC_CTYPE"; no strict 'refs'; &$function; } sub LC_TIME { my $function = "Locale::${package}::LC_TIME"; no strict 'refs'; &$function; } sub LC_COLLATE { my $function = "Locale::${package}::LC_COLLATE"; no strict 'refs'; &$function; } sub LC_MONETARY { my $function = "Locale::${package}::LC_MONETARY"; no strict 'refs'; &$function; } sub LC_MESSAGES { my $function = "Locale::${package}::LC_MESSAGES"; no strict 'refs'; &$function; } sub LC_ALL { my $function = "Locale::${package}::LC_ALL"; no strict 'refs'; &$function; } 1; __END__ =head1 NAME Locale::Messages - Gettext Like Message Retrieval =head1 SYNOPSIS use Locale::Messages qw(:locale_h :libintl_h); gettext $msgid; dgettext $textdomain, $msgid; dcgettext $textdomain, $msgid, LC_MESSAGES; ngettext $msgid, $msgid_plural, $count; dngettext $textdomain, $msgid, $msgid_plural, $count; dcngettext $textdomain, $msgid, $msgid_plural, $count, LC_MESSAGES; pgettext $msgctxt, $msgid; dpgettext $textdomain, $msgctxt, $msgid; dcpgettext $textdomain, $msgctxt, $msgid, LC_MESSAGES; npgettext $msgctxt, $msgid, $msgid_plural, $count; dnpgettext $textdomain, $msgctxt, $msgid, $msgid_plural, $count; dcnpgettext $textdomain, $msgctxt, $msgid, $msgid_plural, $count, LC_MESSAGES; textdomain $textdomain; bindtextdomain $textdomain, $directory; bind_textdomain_codeset $textdomain, $encoding; bind_textdomain_filter $textdomain, \&filter, $data; turn_utf_8_on ($variable); turn_utf_8_off ($variable); nl_putenv ('OUTPUT_CHARSET=koi8-r'); my $category = LC_CTYPE; my $category = LC_NUMERIC; my $category = LC_TIME; my $category = LC_COLLATE; my $category = LC_MONETARY; my $category = LC_MESSAGES; my $category = LC_ALL; =head1 DESCRIPTION The module B is a wrapper around the interface to message translation according to the Uniforum approach that is for example used in GNU gettext and Sun's Solaris. It is intended to allow Locale::Messages(3) to switch between different implementations of the lower level libraries but this is not yet implemented. Normally you should not use this module directly, but the high level interface Locale::TextDomain(3) that provides a much simpler interface. This description is therefore deliberately kept brief. Please refer to the GNU gettext documentation available at L for in-depth and background information on the topic. The lower level module Locale::gettext_pp(3) provides the Perl implementation of gettext() and related functions. =head1 FUNCTIONS The module exports by default nothing. Every function has to be imported explicitly or via an export tag (L). =over 4 =item B Returns the translation for B. Example: print gettext "Hello World!\n"; If no translation can be found, the unmodified B is returned, i. e. the function can I fail, and will I mess up your original message. Note for Perl 5.6 and later: The returned string will I have the UTF-8 flag off by default. See the documentation for function bind_textdomain_filter() for a way to change this behavior. One common mistake is this: print gettext "Hello $name!"; Perl will interpolate the variable C<$name> I the function will see the string. Unless the corresponding message catalog contains a message "Hello Tom!", "Hello Dick!" or "Hello Harry!", no translation will be found. Using printf() and friends has its own problems: print sprintf (gettext ("This is the %s %s."), $color, $thing); (The example is stupid because neither color nor thing will get translated here ...). In English the adjective (the color) will precede the noun, many other languages (for example French or Italian) differ here. The translator of the message may therefore have a hard time to find a translation that will still work and not sound stupid in the target language. Many C implementations of printf() allow one to change the order of the arguments, and a French translator could then say: "C'est le %2$s %1$s." Perl printf() implements this feature as of version 5.8 or better. Consequently you can only use it, if you are sure that your software will run with Perl 5.8 or a later version. Another disadvantage of using printf() is its cryptic syntax (maybe not for you but translators of your software may have their own opinion). See the description of the function C<__x()> in Locale::TextDomain(3) for a much better way to get around this problem. Non-ASCII message ids ... You should note that the function (and all other similar functions in this module) does a bytewise comparison of the B for the lookup in the translation catalog, no matter whether obscure utf-8 flags are set on it, whether the string looks like utf-8, whether the utf8(3pm) pragma is used, or whatever other weird method past or future perl(1) versions invent for guessing character sets of strings. Using other than us-ascii characters in Perl source code is a call for trouble, a compatibility nightmare. Furthermore, GNU gettext only lately introduced support for non-ascii character sets in sources, and support for this feature may not be available everywhere. If you absolutely want to use Bs in non-ascii character sets, it is wise to choose utf-8. This will minimize the risk that perl(1) itself will mess with the strings, and it will also be a guaranty that you can later translate your project into arbitrary target languages. Other character sets can theoretically work. Yet, using another character set in the Perl source code than the one used in your message catalogs will B work, since the lookup is done bytewise, and all strings with non-ascii characters will not be found. Even if you have solved all these problems, there is still one show stopper left: The gettext runtime API lacks a possibility to specify the character set of the source code (including the original strings). Consequently - in absence of a hint for the input encoding - strings without a translation are not subject to output character set conversion. In other words: If the (non-determinable) output character set differs from the character set used in the source code, output can be a mixture of two character sets. There is no point in trying to address this problem in the pure Perl version of the gettext functions. because breaking compatibility between the Perl and the C version is a price too high to pay. This all boils down to: Only use ASCII characters in your translatable strings! =item B Like gettext(), but retrieves the message for the specified B instead of the default domain. In case you wonder what a textdomain is, you should really read on with Locale::TextDomain(3). =item B Like dgettext() but retrieves the message from the specified B instead of the default category C. =item B Retrieves the correct translation for B items. In legacy software you will often find something like: print "$count file(s) deleted.\n"; or printf "$count file%s deleted.\n", $count == 1 ? '' : 's'; The first example looks awkward, the second will only work in English and languages with similar plural rules. Before ngettext() was introduced, the best practice for internationalized programs was: if ($count == 1) { print gettext "One file deleted.\n"; } else { printf gettext "%d files deleted.\n"; } This is a nuisance for the programmer and often still not sufficient for an adequate translation. Many languages have completely different ideas on numerals. Some (French, Italian, ...) treat 0 and 1 alike, others make no distinction at all (Japanese, Korean, Chinese, ...), others have two or more plural forms (Russian, Latvian, Czech, Polish, ...). The solution is: printf (ngettext ("One file deleted.\n", "%d files deleted.\n", $count), # argument to ngettext! $count); # argument to printf! In English, or if no translation can be found, the first argument (B) is picked if C<$count> is one, the second one otherwise. For other languages, the correct plural form (of 1, 2, 3, 4, ...) is automatically picked, too. You don't have to know anything about the plural rules in the target language, ngettext() will take care of that. This is most of the time sufficient but you will have to prove your creativity in cases like printf "%d file(s) deleted, and %d file(s) created.\n"; =item B Like ngettext() but retrieves the translation from the specified textdomain instead of the default domain. =item B Like dngettext() but retrieves the translation from the specified category, instead of the default category C. =item B Returns the translation of MSGID, given the context of MSGCTXT. Both items are used as a unique key into the message catalog. This allows the translator to have two entries for words that may translate to different foreign words based on their context. For example, the word "View" may be a noun or a verb, which may be used in a menu as File->View or View->Source. pgettext "Verb: To View", "View\n"; pgettext "Noun: A View", "View\n"; The above will both lookup different entries in the message catalog. A typical usage are GUI programs. Imagine a program with a main menu and the notorious "Open" entry in the "File" menu. Now imagine, there is another menu entry Preferences->Advanced->Policy where you have a choice between the alternatives "Open" and "Closed". In English, "Open" is the adequate text at both places. In other languages, it is very likely that you need two different translations. Therefore, you would now write: pgettext "File|", "Open"; pgettext "Preferences|Advanced|Policy", "Open"; In English, or if no translation can be found, the second argument (MSGID) is returned. The function was introduced with libintl-perl version 1.17. =item B Like pgettext(), but retrieves the message for the specified B instead of the default domain. The function was introduced with libintl-perl version 1.17. =item B Like dpgettext() but retrieves the message from the specified B instead of the default category C. The function was introduced with libintl-perl version 1.17. =item B Like ngettext() with the addition of context as in pgettext(). In English, or if no translation can be found, the second argument (MSGID) is picked if $count is one, the third one otherwise. The function was introduced with libintl-perl version 1.17. =item B Like npgettext() but retrieves the translation from the specified textdomain instead of the default domain. The function was introduced with libintl-perl version 1.17. =item B Like dnpgettext() but retrieves the translation from the specified category, instead of the default category C. The function was introduced with libintl-perl version 1.17. =item B Sets the default textdomain (initially 'messages'). =item B Binds B to B. Huh? An example: bindtextdomain "my-package", "./mylocale"; Say, the selected locale (actually the selected locale for category C) of the program is 'fr_CH', then the message catalog will be expected in F<./mylocale/fr_CH/LC_MESSAGES/my-package.mo>. =item B Sets the output encoding for B to B. =item B =item B By default, Locale::Messages will turn the utf-8 flag of all returned messages off. If you want to change this behavior, you can pass a reference to a subroutine that does different things - for example turn the utf-8 flag on, or leave it untouched. The callback function will be called with B as the first, and the possibly translated string as the second argument. It should return the possibly modified string. If you want an object method to be called, pass the object itself in the data parameter and write a wrapper function. Example: sub wrapper { my ($string, $obj) = @_; $obj->filterMethod ($string); } my $obj = MyPackage->new; bind_textdomain_filter ('mydomain', \&wrapper, $obj); The function cannot fail and always returns a true value. B If you use the function for setting the utf-8 flag, it is B responsibility to ensure that the output is really utf-8. You should only use it, if you have set the environment variable B to "utf-8". Additionally you should call bind_textdomain_codeset() with "utf-8" as the second argument. Steven Haryanto has written a module Locale::TextDomain::UTF8(3pm) that addresses the same problem. This function has been introduced in libintl-perl 1.16 and it is B part of the standard gettext API. =item B Returns VARIABLE but with the UTF-8 flag (only known in Perl >=5.6) guaranteed to be turned on. This function does not really fit into the module, but it is often handy nevertheless. The flag does B mean that the string is in fact valid utf-8! The function was introduced with libintl-perl version 1.16. =item B Returns VARIABLE but with the UTF-8 flag (only known in Perl >=5.6) guaranteed to be turned off. This function does not really fit into the module, but it is often handy nevertheless. The function was introduced with libintl-perl version 1.07. =item B By default, B will try to load the XS version of the gettext implementation, i. e. Locale::gettext_xs(3) and will fall back to the pure Perl implementation Locale::gettext_pp(3). You can override this behavior by passing the string "gettext_pp" or "gettext_xs" to the function select_package(). Passing "gettext_pp" here, will prefer the pure Perl implementation. You will normally want to use that in a BEGIN block of your main script. The function was introduced with libintl-perl version 1.03 and is not part of the standard gettext API. Beginning with version 1.22 you can pass other package names than "gettext_pp" or "gettext_xs" and use a completely different backend. It is the caller's responsibility to make sure that the selected package offers the same interface as the two standard packages. One package that offers that functionality is Locale::gettext_dumb(3pm). =item B Resembles the ANSI C putenv(3) function. The sole purpose of this function is to work around some ideosyncrasies in the environment processing of Windows systems. If you want to portably set or unset environment variables, use this function instead of directly manipulating C<%ENV>. The argument B may have three different forms. =over 8 =item B This would set the environment variable C to "fr_CH". =item B Normally, this will set the environment variable C to an empty string. Under Windows, however, the environment variable will be deleted instead (and is no longer present in C<%ENV>). Since within libintl-perl empty environment variables are useless, consider this usage as deprecated. =item B This will delete the environment variable B. If you are familiar with the brain-damaged implementation of putenv(3) (resp. _putenv()) in the so-called standard C library of MS-Windows, you may suspect that this is an invalid argument. This is not the case! Passing a variable name not followed by an equal sign will always delete the variable, no matter which operating system you use. =back The function returns true for success, and false for failure. Possible reasons for failure are an invalid syntax or - only under Windows - failure to allocate space for the new environment entry ($! will be set accordingly in this case). Why all this hassle? The 32-bit versions of MS-DOS (currently Windows 95/98/ME/NT/2000/XP/CE/.NET) maintain two distinct blocks of environment variables per process. Which block is considered the "correct" environment is a compile-time option of the Perl interpreter. Unfortunately, if you have build the XS version Locale::gettext_xs(3) under Windows, the underlying library may use a different environment block, and changes you make to C<%ENV> may not be visible to the library. The function nl_putenv() is mostly a funny way of saying LANGUAGE=some_value but it does its best, to pass this information to the gettext library. Under other operating systems than Windows, it only operates on C<%ENV>, under Windows it will call the C library function _putenv() (after doing some cleanup to its arguments), before manipulating C<%ENV>. Please note, that your C<%ENV> is updated by nl_putenv() automatically. The function has been introduced in libintl-perl version 1.10. =item setlocale Modifies and queries program's locale, see the documentation for setlocale() in POSIX(3pm) instead. On some systems, when using GNU gettext, a call from C to setlocale() is - with the help of the C preprocessor - really a call to libintl_setlocale(), which is in turn a wrapper around the system setlocale(3). Failure to call libintl_setlocale() may lead to certain malfunctions. On such systems, B will call the wrapper libintl_setlocale(). If you want to avoid problems, you should therefore always call the setlocale() implementation in Locale::Messages(3pm). See L or L, and L for a discussion of the problem. The function has been introduced in libintl-perl version 1.24. =back =head1 CONSTANTS You can (maybe) get the same constants from POSIX(3); see there for a detailed description =over 4 =item B =item B =item B =item B =item B =item B This locale category was the reason that these constants from POSIX(3) were included here. Even if it was present in your systems C include file F, it was not provided by POSIX(3). Perl 5.8 and later seems to export the constant if available, although it is not documented in POSIX(3). Locale::Messages(3) makes an attempt to guess the value of this category for all systems, and assumes the arbitrary value 1729 otherwise. =item B If you specify the category B as the first argument to POSIX::setlocale(), I locale categories will be affected at once. =back =head1 EXPORT TAGS The module does not export anything unless explicitly requested. You can import groups of functions via two tags: =over 4 =item B Imports the functions that are normally defined in the C include file F: =over 8 =item B =item B =item B =item B =item B =item B =item B =item B =item B =item B =item B =item B =item B =item B =item B =back =item B Imports the locale category constants: =over 8 =item B =item B =item B =item B =item B =item B =item B =back =back =head1 OTHER EXPORTS =over 4 =item B =back =head1 USAGE A complete example: 1: use Locale::Messages qw(:locale_h :libintl_h); 2: use POSIX qw (setlocale); 3: setlocale (LC_MESSAGES, ''); 4: textdomain ('my-package'); 5: bindtextdomain ('my-package' => '/usr/local/share/locale'); 6: 7: print gettext ("Hello world!\n"); Step by step: Line 1 imports the necessary functions and constants. In line 3 we set the locale for category LC_MESSAGES to the default user settings. For C programs you will often read that LC_ALL is the best category here but this will also change the locale for LC_NUMERIC and many programs will not work reliably after changing that category in Perl; choose your own poison! In line 4 we say that all messages (translations) without an explicit domain specification should be retrieved from the message catalog for the domain 'my-package'. Line 5 has the effect that the message catalog will be searched under the directory F. If the user has selected the locale 'fr_CH', and if the file F exists, and if it contains a GNU message object file with a translation for the string "Hello world!\n", then line 7 will print the French translation (for Switzerland CH) to STDOUT. The documentation for GNU gettext explains how to extract translatable strings from your Perl files and how to create message catalogs. Another less portable example: If your system uses the GNU libc you should be able to find various files with the name F, the message catalog for the library itself. If you have found these files under F, then you can try the following: use Locale::Messages qw(:locale_h :libintl_h); use POSIX qw (setlocale); setlocale LC_MESSAGES, ""; textdomain "libc"; # The following is actually not needed, since this is # one of the default search directories. bindtextdomain libc => '/usr/share/locale'; bind_textdomain_codeset libc => 'iso-8859-1'; print gettext ("No such file or directory"); See Locale::TextDomain(3) for much simpler ways. =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::TextDomain(3pm), Locale::gettext_pp(3pm), Encode(3pm), perllocale(3pm), POSIX(3pm), perl(1), gettext(1), gettext(3) =cut __END__ Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]\Util.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Portable methods for locale handling. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::Util; use strict; use constant DEBUG => 0; use base qw (Exporter); use vars qw (@EXPORT_OK); @EXPORT_OK = qw (parse_http_accept_language parse_http_accept_charset set_locale set_locale_cache get_locale_cache web_set_locale); # The following list maps languages to a rough guess of the country that # is most likely to be meant if no locale info for the country alone is # found. I have assembled the list to the best of my knowledge, preferring # the country that has the language as its official language, and in doubt # listing the country that has the most speakers of that language. Corrections # are welcome. use constant LANG2COUNTRY => { aa => 'ET', # Afar => Ethiopia ab => 'AB', # Abkhazian => Georgia # ae => '??', # Avestan => ??, Iran? af => 'za', # Afrikaans => South Africa am => 'ET', # Amharic => Ethiopia ar => 'EG', # Arabic => Egypt as => 'IN', # Assamese => India ay => 'BO', # Aymara => Bolivia az => 'AZ', # Azerbaijani => Azerbaijan ba => 'RU', # Bashkir => Russia be => 'BY', # Belarusian => Belarus bg => 'BG', # Bulgarian => Bulgaria bh => 'IN', # Bihari => India bi => 'VU', # Bislama => Vanuatu bn => 'BD', # Bengali => Bangladesh bo => 'CN', # Tibetan => China br => 'FR', # Breton => France bs => 'BA', # Bosnian => Bosnia and Herzegovina ca => 'ES', # Catalan => Spain ce => 'RU', # Chechen => Russia ch => '??', # Chamorro => Guam (or mp?) co => 'FR', # Corsican => France cs => 'CZ', # Czech => Czech Republic cu => 'BG', # Church Slavic => Bulgaria cv => 'RU', # Chuvash => Russia cy => 'GB', # Welsh => United Kingdom da => 'DK', # Danish => Denmark de => 'DE', # German => Germany dz => 'BT', # Dzongkha => Bhutan el => 'GR', # Greek => Greece en => 'US', # English => United States es => 'ES', # Actually Mexico and the US have more Spanish speakers # than Spain. But it can be assumed that they either add # the country to their browser settings or will not care # to much. et => 'EE', # Estonian => Estonia fa => 'IR', # Iran, Islamic Republic of fi => 'FI', # Finnish => Finland fj => 'FJ', # Fijian => Fiji fo => 'FO', # Faeroese => Faroe Islands fr => 'FR', # French => France fy => 'FY', # Frisian => Netherlands ga => 'IE', # Irish => Ireland gd => 'GB', # Gaelic (Scots) => United Kingdom gl => 'ES', # Gallegan => Spain gn => 'PY', # Guarani => Paraguay gu => 'IN', # Gujarati => IN gv => 'GB', # Manx => United Kingdom ha => 'NE', # Hausa => Niger (ng?) he => 'IL', # Hebrew => Israel hi => 'IN', # Hindi => India ho => 'PG', # Hiri Motu => Papua New Guinea hr => 'HR', # Croatian hu => 'HU', # Hungarian => Hungary hy => 'AM', # Armenian => Armenia hz => 'NA', # Herero => Namibia # ia => '??', # Interlingua (aka "latino sine flexione") => ?? id => 'ID', # Indonesian => Indonesia # ie => '??', # Interlingue => ??? ik => 'US', # Inupiaq => United States is => 'IS', # Icelandic => Iceland it => 'IT', # Italian => Italy iu => 'CA', # Inuktitut => Canada iw => 'IL', # Hebrew => Israel ja => 'JP', # Japanese => Japan jw => 'ID', # Javanese => Indonesia ka => 'GE', # Georgian => Georgia ki => 'KE', # Kikuyu => Kenya kj => 'AO', # Kuanyama => Angola (na?) kk => 'KZ', # Kazakh => Kazakhstan kl => 'GL', # Kalaallisut => Greenland km => 'KH', # Khmer => Cambodia kn => 'IN', # Kannada => India ko => 'KR', # Korean => Korea, Republic of (more speakers than North Korea) ks => 'IN', # Kashmiri => India ku => 'TR', # Kurdish => Turkey kv => 'RU', # Komi => Russia kw => 'GB', # Cornish => United Kingdom ky => 'KG', # Kirghyz => Kyrgyzstan la => 'VA', # Latin => Holy See (Vatican City State) lb => 'LU', # Letzeburgesch => Luxembourg ln => 'CG', # Lingala => Republic of the Congo (cd?) lo => 'LA', # Lao => Lao People's Democratic Republic lt => 'LT', # Lithuanian => Lithuania lv => 'LV', # Latvian => Latvia mg => 'MG', # Malagasy => Madagascar mh => 'MH', # Marshall => Marshall Islands mi => 'NZ', # Maori => New Zealand mk => 'MK', # Macedonian => Macedonia, the Former Yugoslav Republic of ml => 'IN', # Malayalam => India mn => 'MN', # Mongolian => Mongolia mr => 'IN', # Marathi => India ms => 'MY', # Malay => Malaysia (FIXME: not really sure ...) mt => 'MT', # Maltese => Malta my => 'MM', # Burmese => Myanmar na => 'NR', # Nauru => Nauru nb => 'NO', # Norwegian Bokmål => Norway nd => 'ZA', # Ndebele, North => South Africa ne => 'NP', # Nepali => Nepal ng => 'NA', # Ndonga => Namibia nl => 'NL', # Dutch => Netherlands nn => 'NO', # Norwegian Nynorsk => Norway no => 'NO', # Norwegian => Norway nr => 'ZA', # Ndebele, South => South Africa nv => 'US', # Navajo => United States ny => 'MW', # Chichewa; Nyanja => Malawi oc => 'FR', # Occitan (post 1500) => France om => 'ET', # Oromo => Ethiopia or => 'IN', # Oriya => India os => 'RU', # Ossetian; Ossetic => Russia (FIXME: Or Georgia?) pa => 'IN', # Panjabi => India pi => 'IN', # Pali => India (FIXME: Or Thailand, Sri Lanka, Myanmar, # Cambodia) pl => 'PL', # Polish => Poland ps => 'PK', # Pushto => Pakistan pt => 'PT', # Portuguese => Portugal (following our rules this should # actually be Brazil but that would be to unrealistic, # people from Brazil set their locale to pt_BR). qu => 'PE', # Quechua => Peru rm => 'CH', # Rhaeto-Romance => Switzerland rn => 'RW', # Rundi => Rwanda ro => 'RO', # Romanian => Romania ru => 'RU', # Russian => Russia rw => 'RW', # Kinyarwanda => Rwanda sa => 'IN', # Sanskrit => India sc => 'IT', # Sardinian => Italy sd => 'IN', # Sindhi => India se => 'SE', # Sami => Sweden (Totally unsure here. The Sami languages # are also spoken in Norway, Finland and Russia, but the # largest part of the area seems to be in Sweden. sg => '??', # Sango => Central African Republic si => 'LK', # Sinhalese => Sri Lanka sk => 'SK', # Slovakian => Slovakia sl => 'SI', # Slovenian => Slovenia sm => 'WS', # Samoan => Samoa sh => 'ZW', # Shona => Zimbabwe (FIXME: Rather Mozambique?) so => 'SO', # Somali => Somalia sq => 'AL', # Albanian => Albania sr => 'YU', # Serbian => Yugoslavia ss => '??', # Swati => Swaziland (za?) st => 'LS', # Sotho => Lesotho su => 'IN', # Sundanese => Indonesia sv => 'SE', # Swedish => Sweden sw => 'TZ', # Suaheli => Tanzania, United Republic of ta => 'LK', # Tamil => Sri Lanka te => 'IN', # Telugu => India tg => 'TJ', # Tajik => Tajikistan th => 'TH', # Thai => Thailand ti => 'ER', # Tigrinya => Eritrea tk => 'TM', # Turkmen => Turkmenistan tl => 'PH', # Tagalog => Philippines tn => 'BW', # Tswana => Botswana to => 'TO', # Tonga => Tonga tr => 'TR', # Turkish => Turkish tt => 'RU', # Tatar => Russia tw => 'GH', # Twi => Ghana ug => 'CN', # Uighur => China uk => 'UA', # Ukrainian => Ukraine ur => 'PK', # Urdu => Pakistan uz => 'UZ', # Uzbek => Uzbekistan vi => 'VN', # Vietnamese => Vietnam # vo => '??', # Volapuk => Nowhere wo => 'SN', # Wolof => Senegal xh => 'ZA', # Xhosa => South Africa yi => 'IL', # Yiddish => Israel (FIXME: Rather United States?) yo => 'NG', # Yoruba => Nigeria za => 'CN', # Zhuang => China zh => 'CN', # Chinese => China zu => 'ZA', # Zulu => South Africa }; use constant WIN32LANGUAGE => { aa => "Afar", ab => "Abkhazian", ae => "Avestan", af => "Afrikaans", am => "Amharic", ar => "Arabic", as => "Assamese", ay => "Aymara", az => "Azerbaijani", ba => "Bashkir", be => "Belarusian", bg => "Bulgarian", bh => "Bihari", bi => "Bislama", bn => "Bengali", bo => "Tibetan", br => "Breton", bs => "Bosnian", ca => "Catalan", ce => "Chechen", ch => "Chamorro", co => "Corsican", cs => "Czech", cu => "Church Slavic", cv => "Chuvash", cy => "Welsh", da => "Danish", de => "German", dz => "Dzongkha", el => "Greek", en => "English", eo => "Esperanto", es => "Spanish", et => "Estonian", eu => "Basque", fa => "Persian", fi => "Finnish", fj => "Fijian", fo => "Faeroese", fr => "French", fy => "Frisian", ga => "Irish", gd => "Gaelic (Scots)", gl => "Gallegan", gn => "Guarani", gu => "Gujarati", gv => "Manx", ha => "Hausa", he => "Hebrew", hi => "Hindi", ho => "Hiri Motu", hr => "Croatian", hu => "Hungarian", hy => "Armenian", hz => "Herero", ia => "Interlingua", id => "Indonesian", ie => "Interlingue", ik => "Inupiaq", is => "Icelandic", it => "Italian", iu => "Inuktitut", ja => "Japanese", jw => "Javanese", ka => "Georgian", ki => "Kikuyu", kj => "Kuanyama", kk => "Kazakh", kl => "Kalaallisut", km => "Khmer", kn => "Kannada", ko => "Korean", ks => "Kashmiri", ku => "Kurdish", kv => "Komi", kw => "Cornish", ky => "Kirghiz", la => "Latin", lb => "Letzeburgesch", ln => "Lingala", lo => "Lao", lt => "Lithuanian", lv => "Latvian", mg => "Malagasy", mh => "Marshall", mi => "Maori", # Sorry, lads, but that is what M$ calls your language ... mk => "FYRO Macedonian", ml => "Malayalam", mn => "Mongolian", mo => "Moldavian", mr => "Marathi", ms => "Malay", mt => "Maltese", my => "Burmese", na => "Nauru", nb => "Norwegian (Bokmål)", nd => "Ndebele, North", ne => "Nepali", ng => "Ndonga", nl => "Dutch", nn => "Norwegian-Nynorsk", no => "Norwegian-Nynorsk", nr => "Ndebele, South", nv => "Navajo", ny => "Chichewa", oc => "Occitan (post 1500)", om => "Oromo", or => "Oriya", os => "Ossetian", pa => "Panjabi", pi => "Pali", pl => "Polish", ps => "Pushto", pt => "Portuguese", qu => "Quechua", rm => "Rhaeto-Romance", rn => "Rundi", ro => "Romanian", ru => "Russian", rw => "Kinyarwanda", sa => "Sanskrit", sc => "Sardinian", sd => "Sindhi", se => "Sami", sg => "Sango", si => "Sinhalese", sk => "Slovak", sl => "Slovenian", sm => "Samoan", sn => "Shona", so => "Somali", sq => "Albanian", sr => "Serbian", ss => "Swati", st => "Sotho", su => "Sundanese", sv => "Swedish", sw => "Swahili", ta => "Tamil", te => "Telugu", tg => "Tajik", th => "Thai", ti => "Tigrinya", tk => "Turkmen", tl => "Tagalog", tn => "Tswana", to => "Tonga", tr => "Turkish", ts => "Tsonga", tt => "Tatar", tw => "Twi", ug => "Uighur", uk => "Ukrainian", ur => "Urdu", uz => "Uzbek", vi => "Vietnamese", vo => "Volapuk", wo => "Wolof", xh => "Xhosa", yi => "Yiddish", yo => "Yoruba", za => "Zhuang", zh => "Chinese", zu => "Zulu", }; use constant WIN32COUNTRY => { ad => "Andorra", ae => "United Arab Emirates", af => "Afghanistan", ag => "Antigua and Barbuda", ai => "Anguilla", al => "Albania", am => "Armenia", an => "Netherlands Antilles", ao => "Angola", aq => "Antarctica", ar => "Argentina", as => "American Samoa", at => "Austria", au => "Australia", aw => "Aruba", ax => "Aland Islands", az => "Azerbaijan", ba => "Bosnia and Herzegovina", bb => "Barbados", bd => "Bangladesh", be => "Belgium", bf => "Burkina Faso", bg => "Bulgaria", bh => "Bahrain", bi => "Burundi", bj => "Benin", bm => "Bermuda", bn => "Brunei Darussalam", bo => "Bolivia", br => "Brazil", bs => "Bahamas", bt => "Bhutan", bv => "Bouvet Island", bw => "Botswana", by => "Belarus", bz => "Belize", ca => "Canada", cc => "Cocos (Keeling) Islands", cd => "Congo, The Democratic Republic of the", cf => "Central African Republic", cg => "Congo", ch => "Switzerland", ci => "Cote D'Ivoire", ck => "Cook Islands", cl => "Chile", cm => "Cameroon", cn => "China", co => "Colombia", cr => "Costa Rica", cs => "Serbia and Montenegro", cu => "Cuba", cv => "Cape Verde", cx => "Christmas Island", cy => "Cyprus", cz => "Czech Republic", de => "Germany", dj => "Djibouti", dk => "Denmark", dm => "Dominica", do => "Dominican Republic", dz => "Algeria", ec => "Ecuador", ee => "Estonia", eg => "Egypt", eh => "Western Sahara", er => "Eritrea", es => "Spain", et => "Ethiopia", fi => "Finland", fj => "Fiji", fk => "Falkland Islands (Malvinas)", fm => "Micronesia, Federated States of", fo => "Faroe Islands", fr => "France", fx => "France, Metropolitan", ga => "Gabon", gb => "United Kingdom", gd => "Grenada", ge => "Georgia", gf => "French Guiana", gh => "Ghana", gi => "Gibraltar", gl => "Greenland", gm => "Gambia", gn => "Guinea", gp => "Guadeloupe", gq => "Equatorial Guinea", gr => "Greece", gs => "South Georgia and the South Sandwich Islands", gt => "Guatemala", gu => "Guam", gw => "Guinea-Bissau", gy => "Guyana", hk => "Hong Kong", hm => "Heard Island and McDonald Islands", hn => "Honduras", hr => "Croatia", ht => "Haiti", hu => "Hungary", id => "Indonesia", ie => "Ireland", il => "Israel", in => "India", io => "British Indian Ocean Territory", iq => "Iraq", ir => "Iran", is => "Iceland", it => "Italy", jm => "Jamaica", jo => "Jordan", jp => "Japan", ke => "Kenya", kg => "Kyrgyzstan", kh => "Cambodia", ki => "Kiribati", km => "Comoros", kn => "Saint Kitts and Nevis", kp => "North-Korea", kr => "Korea", kw => "Kuwait", ky => "Cayman Islands", kz => "Kazakhstan", la => "Laos", lb => "Lebanon", lc => "Saint Lucia", li => "Liechtenstein", lk => "Sri Lanka", lr => "Liberia", ls => "Lesotho", lt => "Lithuania", lu => "Luxembourg", lv => "Latvia", ly => "Libyan", ma => "Morocco", mc => "Monaco", md => "Moldova", mg => "Madagascar", mh => "Marshall Islands", mk => "Former Yugoslav Republic of Macedonia", ml => "Mali", mm => "Myanmar", mn => "Mongolia", mo => "Macao", mp => "Northern Mariana Islands", mq => "Martinique", mr => "Mauritania", ms => "Montserrat", mt => "Malta", mu => "Mauritius", mv => "Maldives", mw => "Malawi", mx => "Mexico", my => "Malaysia", mz => "Mozambique", na => "Namibia", nc => "New Caledonia", ne => "Niger", nf => "Norfolk Island", ng => "Nigeria", ni => "Nicaragua", nl => "Netherlands", no => "Norway", np => "Nepal", nr => "Nauru", nu => "Niue", nz => "New Zealand", om => "Oman", pa => "Panama", pe => "Peru", pf => "French Polynesia", pg => "Papua New Guinea", ph => "Philippines", pk => "Pakistan", pl => "Poland", pm => "Saint Pierre and Miquelon", pn => "Pitcairn", pr => "Puerto Rico", ps => "Palestinian Territory, Occupied", pt => "Portugal", pw => "Palau", py => "Paraguay", qa => "Qatar", re => "Reunion", ro => "Romania", ru => "Russian Federation", rw => "Rwanda", sa => "Saudi Arabia", sb => "Solomon Islands", sc => "Seychelles", sd => "Sudan", se => "Sweden", sg => "Singapore", sh => "Saint Helena", si => "Slovenia", sj => "Svalbard and Jan Mayen", sk => "Slovakia", sl => "Sierra Leone", sm => "San Marino", sn => "Senegal", so => "Somalia", sr => "Suriname", st => "Sao Tome and Principe", sv => "El Salvador", sy => "Syrian Arab Republic", sz => "Swaziland", tc => "Turks and Caicos Islands", td => "Chad", tf => "French Southern Territories", tg => "Togo", th => "Thailand", tj => "Tajikistan", tk => "Tokelau", tl => "Timor-Leste", tm => "Turkmenistan", tn => "Tunisia", to => "Tonga", tr => "Turkey", tt => "Trinidad and Tobago", tv => "Tuvalu", tw => "Taiwan, Province of China", tz => "Tanzania, United Republic of", ua => "Ukraine", ug => "Uganda", um => "United States Minor Outlying Islands", us => "United States", uy => "Uruguay", uz => "Uzbekistan", va => "Holy See (Vatican City State)", vc => "Saint Vincent and the Grenadines", ve => "Venezuela", vg => "Virgin Islands, British", vi => "Virgin Islands, U.S.", vn => "Vietnam", vu => "Vanuatu", wf => "Wallis and Futuna", ws => "Samoa", ye => "Yemen", yt => "Mayotte", za => "South Africa", zm => "Zambia", zw => "Zimbabwe", }; my $locale_cache; sub parse_http_accept_language { my ($string) = @_; my @tokens = split / *, */, $string; my %retval; foreach my $token (@tokens) { my $quality = 1; # This RE is more forgiving than the standard. It accepts # values greater than 1.0 and with more fractional digits # than 3. if ($token =~ s/ *; *q *= *([0-9]+(?:\.([0-9]+))?)$//) { $quality = $1; } $retval{$token} = $quality; } # RFC 2616 only allows 1-8 characters for language and country # but we are more forgiving. return grep { /^[A-Za-z]+(?:-[A-Za-z]+)?$/ } map { $_ = 'C' if $_ eq '*'; $_ } sort { $retval{$b} <=> $retval{$a} } keys %retval; } sub parse_http_accept_charset { my ($string) = @_; my @tokens = split / *, */, $string; my %retval; foreach my $token (@tokens) { my $quality = 1; # This RE is more forgiving than the standard. It accepts # values greater than 1.0 and with more fractional digits # than 3. if ($token =~ s/ *; *q *= *([0-9]+(?:\.([0-9]+))?)$//) { $quality = $1; } $retval{$token} = $quality; } return grep { # This is really allowed in character set names ... /^[-!\#\$\%\&\'\+\.0-9A-Z_\`a-z\|\~]+$/ } map { $_ = undef if $_ eq '*'; $_ } sort { $retval{$b} <=> $retval{$a} } keys %retval; } sub set_locale { my ($category, $language, $country, $charset) = @_; require POSIX; $country = '' unless defined $country; $charset = '' unless defined $charset; my $set_locale; # Look up the cache first. if (my $retval = $locale_cache->{$language}->{$country}->{$charset}) { my ($locale, $country) = @$retval; POSIX::setlocale ($category, $locale); return @$retval; } # Initialize the cache with the undefined value so that we can do # error returns without setting it. $locale_cache->{$language}->{$country}->{$charset} = undef; my $windows = ($^O !~ /darwin/i && $^O =~ /win/i) ? 1 : 0; if ($windows) { return &__set_locale_windows; } my $set_language; my $set_country; # First we try to only use the language. my @languages = ($language); my @lc_languages = map { lc $_ } @languages; my @uc_languages = map { uc $_ } @languages; my %seen = (); foreach my $language (@languages, @lc_languages, @uc_languages) { next if $seen{$language}++; warn "Trying lingua only setlocale '$language'.\n" if DEBUG; my $result = POSIX::setlocale ($category, $language); if ($result) { $set_locale = $set_language = $result if $result; last; } } # Now try it with the country appended. my @countries = length $country ? ($country) : (); my @uc_countries = map { uc $_ } @countries; my @lc_countries = map { uc $_ } @countries; push @countries, @uc_countries, @lc_countries; LINGUA: foreach my $language (@languages, @lc_languages, @uc_languages) { my $count = 0; my @guessed_countries = (LANG2COUNTRY->{lc $language}, lc LANG2COUNTRY->{lc $language}, uc LANG2COUNTRY->{lc $language}); foreach my $c (@countries, @guessed_countries) { ++$count; next unless defined $c && length $c; my $try = $language . '_' . $c; next if $seen{$try}++; warn "Trying setlocale '$try'.\n" if DEBUG; my $result = POSIX::setlocale ($category, $try); if ($result) { $set_locale = $result; if ($count >= @countries) { $set_country = $c; } else { $set_country = $country; } last LINGUA; } } } unless (length $charset) { return unless defined $set_locale && length $set_locale; $locale_cache->{$language}->{$country}->{$charset} = [$set_locale, $set_country]; return wantarray ? ($set_locale, $set_country) : $set_locale; } my @charsets = ($charset); my $cleaned = $charset; push @charsets, $cleaned if $cleaned =~ s/-//g; my @lc_charsets = map { lc $charset } @charsets; my @uc_charsets = map { uc $charset } @charsets; push @charsets, @lc_charsets, @uc_charsets; %seen = (); LINGUA2: foreach my $language (@languages, @lc_languages, @uc_languages) { my @guessed_countries = (LANG2COUNTRY->{lc $language}, lc LANG2COUNTRY->{lc $language}, uc LANG2COUNTRY->{lc $language}); my $count = 0; foreach my $c (@countries, @guessed_countries) { ++$count; $c = '' unless defined $c && length $c; my $country_try = $language; $country_try .= (length $c) ? "_$c" : ''; foreach my $ch (@charsets, @lc_charsets, @uc_charsets) { my $try = $country_try . '.' . $ch; next if $seen{$try}++; warn "Trying setlocale '$try'.\n" if DEBUG; my $result = POSIX::setlocale ($category, $try); if ($result) { $set_locale = $result; if ($count >= @countries) { $set_country = $c; } else { $set_country = $country; } last LINGUA2; } } } } return unless defined $set_locale && length $set_locale; $locale_cache->{$language}->{$country}->{$charset} = [$set_locale, $set_country]; return wantarray ? ($set_locale, $set_country) : $set_locale; } sub __set_locale_windows { my ($category, $language, $country, $charset) = @_; my $set_locale; $country = '' unless defined $country; $charset = '' unless defined $charset; # First we try to only use the language. my $long_language = WIN32LANGUAGE->{lc $language}; my @languages = ($long_language, $language); my %seen = (); foreach my $language (@languages) { next if $seen{$language}++; warn "Trying lingua only setlocale '$language'.\n" if DEBUG; my $result = POSIX::setlocale ($category, $language); if ($result) { $set_locale = $result if $result; last; } } # Now try it with the country appended. my $set_country; if (length $country) { COMBI: foreach my $language (@languages) { # We do not need a fallback country here, because the "system" already # provides the information. my @short_countries = ($country); my @countries = map { WIN32COUNTRY->{lc $_} } grep { length $_ } @short_countries; foreach my $c (@countries) { next unless defined $c && length $c; my $try = $language . '_' . $c; next if $seen{$try}++; warn "Trying setlocale '$try'.\n" if DEBUG; my $result = POSIX::setlocale ($category, $try); if ($result) { $set_locale = $result; $set_country = $c; last COMBI; } } } } return unless defined $set_locale && length $set_locale; # Apparently, there is no point in setting a charset. Even the new # MS-DOS versions like 2000 or XP still have the concept of more or # less fixed codepages. Switching to UTF-8 does not work. $locale_cache->{$language}->{$country}->{$charset} = [$set_locale, $set_country]; return wantarray ? ($set_locale, $set_country) : $set_locale; } sub get_locale_cache { $locale_cache; } sub set_locale_cache { if (ref $_[0] && 'HASH' eq ref $_[0]) { $locale_cache = $_[0]; } else { my %locale_cache = @_; $locale_cache = \%locale_cache; } } sub web_set_locale { my ($accept_language, $accept_charset, $category, $available) = @_; my %available; if ($available) { foreach (@$available) { my $locale = $_; $locale =~ s/[_\@\.].*//; $available{lc $locale} = 1; } } my @languages; if (ref $accept_language && 'ARRAY' eq ref $accept_language) { @languages = @$accept_language; } else { @languages = parse_http_accept_language $accept_language; } if ($available) { my @all = @languages; @languages = (); foreach my $locale (@all) { my $language = lc $locale; $language =~ s/[_\@\.].*//; push @languages, $locale if $available{$language}; } } my @charsets; if (defined $accept_charset) { if (ref $accept_charset && 'ARRAY' eq ref $accept_charset) { @charsets = @$accept_charset; } else { @charsets = parse_http_accept_charset $accept_charset; } } unless (defined $category) { require POSIX; $category = POSIX::LC_ALL(); } my ($set_locale, $set_language, $set_country, $set_charset); foreach my $lang (@languages) { my ($language, $country) = split /-/, $lang, 2; my ($locale, $country_used) = set_locale ($category, $language, $country, $charsets[0]); if (defined $locale) { # If a country was specified, we have to check whether it # was actually selected. if (defined $country) { if (!defined $country || ($country ne $country_used)) { $set_language = $language; $set_locale = $locale; $set_country = $country_used; $set_charset = $charsets[0]; } } if (wantarray) { return $locale, $lang, $country_used, $charsets[0]; } else { return $locale; } } } if (defined $set_locale) { if (wantarray) { return $set_locale, $set_language, $set_country, $set_charset; } else { return $set_locale; } } return; } 1; __END__ =head1 NAME Locale::Util - Portable l10n and i10n functions =head1 SYNOPSIS use Locale::Util; my @linguas = parse_http_accept_language $ENV{HTTP_ACCEPT_LANGUAGE}; my @charsets = parse_http_accept_charset $ENV{HTTP_ACCEPT_CHARSET}; # Trie to set the locale to Brasilian Portuguese in UTF-8. my $set_locale = set_locale LC_ALL, 'pt', 'BR', 'utf-8'; set_locale_cache $last_cache; my $cache = get_locale_cache; web_set_locale ($ENV{HTTP_ACCEPT_LANGUAGE}, $ENV_ACCEPT_CHARSET); web_set_locale (['fr-BE', 'fr', 'it'], ['cp1252', 'utf-8']); =head1 DESCRIPTION This module provides portable functions dealing with localization (l10n) and internationalization(i10n). It doesn't export anything by default, you have to specify each function you need in the import list, or use the fully qualified name. The functions here have a focus on web development, although they are general enough to have them in the Locale:: namespace. This module is considered alpha code. The interface is not stable. Please contact the author if you want to use it in production code. This module was introduced in libintl-perl 1.17. =head1 FUNCTIONS =over 4 =item B Parses a string as passed in the HTTP header "Accept-Language". It returns a list of tokens sorted by the quality value, see RFC 2616 for details. Example: parse_http_accept ("fr-fr, fr; q=0.7, de; q=0.3"); This means: Give me French for France with a quality value of 1.0 (the maximum). Otherwise I will take any other French version (quality 0.7), German has a quality of 0.3 for me. The function will return a list of tokens in the order of their quality values, in this case "fr-fr", "fr" and "de". The function is more forgiving than RFC 2616. It accepts quality values greater than 1.0 and with more than 3 decimal places. It also accepts languages and country names with more than 8 characters. The language "*" is translated into "C". =item B Parses a string as passed in the HTTP header "Accept-Charset". It returns a list of tokens sorted by the quality value, see RFC 2616 for details. The special character set "*" (means all character sets) will be translated to the undefined value. =item B Tries to set the user locale by means of POSIX::setlocale(). The latter function has the disadvantage, that its second argument (the locale description string) is completely non-standard and system-dependent. This function tries its best at guessing the system's notion of a locale dientifier, with the arguments supplied: =over 8 =item B An integer argument for a valid locale category. These are the LC_* constants (LC_ALL, LC_CTIME, LC_COLLATE, ...) defined in both Locale::Messages(3pm) and POSIX(3pm). =item B A 2-letter language identifier as per ISO 639. Case doesn't matter, but an unchanged version (ie. not lower-cased) of the language you provided will always be tried to. =item B A 2-letter language identifier as per ISO 639. Case doesn't matter, but an unchanged version (ie. not lower-cased) of the language you provided will always be tried to. This parameter is optional. If it is not defined, the function will try to guess an appropriate country, otherwise leave it to the operating system. =item B A valid charset name. Valid means valid! The charset "utf8" is not valid (it is "utf-8"). Charset names that are accepted by the guessing algorithms in Encode(3pm) are also not necessarily valid. If the parameter is undefined, it is ignored. It is always ignored under Windows. =back The function tries to approach the desired locale in loops, refining it on every success. It will first try to set the language (for any country), then try to select the correct language, and finally try to select the correct charset. The return value is false in case of failure, or the return value of the underlying POSIX::setlocale() call in case of success. In array context, the function returns the country name that was passed in the successful call to POSIX::setlocale(). If this string is equal to the country name you passed as an argument, you can be reasonably sure that the settings for this country are really used. If it is not equal, the function has taken a guess at the country (it has a list of "default" countries for each language). It seems that under Windows, POSIX::setlocale() also succeeds, if you pass a country name that is actually not supported. Therefore, the information is not completely reliable. Please note that this function is intended for server processes (especially web applications) that need to switch in a portable way to a certain locale. It is B the recommended way to set the program locale for a regular application. In a regular application you should do the following: use POSIX qw (setlocale LC_ALL); setlocale LC_ALL, ''; The empty string as the second argument means, that the system should switch to the user's default locale. =item B The function set_locale() is potentially expansive, especially when it fails, because it can try a lot of different combinations, and the system may have to load a lot of locale definitions from its internal database. In order to speed up things, results are internally cached in a hash, keys are the languages, subkeys countries, subsubkeys the charsets. You can get a reference to this hash with get_locale_cache(). The function cannot fail. =item B Sets the internal cache. You can either pass a hash or a hash reference. The function will use this as its cache, discarding its old cache. This allows you to keep the hash persistent. The function cannot fail. =item B Try to change the locale to the settings described by ACCEPT_LANGUAGE and ACCEPT_CHARSET. For each argument you can either pass a string as in the corresponding http header, or a reference to an array of language resp. charset identifiers. Currently only the first charset passed is used as an argument. You are strongly encouraged to pass a hard-coded value here, so that you have control about your output. The argument B specifies the category (one of the LC_* constants as defined in Locale::Messages(3pm) or in POSIX(3pm)). The category defaults to LC_ALL. You can pass an optional reference to a list of locales in XPG4 format that are available in your application. This is useful if you know which languages are supported by your application. In fact, only the language part of the values in the list are considered (for example for "en_US", only "en" is used). The country or other parts are ignored. The function returns the return value of the underlying set_locale() call, or false on failure. The function returns false on failure. On success it returns the return value of the underlying set_locale() call. This value can be used directly in subsequent calls to POSIX::setlocale(). In array context, it additionally returns the identifiers for the language, the country, and the charset actually used. =back =head1 BUGS The function set_locale() probably fails to guess the correct locale identifier on a lot of systems. If you have found such a case, please submit it as a bug report. The bug tracking system for this packags is at http://rt.cpan.org/NoAuth/Bugs.html?libintl-perl Please note that this module is considered alpha code, and the interface is not stable. Please contact the author, if you want to use it in production code. =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO POSIX(3pm), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]tո00 RecodeData.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Virtual base class for Locale::Recode converters. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData; use strict; sub new { my ($class, %args) = @_; bless { _from => $args{from}, _to => $args{to}, }, $class; } sub _getError { shift->{_error}; } 1; __END__ =head1 NAME Locale::RecodeData - Abstract Base Class for Charset Converters =head1 SYNOPSIS # For compatibility with Perl 5.005 and earlier, you must # *use* the module before inheriting from it! use qw (Locale::RecodeData); use base qw (Locale::RecodeData); =head1 DESCRIPTION The module B serves as an abstract base class to all converters used by Locale::Recode(3). Adding new conversion modules is currently not straightforward, and you will have to edit the sources of some modules for that purpose. First, you have to add your new converter class to the list found in Locale::_Conversions(3), so that Locale::Recode(3) knows about its presence. If there are valid aliases for the codeset of your converter, you will also have to edit Locale::_Aliases(3). Finally, you have to implement the (protected) conversion routine _recode(). See below (L<"INTERFACE")> for details. =head1 CONSTRUCTOR =over 4 =item B FROM_CODESET, to =E TO_CODESET)> The constructor takes two (named) arguments: =over 8 =item B The canonical name of the source codeset. Aliases have already been resolved and the name is converted to uppercase. =item B The canonical name of the destination codeset. Aliases have already been resolved and the name is converted to uppercase. =back You normally don't have to implement the constructor. The default constructor implemented here will store the source and destination codesets in the protected members C<_from> and C<_to>. =back =head1 METHODS The class implements one method: =over 4 =item B<_getError> Returns the (protected) member C<_error>. =back =head1 INTERFACE New conversion classes must provide the following interface: =over 4 =item B FROM_CODESET, to =E TO_CODESET)> The constructor takes two (named) arguments: =over 8 =item B The canonical name of the source codeset. Aliases have already been resolved and the name is converted to uppercase. =item B The canonical name of the destination codeset. Aliases have already been resolved and the name is converted to uppercase. =back =item B<_getError> Should return the last error (as a string) or false if there was no error. This method is implemented in the base class already. =item B<_recode STRINGREF> Should convert the argument C in-place. In case of failure, return false, and make provisions that the method C<_getError()> returns an informative error message. =back =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::Recode::_Aliases(3pm), Locale::Recode::_Conversions(3pm), Locale::Recode(3pm), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]n^*^*Recode/_Conversions.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # List of internally known conversions. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::Recode::_Conversions; use strict; use integer; use vars qw ($conversions $optional_conversions); # These are the canonical names of the encodings always available. $conversions = { 'ASMO_449' => 'ASMO_449', 'ATARI-ST-EURO' => 'ATARI_ST_EURO', 'ATARI-ST' => 'ATARI_ST', 'CP10007' => 'CP10007', 'CSN_369103' => 'CSN_369103', 'CWI' => 'CWI', 'DEC-MCS' => 'DEC_MCS', 'EBCDIC-AT-DE-A' => 'EBCDIC_AT_DE_A', 'EBCDIC-AT-DE' => 'EBCDIC_AT_DE', 'EBCDIC-CA-FR' => 'EBCDIC_CA_FR', 'EBCDIC-DK-NO-A' => 'EBCDIC_DK_NO_A', 'EBCDIC-DK-NO' => 'EBCDIC_DK_NO', 'EBCDIC-ES-A' => 'EBCDIC_ES_A', 'EBCDIC-ES-S' => 'EBCDIC_ES_S', 'EBCDIC-ES' => 'EBCDIC_ES', 'EBCDIC-FI-SE-A' => 'EBCDIC_FI_SE_A', 'EBCDIC-FI-SE' => 'EBCDIC_FI_SE', 'EBCDIC-FR' => 'EBCDIC_FR', 'EBCDIC-IS-FRISS' => 'EBCDIC_IS_FRISS', 'EBCDIC-IT' => 'EBCDIC_IT', 'EBCDIC-PT' => 'EBCDIC_PT', 'EBCDIC-UK' => 'EBCDIC_UK', 'EBCDIC-US' => 'EBCDIC_US', 'ECMA-CYRILLIC' => 'ECMA_CYRILLIC', 'GEORGIAN-ACADEMY' => 'GEORGIAN_ACADEMY', 'GEORGIAN-PS' => 'GEORGIAN_PS', 'GOST_19768-74' => 'GOST_19768_74', 'GREEK-CCITT' => 'GREEK_CCITT', 'GREEK7-OLD' => 'GREEK7_OLD', 'GREEK7' => 'GREEK7', 'HP-ROMAN8' => 'HP_ROMAN8', 'IBM037' => 'IBM037', 'IBM038' => 'IBM038', 'IBM1004' => 'IBM1004', 'IBM1026' => 'IBM1026', 'IBM1047' => 'IBM1047', 'IBM256' => 'IBM256', 'IBM273' => 'IBM273', 'IBM274' => 'IBM274', 'IBM275' => 'IBM275', 'IBM277' => 'IBM277', 'IBM278' => 'IBM278', 'IBM280' => 'IBM280', 'IBM281' => 'IBM281', 'IBM284' => 'IBM284', 'IBM285' => 'IBM285', 'IBM290' => 'IBM290', 'IBM297' => 'IBM297', 'IBM420' => 'IBM420', 'IBM423' => 'IBM423', 'IBM424' => 'IBM424', 'IBM437' => 'IBM437', 'IBM500' => 'IBM500', 'IBM850' => 'IBM850', 'IBM851' => 'IBM851', 'IBM852' => 'IBM852', 'IBM855' => 'IBM855', 'IBM857' => 'IBM857', 'IBM860' => 'IBM860', 'IBM861' => 'IBM861', 'IBM862' => 'IBM862', 'IBM863' => 'IBM863', 'IBM864' => 'IBM864', 'IBM865' => 'IBM865', 'IBM866' => 'IBM866', 'IBM868' => 'IBM868', 'IBM869' => 'IBM869', 'IBM870' => 'IBM870', 'IBM871' => 'IBM871', 'IBM874' => 'IBM874', 'IBM875' => 'IBM875', 'IBM880' => 'IBM880', 'IBM891' => 'IBM891', 'IBM903' => 'IBM903', 'IBM904' => 'IBM904', 'IBM905' => 'IBM905', 'IBM918' => 'IBM918', 'IEC_P27-1' => 'IEC_P27_1', 'INIS-8' => 'INIS_8', 'INIS-CYRILLIC' => 'INIS_CYRILLIC', 'INIS' => 'INIS', 'ISO-8859-1' => 'ISO_8859_1', 'ISO-8859-10' => 'ISO_8859_10', 'ISO-8859-11' => 'ISO_8859_11', 'ISO-8859-13' => 'ISO_8859_13', 'ISO-8859-14' => 'ISO_8859_14', 'ISO-8859-15' => 'ISO_8859_15', 'ISO-8859-16' => 'ISO_8859_16', 'ISO-8859-2' => 'ISO_8859_2', 'ISO-8859-3' => 'ISO_8859_3', 'ISO-8859-4' => 'ISO_8859_4', 'ISO-8859-5' => 'ISO_8859_5', 'ISO-8859-6' => 'ISO_8859_6', 'ISO-8859-7' => 'ISO_8859_7', 'ISO-8859-8' => 'ISO_8859_8', 'ISO-8859-9' => 'ISO_8859_9', 'ISO_10367-BOX' => 'ISO_10367_BOX', 'ISO_2033-1983' => 'ISO_2033_1983', 'ISO_5427-EXT' => 'ISO_5427_EXT', 'ISO_5427' => 'ISO_5427', 'ISO_5428' => 'ISO_5428', 'KOI-8' => 'KOI_8', 'KOI8-R' => 'KOI8_R', 'KOI8-RU' => 'KOI8_RU', 'KOI8-T' => 'KOI8_T', 'KOI8-U' => 'KOI8_U', 'LATIN-GREEK-1' => 'LATIN_GREEK_1', 'LATIN-GREEK' => 'LATIN_GREEK', 'MACINTOSH' => 'MACINTOSH', 'MACARABIC' => 'MACARABIC', 'MACCYRILLIC' => 'MACCYRILLIC', 'MACCROATIAN' => 'MACCROATIAN', 'MACGREEK' => 'MACGREEK', 'MACHEBREW' => 'MACHEBREW', 'MACICELAND' => 'MACICELAND', 'MACROMANIA' => 'MACROMANIA', 'MACTHAI' => 'MACTHAI', 'MACTURKISH' => 'MACTURKISH', 'MACUKRAINE' => 'MACUKRAINE', 'MAC-IS' => 'MAC_IS', 'MAC-SAMI' => 'MAC_SAMI', 'MAC-UK' => 'MAC_UK', 'NATS-DANO' => 'NATS_DANO', 'NATS-SEFI' => 'NATS_SEFI', 'NEXTSTEP' => 'NEXTSTEP', 'TIS-620' => 'TIS_620', 'UTF-8' => 'UTF_8', 'VISCII' => 'VISCII', 'WIN-SAMI-2' => 'SAMI_WS2', 'WINDOWS-1250' => 'CP1250', 'WINDOWS-1251' => 'CP1251', 'WINDOWS-1252' => 'CP1252', 'WINDOWS-1253' => 'CP1253', 'WINDOWS-1254' => 'CP1254', 'WINDOWS-1256' => 'CP1256', 'WINDOWS-1257' => 'CP1257', 'US-ASCII' => 'US_ASCII', }; # These encodings are maybe available via Encode(3pm). $optional_conversions = { 'BIG5' => undef, 'BIG5-HKSCS' => undef, 'CN-GB' => undef, 'CN-GB-ISOIR165' => undef, 'CP1006' => undef, 'CP1026' => undef, 'CP1047' => undef, 'CP1361' => undef, 'CP949' => undef, 'CP37' => undef, 'CP424' => undef, 'CP500' => undef, 'CP737' => undef, 'CP775' => undef, 'CP856' => undef, 'CP874' => undef, 'CP875' => undef, 'CP932' => undef, 'CP936' => undef, 'CP950' => undef, 'EUC-JP' => undef, 'EUC-KR' => undef, 'EUC-TW' => undef, # mapping from 0xef to 0xff missing. # 'HP-ROMAN8' => undef, 'GB18030' => undef, 'HZ' => undef, 'IBM437' => undef, 'IBM850' => undef, 'IBM852' => undef, 'IBM855' => undef, 'IBM857' => undef, 'IBM860' => undef, 'IBM861' => undef, 'IBM862' => undef, 'IBM863' => undef, 'IBM864' => undef, 'IBM865' => undef, 'IBM866' => undef, 'IBM869' => undef, 'ISO-10646-UCS-2' => undef, 'ISO-10646-UCS-4' => undef, 'ISO-2022-JP' => undef, 'ISO-2022-JP-1' => undef, 'ISO-2022-KR' => undef, 'ISO-8859-1' => undef, 'ISO-8859-10' => undef, # This is broken in some versions of Encode. # 'ISO-8859-11' => undef, 'ISO-8859-13' => undef, 'ISO-8859-14' => undef, 'ISO-8859-15' => undef, # Errors at 0xa5 and 0xab. # 'ISO-8859-16' => undef, 'ISO-8859-2' => undef, 'ISO-8859-3' => undef, 'ISO-8859-4' => undef, 'ISO-8859-5' => undef, # Uses arabic digits in ascii range?! # 'ISO-8859-6' => undef, # 0xa1 and 0xa2 are incorrectly encoded. # 'ISO-8859-7' => undef, # 0xfd and 0xfe are missing. # 'ISO-8859-8' => undef, 'ISO-8859-9' => undef, 'ISO-IR-149' => undef, 'KOI8-R' => undef, # 0x95 is BULLET, not BULLET OPERATOR. # 'KOI8-U' => undef, # Seems to be messed up in certain Encode versions. # 'MACINTOSH' => undef, # TODO: Check other Mac encodings for correctness. # Nextstep is completely broken in my version of Encode. # 'NEXTSTEP' => undef, 'SHIFT_JIS' => undef, 'UCS-2BE' => undef, 'UCS-2LE' => undef, 'UCS-4BE' => undef, 'UCS-4LE' => undef, 'US-ASCII' => undef, 'UTF-16' => undef, 'UTF-16BE' => undef, 'UTF-16LE' => undef, 'UTF-32' => undef, 'UTF-32BE' => undef, 'UTF-32LE' => undef, 'UTF-8' => undef, # 0x86 is missing, 0xa6 is incorrectly encoded. # 'VISCII' => undef, 'WINDOWS-1250' => undef, 'WINDOWS-1251' => undef, 'WINDOWS-1252' => undef, 'WINDOWS-1253' => undef, 'WINDOWS-1254' => undef, 'WINDOWS-1255' => undef, 'WINDOWS-1256' => undef, 'WINDOWS-1257' => undef, 'WINDOWS-1258' => undef, }; my $has_encode; sub resolveAlias { my (undef, $encoding) = @_; $encoding = uc $encoding; return $encoding if exists $conversions->{$encoding}; return $encoding if exists $optional_conversions->{$encoding}; require Locale::Recode::_Aliases; my $resolved = Locale::Recode::_Aliases::ALIASES()->{$encoding}; return $resolved if $resolved; return; } sub isSupported { my ($class, $encoding) = @_; return unless defined $encoding && length $encoding; $encoding = uc $encoding; my $mimename = $class->resolveAlias ($encoding); return unless $mimename; # Determine the correct module. if (exists $optional_conversions->{$mimename}) { unless (defined $has_encode) { eval "require Encode"; $has_encode = !$@; if ($has_encode) { require Encode::Alias; # Add missing real names. Encode::Alias::define_alias (MS_KANJI => 'ShiftJIS'); Encode::Alias::define_alias ('CN-GB' => 'EUC-CN'); } } if ($has_encode) { # Now check whether Encode really supports that encoding. eval "Encode::encode ('$mimename', 'x')"; unless ($@) { $conversions->{$mimename} = '_Encode'; } delete $optional_conversions->{$mimename}; } } return $conversions->{$mimename} if exists $conversions->{$mimename}; return; } sub listSupported { my ($class) = @_; foreach my $opt (keys %$optional_conversions) { $class->isSupported ($opt); } my @list = keys %$conversions; return @list; } # Find a conversion path. sub findPath { my ($class, $from, $to) = @_; $from = 'INTERNAL' eq uc $from ? 'INTERNAL' : $class->resolveAlias ($from); $to = 'INTERNAL' eq uc $to ? 'INTERNAL' : $class->resolveAlias ($to); return unless $from && $to; return [] if $from eq $to; my $from_module = $class->isSupported ($from); my $to_module = $class->isSupported ($to); if (!$from_module) { if ('INTERNAL' eq $from) { $from_module = $to_module or return; } else { return; } } if (!$to_module) { if ('INTERNAL' eq $to) { $to_module = $from_module or return; } else { return; } } if ($from_module eq $to_module || $to eq 'INTERNAL' || $to eq 'UTF-8') { return [[ $from_module, $from, $to ]]; } elsif ($from eq 'INTERNAL') { return [[ $to_module, $from, $to ]]; } else { return [[ $from_module, $from, 'INTERNAL' ], [ $to_module, 'INTERNAL', $to ]]; } } # TODO: check for # 7bit-jis # AdobeStandardEncoding # AdobeSymbol # AdobeZdingbat # ascii-ctrl # big5ext # big5plus # cccii # cns11643-1 # cns11643-2 # cns11643-3 # cns11643-4 # cns11643-5 # cns11643-6 # cns11643-7 # cns11643-f # dingbats # gb12345-raw # gb2312-raw # gsm0338 # jis0201-raw # jis0208-raw # jis0212-raw # koi8-f # MIME-B # MIME-Header # MIME-Q # posix-bc # symbol # unisys 1; __END__ =head1 NAME Locale::Recode::_Conversions - Internal Table of Known Conversions =head1 SYNOPSIS use Locale::Recode::_Conversions This module is internal to libintl. Do not use it directly! =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]N]]Recode/_Aliases.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Internally known aliases for charsets. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::Recode::_Aliases; use constant ALIASES => { '1047' => 'IBM1047', '437' => 'IBM437', '850' => 'IBM850', '851' => 'IBM851', '852' => 'IBM852', '855' => 'IBM855', '857' => 'IBM857', '860' => 'IBM860', '861' => 'IBM861', '862' => 'IBM862', '863' => 'IBM863', '865' => 'IBM865', '866' => 'IBM866', '869' => 'IBM869', '904' => 'IBM904', 'ANSI_X3.4-1968' => 'US-ASCII', 'ANSI_X3.4-1986' => 'US-ASCII', 'ARABIC' => 'ISO-8859-6', 'ARABIC7' => 'ASMO_449', 'ASCII' => 'US-ASCII', 'ASMO-708' => 'ISO-8859-6', 'ATARIST' => 'ATARI-ST', 'ATARIST-EURO' => 'ATARI-ST-EURO', 'BIG-5' => 'BIG5', 'BIG-FIVE' => 'BIG5', 'BIG5-ETEN' => 'BIG5', 'BIG5HKSCS' => 'BIG5-HKSCS', 'BIGFIVE' => 'BIG5', 'CA' => 'CSA_Z243.4-1985-1', 'CCSID00924' => 'IBM00924', 'CCSID01140' => 'IBM01140', 'CCSID01141' => 'IBM01141', 'CCSID01142' => 'IBM01142', 'CCSID01143' => 'IBM01143', 'CCSID01144' => 'IBM01144', 'CCSID01145' => 'IBM01145', 'CCSID01146' => 'IBM01146', 'CCSID01147' => 'IBM01147', 'CCSID01148' => 'IBM01148', 'CCSID01149' => 'IBM01149', 'CHINESE' => 'GB_2312-80', 'CN' => 'GB_1988-80', 'CN-BIG5' => 'BIG5', 'CP-AR' => 'IBM868', 'CP-GR' => 'IBM869', 'CP-HU' => 'CWI', 'CP-IS' => 'IBM861', 'CP00924' => 'IBM00924', 'CP01140' => 'IBM01140', 'CP01141' => 'IBM01141', 'CP01142' => 'IBM01142', 'CP01143' => 'IBM01143', 'CP01144' => 'IBM01144', 'CP01145' => 'IBM01145', 'CP01146' => 'IBM01146', 'CP01147' => 'IBM01147', 'CP01148' => 'IBM01148', 'CP01149' => 'IBM01149', 'CP037' => 'IBM037', 'CP038' => 'IBM038', 'CP1004' => 'IBM1004', 'CP1026' => 'IBM1026', 'CP1047' => 'IBM1047', 'CP1250' => 'WINDOWS-1250', 'CP1251' => 'WINDOWS-1251', 'CP1252' => 'WINDOWS-1252', 'CP1253' => 'WINDOWS-1253', 'CP1254' => 'WINDOWS-1254', 'CP1255' => 'WINDOWS-1255', 'CP1256' => 'WINDOWS-1256', 'CP1257' => 'WINDOWS-1257', 'CP1258' => 'WINDOWS-1258', 'CP154' => 'PTCP154', 'CP273' => 'IBM273', 'CP274' => 'IBM274', 'CP275' => 'IBM275', 'CP278' => 'IBM278', 'CP280' => 'IBM280', 'CP281' => 'IBM281', 'CP284' => 'IBM284', 'CP285' => 'IBM285', 'CP290' => 'IBM290', 'CP297' => 'IBM297', 'CP367' => 'US-ASCII', 'CP420' => 'IBM420', 'CP423' => 'IBM423', 'CP424' => 'IBM424', 'CP437' => 'IBM437', 'CP500' => 'IBM500', 'CP775' => 'IBM775', 'CP819' => 'ISO-8859-1', 'CP850' => 'IBM850', 'CP851' => 'IBM851', 'CP852' => 'IBM852', 'CP855' => 'IBM855', 'CP857' => 'IBM857', 'CP860' => 'IBM860', 'CP861' => 'IBM861', 'CP862' => 'IBM862', 'CP863' => 'IBM863', 'CP864' => 'IBM864', 'CP865' => 'IBM865', 'CP866' => 'IBM866', 'CP868' => 'IBM868', 'CP869' => 'IBM869', 'CP870' => 'IBM870', 'CP871' => 'IBM871', 'CP874' => 'IBM874', 'CP875' => 'IBM875', 'CP880' => 'IBM880', 'CP891' => 'IBM891', 'CP903' => 'IBM903', 'CP904' => 'IBM904', 'CP905' => 'IBM905', 'CP918' => 'IBM918', 'CP936' => 'GBK', 'CSA7-1' => 'CSA_Z243.4-1985-1', 'CSA7-2' => 'CSA_Z243.4-1985-2', 'CSADOBESTANDARDENCODING' => 'ADOBE-STANDARD-ENCODING', 'CSASCII' => 'US-ASCII', 'CSA_T500-1983' => 'ANSI_X3.110-1983', 'CSBIG5' => 'BIG5', 'CSBOCU-1' => 'BOCU-1', 'CSCESU-8' => 'CESU-8', 'CSDECMCS' => 'DEC-MCS', 'CSDKUS' => 'DK-US', 'CSEBCDICATDEA' => 'EBCDIC-AT-DE-A', 'CSEBCDICCAFR' => 'EBCDIC-CA-FR', 'CSEBCDICDKNO' => 'EBCDIC-DK-NO', 'CSEBCDICDKNOA' => 'EBCDIC-DK-NO-A', 'CSEBCDICES' => 'EBCDIC-ES', 'CSEBCDICESA' => 'EBCDIC-ES-A', 'CSEBCDICESS' => 'EBCDIC-ES-S', 'CSEBCDICFISE' => 'EBCDIC-FI-SE', 'CSEBCDICFISEA' => 'EBCDIC-FI-SE-A', 'CSEBCDICFR' => 'EBCDIC-FR', 'CSEBCDICIT' => 'EBCDIC-IT', 'CSEBCDICPT' => 'EBCDIC-PT', 'CSEBCDICUK' => 'EBCDIC-UK', 'CSEBCDICUS' => 'EBCDIC-US', 'CSEUCFIXWIDJAPANESE' => 'EXTENDED_UNIX_CODE_FIXED_WIDTH_FOR_JAPANESE', 'CSEUCKR' => 'EUC-KR', 'CSEUCPKDFMTJAPANESE' => 'EUC-JP', 'CSEUCTW' => 'EUC-TW', 'CSGB2312' => 'GB2312', 'CSHALFWIDTHKATAKANA' => 'JIS_X0201', 'CSHPDESKTOP' => 'HP-DESKTOP', 'CSHPLEGAL' => 'HP-LEGAL', 'CSHPMATH8' => 'HP-MATH8', 'CSHPPIFONT' => 'HP-PI-FONT', 'CSHPPSMATH' => 'ADOBE-SYMBOL-ENCODING', 'CSHPROMAN8' => 'HP-ROMAN8', 'CSIBBM904' => 'IBM904', 'CSIBM037' => 'IBM037', 'CSIBM038' => 'IBM038', 'CSIBM1026' => 'IBM1026', 'CSIBM273' => 'IBM273', 'CSIBM274' => 'IBM274', 'CSIBM275' => 'IBM275', 'CSIBM277' => 'IBM277', 'CSIBM278' => 'IBM278', 'CSIBM280' => 'IBM280', 'CSIBM281' => 'IBM281', 'CSIBM284' => 'IBM284', 'CSIBM285' => 'IBM285', 'CSIBM290' => 'IBM290', 'CSIBM297' => 'IBM297', 'CSIBM420' => 'IBM420', 'CSIBM423' => 'IBM423', 'CSIBM424' => 'IBM424', 'CSIBM500' => 'IBM500', 'CSIBM851' => 'IBM851', 'CSIBM855' => 'IBM855', 'CSIBM857' => 'IBM857', 'CSIBM860' => 'IBM860', 'CSIBM861' => 'IBM861', 'CSIBM863' => 'IBM863', 'CSIBM864' => 'IBM864', 'CSIBM865' => 'IBM865', 'CSIBM866' => 'IBM866', 'CSIBM868' => 'IBM868', 'CSIBM869' => 'IBM869', 'CSIBM870' => 'IBM870', 'CSIBM871' => 'IBM871', 'CSIBM880' => 'IBM880', 'CSIBM891' => 'IBM891', 'CSIBM903' => 'IBM903', 'CSIBM905' => 'IBM905', 'CSIBM918' => 'IBM918', 'CSIBMEBCDICATDE' => 'EBCDIC-AT-DE', 'CSIBMSYMBOLS' => 'IBM-SYMBOLS', 'CSIBMTHAI' => 'IBM-THAI', 'CSINVARIANT' => 'INVARIANT', 'CSISO102T617BIT' => 'T.61-7BIT', 'CSISO10367BOX' => 'ISO_10367-BOX', 'CSISO10646UTF1' => 'ISO-10646-UTF-1', 'CSISO10SWEDISH' => 'SEN_850200_B', 'CSISO111ECMACYRILLIC' => 'ECMA-CYRILLIC', 'CSISO11SWEDISHFORNAMES' => 'SEN_850200_C', 'CSISO121CANADIAN1' => 'CSA_Z243.4-1985-1', 'CSISO122CANADIAN2' => 'CSA_Z243.4-1985-2', 'CSISO123CSAZ24341985GR' => 'CSA_Z243.4-1985-GR', 'CSISO128T101G2' => 'T.101-G2', 'CSISO139CSN369103' => 'CSN_369103', 'CSISO13JISC6220JP' => 'JIS_C6220-1969-JP', 'CSISO141JUSIB1002' => 'JUS_I.B1.002', 'CSISO143IECP271' => 'IEC_P27-1', 'CSISO146SERBIAN' => 'JUS_I.B1.003-SERB', 'CSISO147MACEDONIAN' => 'JUS_I.B1.003-MAC', 'CSISO14JISC6220RO' => 'JIS_C6220-1969-RO', 'CSISO150' => 'GREEK-CCITT', 'CSISO150GREEKCCITT' => 'GREEK-CCITT', 'CSISO151CUBA' => 'NC_NC00-10:81', 'CSISO153GOST1976874' => 'GOST_19768-74', 'CSISO158LAP' => 'LATIN-LAP', 'CSISO159JISX02121990' => 'JIS_X0212-1990', 'CSISO15ITALIAN' => 'IT', 'CSISO16PORTUGUESE' => 'PT', 'CSISO17SPANISH' => 'ES', 'CSISO18GREEK7OLD' => 'GREEK7-OLD', 'CSISO19LATINGREEK' => 'LATIN-GREEK', 'CSISO2022JP' => 'ISO-2022-JP', 'CSISO2022JP2' => 'ISO-2022-JP-2', 'CSISO2022KR' => 'ISO-2022-KR', 'CSISO2033' => 'ISO_2033-1983', 'CSISO21GERMAN' => 'DIN_66003', 'CSISO25FRENCH' => 'NF_Z_62-010_(1973)', 'CSISO27LATINGREEK1' => 'LATIN-GREEK-1', 'CSISO2INTLREFVERSION' => 'ISO_646.IRV:1983', 'CSISO42JISC62261978' => 'JIS_C6226-1978', 'CSISO47BSVIEWDATA' => 'BS_VIEWDATA', 'CSISO49INIS' => 'INIS', 'CSISO4UNITEDKINGDOM' => 'BS_4730', 'CSISO50INIS8' => 'INIS-8', 'CSISO51INISCYRILLIC' => 'INIS-CYRILLIC', 'CSISO5427CYRILLIC' => 'ISO_5427', 'CSISO5428GREEK' => 'ISO_5428:1980', 'CSISO57GB1988' => 'GB_1988-80', 'CSISO58GB231280' => 'GB_2312-80', 'CSISO60DANISHNORWEGIAN' => 'NS_4551-1', 'CSISO60NORWEGIAN1' => 'NS_4551-1', 'CSISO61NORWEGIAN2' => 'NS_4551-2', 'CSISO646BASIC1983' => 'ISO_646.BASIC:1983', 'CSISO646DANISH' => 'DS_2089', 'CSISO6937ADD' => 'ISO_6937-2-25', 'CSISO69FRENCH' => 'NF_Z_62-010', 'CSISO70VIDEOTEXSUPP1' => 'VIDEOTEX-SUPPL', 'CSISO84PORTUGUESE2' => 'PT2', 'CSISO85SPANISH2' => 'ES2', 'CSISO86HUNGARIAN' => 'MSZ_7795.3', 'CSISO87JISX0208' => 'JIS_C6226-1983', 'CSISO88596E' => 'ISO-8859-6-E', 'CSISO88596I' => 'ISO-8859-6-I', 'CSISO88598E' => 'ISO-8859-8-E', 'CSISO88598I' => 'ISO-8859-8-I', 'CSISO8859SUPP' => 'ISO_8859-SUPP', 'CSISO88GREEK7' => 'GREEK7', 'CSISO89ASMO449' => 'ASMO_449', 'CSISO90' => 'ISO-IR-90', 'CSISO91JISC62291984A' => 'JIS_C6229-1984-A', 'CSISO92JISC62991984B' => 'JIS_C6229-1984-B', 'CSISO93JIS62291984BADD' => 'JIS_C6229-1984-B-ADD', 'CSISO94JIS62291984HAND' => 'JIS_C6229-1984-HAND', 'CSISO95JIS62291984HANDADD' => 'JIS_C6229-1984-HAND-ADD', 'CSISO96JISC62291984KANA' => 'JIS_C6229-1984-KANA', 'CSISO99NAPLPS' => 'ANSI_X3.110-1983', 'CSISOLATIN1' => 'ISO-8859-1', 'CSISOLATIN2' => 'ISO-8859-2', 'CSISOLATIN3' => 'ISO-8859-3', 'CSISOLATIN4' => 'ISO-8859-4', 'CSISOLATIN5' => 'ISO-8859-9', 'CSISOLATIN6' => 'ISO-8859-10', 'CSISOLATINARABIC' => 'ISO-8859-6', 'CSISOLATINCYRILLIC' => 'ISO-8859-5', 'CSISOLATINGREEK' => 'ISO-8859-7', 'CSISOLATINHEBREW' => 'ISO-8859-8', 'CSISOTEXTCOMM' => 'ISO_6937-2-ADD', 'CSJISENCODING' => 'JIS_ENCODING', 'CSKOI8R' => 'KOI8-R', 'CSKSC56011987' => 'KS_C_5601-1987', 'CSKSC5636' => 'KSC5636', 'CSMACINTOSH' => 'MACINTOSH', 'CSMICROSOFTPUBLISHING' => 'MICROSOFT-PUBLISHING', 'CSMNEM' => 'MNEM', 'CSMNEMONIC' => 'MNEMONIC', 'CSNATSDANO' => 'NATS-DANO', 'CSNATSDANOADD' => 'NATS-DANO-ADD', 'CSNATSSEFI' => 'NATS-SEFI', 'CSNATSSEFIADD' => 'NATS-SEFI-ADD', 'CSPC775BALTIC' => 'IBM775', 'CSPC850MULTILINGUAL' => 'IBM850', 'CSPC862LATINHEBREW' => 'IBM862', 'CSPC8CODEPAGE437' => 'IBM437', 'CSPC8DANISHNORWEGIAN' => 'PC8-DANISH-NORWEGIAN', 'CSPC8TURKISH' => 'PC8-TURKISH', 'CSPCP852' => 'IBM852', 'CSPTCP154' => 'PTCP154', 'CSSHIFTJIS' => 'SHIFT_JIS', 'CSUCS4' => 'ISO-10646-UCS-4', 'CSUNICODE' => 'ISO-10646-UCS-2', 'CSUNICODE11' => 'UNICODE-1-1', 'CSUNICODE11UTF7' => 'UNICODE-1-1-UTF-7', 'CSUNICODEASCII' => 'ISO-10646-UCS-BASIC', 'CSUNICODEIBM1264' => 'ISO-UNICODE-IBM-1264', 'CSUNICODEIBM1265' => 'ISO-UNICODE-IBM-1265', 'CSUNICODEIBM1268' => 'ISO-UNICODE-IBM-1268', 'CSUNICODEIBM1276' => 'ISO-UNICODE-IBM-1276', 'CSUNICODELATIN1' => 'ISO-10646-UNICODE-LATIN1', 'CSUNKNOWN8BIT' => 'UNKNOWN-8BIT', 'CSUSDK' => 'US-DK', 'CSVENTURAINTERNATIONAL' => 'VENTURA-INTERNATIONAL', 'CSVENTURAMATH' => 'VENTURA-MATH', 'CSVENTURAUS' => 'VENTURA-US', 'CSVIQR' => 'VIQR', 'CSVISCII' => 'VISCII', 'CSWINDOWS30LATIN1' => 'ISO-8859-1-WINDOWS-3.0-LATIN-1', 'CSWINDOWS31J' => 'WINDOWS-31J', 'CSWINDOWS31LATIN1' => 'ISO-8859-1-WINDOWS-3.1-LATIN-1', 'CSWINDOWS31LATIN2' => 'ISO-8859-2-WINDOWS-LATIN-2', 'CSWINDOWS31LATIN5' => 'ISO-8859-9-WINDOWS-LATIN-5', 'CUBA' => 'NC_NC00-10:81', 'CWI-2' => 'CWI', 'CYRILLIC' => 'ISO-8859-5', 'CYRILLIC-ASIAN' => 'PTCP154', 'DE' => 'DIN_66003', 'DEC' => 'DEC-MCS', 'DK' => 'DS_2089', 'DS2089' => 'DS_2089', 'E13B' => 'ISO_2033-1983', 'EBCDIC-BE' => 'IBM274', 'EBCDIC-BR' => 'IBM275', 'EBCDIC-CP-AR1' => 'IBM420', 'EBCDIC-CP-AR2' => 'IBM918', 'EBCDIC-CP-BE' => 'IBM500', 'EBCDIC-CP-CA' => 'IBM037', 'EBCDIC-CP-CH' => 'IBM500', 'EBCDIC-CP-DK' => 'IBM277', 'EBCDIC-CP-ES' => 'IBM284', 'EBCDIC-CP-FI' => 'IBM278', 'EBCDIC-CP-FR' => 'IBM297', 'EBCDIC-CP-GB' => 'IBM285', 'EBCDIC-CP-GR' => 'IBM423', 'EBCDIC-CP-HE' => 'IBM424', 'EBCDIC-CP-IS' => 'IBM871', 'EBCDIC-CP-IT' => 'IBM280', 'EBCDIC-CP-NL' => 'IBM037', 'EBCDIC-CP-NO' => 'IBM277', 'EBCDIC-CP-ROECE' => 'IBM870', 'EBCDIC-CP-SE' => 'IBM278', 'EBCDIC-CP-TR' => 'IBM905', 'EBCDIC-CP-US' => 'IBM037', 'EBCDIC-CP-WT' => 'IBM037', 'EBCDIC-CP-YU' => 'IBM870', 'EBCDIC-CYRILLIC' => 'IBM880', 'EBCDIC-DE-273+EURO' => 'IBM01141', 'EBCDIC-DK-277+EURO' => 'IBM01142', 'EBCDIC-ES-284+EURO' => 'IBM01145', 'EBCDIC-FI-278+EURO' => 'IBM01143', 'EBCDIC-FR-297+EURO' => 'IBM01147', 'EBCDIC-GB-285+EURO' => 'IBM01146', 'EBCDIC-GREEK' => 'IBM875', 'EBCDIC-INT' => 'IBM038', 'EBCDIC-INT1' => 'IBM256', 'EBCDIC-INTERNATIONAL-500+EURO' => 'IBM01148', 'EBCDIC-IS-871+EURO' => 'IBM01149', 'EBCDIC-IT-280+EURO' => 'IBM01144', 'EBCDIC-JP-E' => 'IBM281', 'EBCDIC-JP-KANA' => 'IBM290', 'EBCDIC-LATIN9--EURO' => 'IBM00924', 'EBCDIC-NO-277+EURO' => 'IBM01142', 'EBCDIC-SE-278+EURO' => 'IBM01143', 'EBCDIC-US-37+EURO' => 'IBM01140', 'ECMA-114' => 'ISO-8859-6', 'ECMA-118' => 'ISO-8859-7', 'ELOT_928' => 'ISO-8859-7', 'EUC-CN' => 'CN-GB', 'EUCCN' => 'CN-GB', 'EUCJP' => 'EUC-JP', 'EUCKR' => 'EUC-KR', 'EUCTW' => 'EUC-TW', 'EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE' => 'EUC-JP', 'FI' => 'SEN_850200_B', 'FR' => 'NF_Z_62-010', 'FRISS' => 'EBCDIC-IS-FRISS', 'GB' => 'BS_4730', 'GB2312' => 'CN-GB', 'GBK' => 'CP936', 'GREEK' => 'ISO-8859-7', 'GREEK8' => 'ISO-8859-7', 'HEBREW' => 'ISO-8859-8', 'HU' => 'MSZ_7795.3', 'HZ-GB-2312' => 'HZ', 'IBM367' => 'US-ASCII', 'IBM775' => 'CP775', 'IBM819' => 'ISO-8859-1', 'IRV' => 'ISO_646.IRV:1983', 'ISO-10646' => 'ISO-10646-UNICODE-LATIN1', 'ISO-CELTIC' => 'ISO-8859-14', 'ISO-IR-10' => 'SEN_850200_B', 'ISO-IR-100' => 'ISO-8859-1', 'ISO-IR-101' => 'ISO-8859-2', 'ISO-IR-102' => 'T.61-7BIT', 'ISO-IR-109' => 'ISO-8859-3', 'ISO-IR-11' => 'SEN_850200_C', 'ISO-IR-110' => 'ISO-8859-4', 'ISO-IR-111' => 'ECMA-CYRILLIC', 'ISO-IR-121' => 'CSA_Z243.4-1985-1', 'ISO-IR-122' => 'CSA_Z243.4-1985-2', 'ISO-IR-123' => 'CSA_Z243.4-1985-GR', 'ISO-IR-126' => 'ISO-8859-7', 'ISO-IR-127' => 'ISO-8859-6', 'ISO-IR-128' => 'T.101-G2', 'ISO-IR-13' => 'JIS_C6220-1969-JP', 'ISO-IR-138' => 'ISO-8859-8', 'ISO-IR-139' => 'CSN_369103', 'ISO-IR-14' => 'JIS_C6220-1969-RO', 'ISO-IR-141' => 'JUS_I.B1.002', 'ISO-IR-142' => 'ISO_6937-2-ADD', 'ISO-IR-143' => 'IEC_P27-1', 'ISO-IR-144' => 'ISO-8859-5', 'ISO-IR-146' => 'JUS_I.B1.003-SERB', 'ISO-IR-147' => 'JUS_I.B1.003-MAC', 'ISO-IR-148' => 'ISO-8859-9', 'ISO-IR-149' => 'KS_C_5601-1987', 'ISO-IR-15' => 'IT', 'ISO-IR-150' => 'GREEK-CCITT', 'ISO-IR-151' => 'NC_NC00-10:81', 'ISO-IR-152' => 'ISO_6937-2-25', 'ISO-IR-153' => 'GOST_19768-74', 'ISO-IR-154' => 'ISO_8859-SUPP', 'ISO-IR-155' => 'ISO_10367-BOX', 'ISO-IR-157' => 'ISO-8859-10', 'ISO-IR-158' => 'LATIN-LAP', 'ISO-IR-159' => 'JIS_X0212-1990', 'ISO-IR-16' => 'PT', 'ISO-IR-166' => 'TIS-620', 'ISO-IR-17' => 'ES', 'ISO-IR-179' => 'ISO-8859-13', 'ISO-IR-18' => 'GREEK7-OLD', 'ISO-IR-19' => 'LATIN-GREEK', 'ISO-IR-199' => 'ISO-8859-14', 'ISO-IR-2' => 'ISO_646.IRV:1983', 'ISO-IR-203' => 'ISO-8859-15', 'ISO-IR-21' => 'DIN_66003', 'ISO-IR-226' => 'ISO-8859-16', 'ISO-IR-25' => 'NF_Z_62-010_(1973)', 'ISO-IR-27' => 'LATIN-GREEK-1', 'ISO-IR-37' => 'ISO_5427', 'ISO-IR-4' => 'BS_4730', 'ISO-IR-42' => 'JIS_C6226-1978', 'ISO-IR-47' => 'BS_VIEWDATA', 'ISO-IR-49' => 'INIS', 'ISO-IR-50' => 'INIS-8', 'ISO-IR-51' => 'INIS-CYRILLIC', 'ISO-IR-54' => 'ISO_5427-EXT', 'ISO-IR-55' => 'ISO_5428', 'ISO-IR-57' => 'GB_1988-80', 'ISO-IR-58' => 'GB_2312-80', 'ISO-IR-6' => 'US-ASCII', 'ISO-IR-60' => 'NS_4551-1', 'ISO-IR-61' => 'NS_4551-2', 'ISO-IR-69' => 'NF_Z_62-010', 'ISO-IR-70' => 'VIDEOTEX-SUPPL', 'ISO-IR-79' => 'ISO-8859-13', 'ISO-IR-8-1' => 'NATS-SEFI', 'ISO-IR-8-2' => 'NATS-SEFI-ADD', 'ISO-IR-84' => 'PT2', 'ISO-IR-85' => 'ES2', 'ISO-IR-86' => 'MSZ_7795.3', 'ISO-IR-87' => 'JIS_C6226-1983', 'ISO-IR-88' => 'GREEK7', 'ISO-IR-89' => 'ASMO_449', 'ISO-IR-9-1' => 'NATS-DANO', 'ISO-IR-9-2' => 'NATS-DANO-ADD', 'ISO-IR-91' => 'JIS_C6229-1984-A', 'ISO-IR-92' => 'JIS_C6229-1984-B', 'ISO-IR-93' => 'JIS_C6229-1984-B-ADD', 'ISO-IR-94' => 'JIS_C6229-1984-HAND', 'ISO-IR-95' => 'JIS_C6229-1984-HAND-ADD', 'ISO-IR-96' => 'JIS_C6229-1984-KANA', 'ISO-IR-98' => 'ISO_2033-1983', 'ISO-IR-99' => 'ANSI_X3.110-1983', 'ISO5427CYRILLIC1981' => 'ISO_5427:1981', 'ISO646-CA' => 'CSA_Z243.4-1985-1', 'ISO646-CA2' => 'CSA_Z243.4-1985-2', 'ISO646-CN' => 'GB_1988-80', 'ISO646-CU' => 'NC_NC00-10:81', 'ISO646-DE' => 'DIN_66003', 'ISO646-DK' => 'DS_2089', 'ISO646-ES' => 'ES', 'ISO646-ES2' => 'ES2', 'ISO646-FI' => 'SEN_850200_B', 'ISO646-FR' => 'NF_Z_62-010', 'ISO646-FR1' => 'NF_Z_62-010_(1973)', 'ISO646-GB' => 'BS_4730', 'ISO646-HU' => 'MSZ_7795.3', 'ISO646-IT' => 'IT', 'ISO646-JP' => 'JIS_C6220-1969-RO', 'ISO646-JP-OCR-B' => 'JIS_C6229-1984-B', 'ISO646-KR' => 'KSC5636', 'ISO646-NO' => 'NS_4551-1', 'ISO646-NO2' => 'NS_4551-2', 'ISO646-PT' => 'PT', 'ISO646-PT2' => 'PT2', 'ISO646-SE' => 'SEN_850200_B', 'ISO646-SE2' => 'SEN_850200_C', 'ISO646-US' => 'US-ASCII', 'ISO646-YU' => 'JUS_I.B1.002', 'ISO_5427:1981' => 'ISO_5427-EXT', 'ISO_5428:1980' => 'ISO_5428', 'ISO_646.IRV:1991' => 'US-ASCII', 'ISO_8859-1' => 'ISO-8859-1', 'ISO_8859-1:1987' => 'ISO-8859-1', 'ISO_8859-10' => 'ISO-8859-10', 'ISO_8859-10:1992' => 'ISO-8859-10', 'ISO_8859-13' => 'ISO-8859-13', 'ISO_8859-14' => 'ISO-8859-14', 'ISO_8859-14:1998' => 'ISO-8859-14', 'ISO_8859-15' => 'ISO-8859-15', 'ISO_8859-15:1998' => 'ISO-8859-15', 'ISO_8859-16' => 'ISO-8859-16', 'ISO_8859-16:2001' => 'ISO-8859-16', 'ISO_8859-1:1987' => 'ISO-8859-1', 'ISO_8859-2' => 'ISO-8859-2', 'ISO_8859-2:1987' => 'ISO-8859-2', 'ISO_8859-3' => 'ISO-8859-3', 'ISO_8859-3:1988' => 'ISO-8859-3', 'ISO_8859-4' => 'ISO-8859-4', 'ISO_8859-4:1988' => 'ISO-8859-4', 'ISO_8859-5' => 'ISO-8859-5', 'ISO_8859-5:1988' => 'ISO-8859-5', 'ISO_8859-6' => 'ISO-8859-6', 'ISO_8859-6-E' => 'ISO-8859-6-E', 'ISO_8859-6-I' => 'ISO-8859-6-I', 'ISO_8859-6:1987' => 'ISO-8859-6', 'ISO_8859-7' => 'ISO-8859-7', 'ISO_8859-7:1987' => 'ISO-8859-7', 'ISO_8859-8' => 'ISO-8859-8', 'ISO_8859-8-E' => 'ISO-8859-8-E', 'ISO_8859-8-I' => 'ISO-8859-8-I', 'ISO_8859-8:1988' => 'ISO-8859-8', 'ISO_8859-9' => 'ISO-8859-9', 'ISO_8859-9:1989' => 'ISO-8859-9', 'ISO_9036' => 'ASMO_449', 'JIS_C6220-1969' => 'JIS_C6220-1969-JP', 'JIS_X0208-1983' => 'JIS_C6226-1983', 'JP' => 'JIS_C6220-1969-RO', 'JP-OCR-A' => 'JIS_C6229-1984-A', 'JP-OCR-B' => 'JIS_C6229-1984-B', 'JP-OCR-B-ADD' => 'JIS_C6229-1984-B-ADD', 'JP-OCR-HAND' => 'JIS_C6229-1984-HAND', 'JP-OCR-HAND-ADD' => 'JIS_C6229-1984-HAND-ADD', 'JS' => 'JUS_I.B1.002', 'KATAKANA' => 'JIS_C6220-1969-JP', 'KOREAN' => 'KS_C_5601-1987', 'KSC_5601' => 'KS_C_5601-1987', 'KS_C_5601-1989' => 'KS_C_5601-1987', 'L1' => 'ISO-8859-1', 'L10' => 'ISO-8859-16', 'L2' => 'ISO-8859-2', 'L3' => 'ISO-8859-3', 'L4' => 'ISO-8859-4', 'L5' => 'ISO-8859-9', 'L6' => 'ISO-8859-10', 'L7' => 'ISO-8859-13', 'L8' => 'ISO-8859-14', 'LAP' => 'LATIN-LAP', 'LATIN-9' => 'ISO-8859-15', 'LATIN1' => 'ISO-8859-1', 'LATIN1-2-5' => 'ISO_8859-SUPP', 'LATIN10' => 'ISO-8859-16', 'LATIN2' => 'ISO-8859-2', 'LATIN3' => 'ISO-8859-3', 'LATIN4' => 'ISO-8859-4', 'LATIN5' => 'ISO-8859-9', 'LATIN6' => 'ISO-8859-10', 'LATIN7' => 'ISO-8859-13', 'LATIN8' => 'ISO-8859-14', 'MAC' => 'MACINTOSH', 'MAC-ARABIC' => 'MACARABIC', 'MAC-CENTRALEUROPE' => 'MACCENTRALEUROPE', 'MAC-CROATIAN' => 'MACCROATIAN', 'MAC-CYRILLIC' => 'MACCYRILLIC', 'MAC-GREEK' => 'MACGREEK', 'MAC-HEBREW' => 'MACHEBREW', 'MAC-ICELAND' => 'MACICELAND', 'MAC-ROMANIA' => 'MACROMANIA', 'MAC-THAI' => 'MACTHAI', 'MAC-TURKISH' => 'MACTURKISH', 'MAC-UKRAINE' => 'MACUKRAINE', 'MACEDONIAN' => 'JUS_I.B1.003-MAC', 'MS-ARAB' => 'WINDOWS-1256', 'MS-ANSI' => 'WINDOWS-1252', 'MS-EE' => 'WINDOWS-1250', 'MS-CYRL' => 'WINDOWS-1251', 'MS-GREEK' => 'WINDOWS-1253', 'MS-HEBR' => 'WINDOWS-1255', 'MS-TURK' => 'WINDOWS-1254', 'MS936' => 'GBK', 'MS_KANJI' => 'SHIFT_JIS', 'NAPLPS' => 'ANSI_X3.110-1983', 'NO' => 'NS_4551-1', 'NO2' => 'NS_4551-2', 'OS2LATIN1' => 'IBM1004', 'PT154' => 'PTCP154', 'R8' => 'HP-ROMAN8', 'REF' => 'ISO_646.BASIC:1983', 'ROMAN8' => 'HP-ROMAN8', 'SE' => 'SEN_850200_B', 'SE2' => 'SEN_850200_C', 'SERBIAN' => 'JUS_I.B1.003-SERB', 'ST_SEV_358-88' => 'GOST_19768-74', 'T.61' => 'T.61-8BIT', 'TIS620' => 'TIS-620', 'TIS620-0' => 'TIS-620', 'TIS620.2529-1' => 'TIS-620', 'TIS620.2533-0' => 'TIS-620', 'TIS620.2533-1' => 'TIS-620', 'UHC' => 'CP949', 'UK' => 'BS_4730', 'US' => 'US-ASCII', 'VISCII1.1-1' => 'VISCII', 'WINBALTRIM' => 'WINDOWS-1257', 'WINDOWS-874' => 'CP874', 'WINDOWS-936' => 'GBK', 'WINDOWS-SAMI2' => 'WIN-SAMI-2', 'WS2' => 'WIN-SAMI-2', 'X0201' => 'JIS_X0201', 'X0201-7' => 'JIS_C6220-1969-JP', 'X0208' => 'JIS_C6226-1983', 'X0212' => 'JIS_X0212-1990', 'YU' => 'JUS_I.B1.002', 'X-ATARI-ST' => 'ATARI-ST', 'X-ATARIST' => 'ATARI-ST', 'X-ATARI-ST-EURO' => 'ATARI-ST-EURO', 'X-ATARIST-EURO' => 'ATARI-ST-EURO', 'X-MAC-ARABIC' => 'MACARABIC', 'X-MAC-CENTRALEUROPE' => 'MACCENTRALEUROPE', 'X-MAC-CROATIAN' => 'MACCROATIAN', 'X-MAC-CYRILLIC' => 'MACCYRILLIC', 'X-MAC-GREEK' => 'MACGREEK', 'X-MAC-HEBREW' => 'MACHEBREW', 'X-MAC-ICELAND' => 'MACICELAND', 'X-MAC-ROMANIA' => 'MACROMANIA', 'X-MAC-THAI' => 'MACTHAI', 'X-MAC-TURKISH' => 'MACTURKISH', 'X-MAC-UKRAINE' => 'MACUKRAINE', 'X-MACARABIC' => 'MACARABIC', 'X-MACCENTRALEUROPE' => 'MACCENTRALEUROPE', 'X-MACCROATIAN' => 'MACCROATIAN', 'X-MACCYRILLIC' => 'MACCYRILLIC', 'X-MACGREEK' => 'MACGREEK', 'X-MACHEBREW' => 'MACHEBREW', 'X-MACICELAND' => 'MACICELAND', 'X-MACROMANIA' => 'MACROMANIA', 'X-MACTHAI' => 'MACTHAI', 'X-MACTURKISH' => 'MACTURKISH', 'X-MACUKRAINE' => 'MACUKRAINE', }; 1; __END__ =head1 NAME Locale::Recode::_Aliases - Internal Charset Alias Database for libintl-perl =head1 SYNOPSIS use Locale::Recode::_Aliases die "This module is internal to libintl. Do not use it directly!\n"; =head1 DESCRIPTION Contains a list of codeset aliases that are known internally to libintl. =head1 CONSTANTS =over 4 =item ALIASES The constant B contains a hash reference the keys of which are internally known charset alias names all in uppercase. The corresponding value is the canonical name of the charset. =back =head1 BUGS The format of the lookup table will most probably change, do not rely on the current format! =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]3o<'<' Recode.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Portable character conversion for Perl. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::Recode; use strict; require Locale::Recode::_Conversions; my $loaded = {}; my $has_encode; sub new { my $class = ref($_[0]) || $_[0]; shift; my %args = @_; my $self = bless {}, $class; my ($from_codeset, $to_codeset) = @args{qw (from to)}; unless ($from_codeset && $to_codeset) { require Carp; Carp::croak (<new (from => FROM_CODESET, to => TO_CODESET); EOF } # Find a conversion path. my $path = Locale::Recode::_Conversions->findPath ($from_codeset, $to_codeset); unless ($path) { $self->{__error} = 'EINVAL'; return $self; } my @conversions = (); foreach (@$path) { my ($module, $from, $to) = @$_; unless ($loaded->{$module}) { eval "require Locale::RecodeData::$module"; if ($@) { $self->{__error} = $@; return $self; } $loaded->{$module} = 1; } my $module_name = "Locale::RecodeData::$module"; my $method = 'new'; my $object = $module_name->$method (from => $from, to => $to); push @conversions, $object; } $self->{__conversions} = \@conversions; return $self; } sub resolveAlias { my ($class, $alias) = @_; return Locale::Recode::_Conversions->resolveAlias ($alias); } sub getSupported { return [ Locale::Recode::_Conversions->listSupported ]; } sub getCharsets { my $self = shift; my %all = map { $_ => 1 } @{&getSupported}; require Locale::Recode::_Aliases; my $conversions = Locale::Recode::_Conversions->listSupported; foreach my $charset (keys %{Locale::Recode::_Aliases::ALIASES()}) { my $mime_name = $self->resolveAlias ($charset); next unless exists $all{$mime_name}; $all{$charset} = 1; } return [ keys %all ]; } sub recode { my $self = $_[0]; return if $self->{__error}; return 1 unless defined $_[1]; my $chain = $self->{__conversions}; foreach my $module (@$chain) { my $success = $module->_recode ($_[1]); unless ($success) { $self->{__error} = $module->_getError; return; } } return 1; } sub getError { my $self = shift; my $error = $self->{__error} or return; if ('EINVAL' eq $error) { return 'Invalid conversion'; } else { return $error; } } 1; __END__ =head1 NAME Locale::Recode - Object-Oriented Portable Charset Conversion =head1 SYNOPSIS use Locale::Recode; $cd = Locale::Recode->new (from => 'UTF-8', to => 'ISO-8859-1'); die $cd->getError if $cd->getError; $cd->recode ($text) or die $cd->getError; $mime_name = Locale::Recode->resolveAlias ('latin-1'); $supported = Locale::Recode->getSupported; $complete = Locale::Recode->getCharsets; =head1 DESCRIPTION This module provides routines that convert textual data from one codeset to another in a portable way. The module has been started before Encode(3) was written. It's main purpose today is to provide charset conversion even when Encode(3) is not available on the system. It should also work for older Perl versions without Unicode support. Internally Locale::Recode(3) will use Encode(3) whenever possible, to allow for a faster conversion and for a wider range of supported charsets, and will only fall back to the Perl implementation when Encode(3) is not available or does not support a particular charset that Locale::Recode(3) does. Locale::Recode(3) is part of libintl-perl, and it's main purpose is actually to implement a portable charset conversion framework for the message translation facilities described in Locale::TextDomain(3). =head1 CONSTRUCTOR The constructor C requires two named arguments: =over 4 =item B The encoding of the original data. Case doesn't matter, aliases are resolved. =item B The target encoding. Again, case doesn't matter, and aliases are resolved. =back The constructor will never fail. In case of an error, the object's internal state is set to bad and it will refuse to do any conversions. You can inquire the reason for the failure with the method getError(). =head1 OBJECT METHODS The following object methods are available. =over 4 =item B Converts B from the source encoding into the destination encoding. In case of success, a truth value is returned, false otherwise. You can inquire the reason for the failure with the method getError(). =item B Returns either false if the object is not in an error state or an error message. =back =head1 CLASS METHODS The object provides some additional class methods: =over 4 =item B Returns a reference to a list of all supported charsets. This may implicitly load additional Encode(3) conversions like Encode::HanExtra(3) which may produce considerable load on your system. The method is therefore not intended for regular use but rather for getting resp. displaying I a list of available encodings. The members of the list are all converted to uppercase! =item B Like getSupported() but also returns all available aliases. =back =head1 SUPPORTED CHARSETS The range of supported charsets is system-dependent. The following somewhat special charsets are always available: =over 4 =item B UTF-8 is available independently of your Perl version. For Perl 5.6 or better or in the presence of Encode(3), conversions are not done in Perl but with the interfaces provided by these facilities which are written in C, hence much faster. Encoding data I UTF-8 is fast, even if it is done in Perl. Decoding it in Perl may become quite slow. If you frequently have to decode UTF-8 with B you will probably want to make sure that you do that with Perl 5.6 or beter, or install Encode(3) to speed up things. =item B UTF-8 is fast to write but hard to read for applications. It is therefore not the worst for internal string representation but not far from that. Locale::Recode(3) stores strings internally as a reference to an array of integer values like most programming languages (Perl is an exception) do, trading memory for performance. The integer values are the UCS-4 codes of the characters in host byte order. The encoding B is directly available via Locale::Recode(3) but of course you should not really use it for data exchange, unless you know what you are doing. =back Locale::Recode(3) has native support for a plethora of other encodings, most of them 8 bit encodings that are fast to decode, including most encodings used on popular micros like the ISO-8859-* series of encodings, most Windows-* encodings (also known as CP*), Macintosh, Atari, etc. =head1 NAMES AND ALIASES Each charset resp. encoding is available internally under a unique name. Whenever the information was available, the preferred MIME name (see L) was chosen as the internal name. Alias handling is quite strict. The module does not make wild guesses at what you mean ("What's the meaning of the acronym JIS" is a valid alias for "7bit-jis" in Encode(3) ....) but aims at providing common aliases only. The same applies to so-called aliases that are really mistakes, like "utf8" for UTF-8. The module knows all aliases that are listed with the IANA character set registry (L), plus those known to libiconv version 1.8, and a bunch of additional ones. =head1 CONVERSION TABLES The conversion tables have either been taken from official sources like the IANA or the Unicode Consortium, from Bruno Haible's libiconv, or from the sources of the GNU libc and the regression tests for libintl-perl will check for conformance here. For some encodings this data differs from Encode(3)'s data which would cause these tests to fail. In these cases, the module will not invoke the Encode(3) methods, but will fall back to the internal implementation for the sake of consistency. The few encodings that are affected are so simple that you will not experience any real performance penalty unless you convert large chunks of data. But the package is not really intended for such use anyway, and since Encode(3) is relatively new, I rather think that the differences are bugs in Encode which will be fixed soon. =head1 BUGS The module should provide fall back conversions for other Unicode encoding schemes like UCS-2, UCS-4 (big- and little-endian). The pure Perl UTF-8 decoder will not always handle corrupt UTF-8 correctly, especially at the end and at the beginning of the string. This is not likely to be fixed, since the module's intention is not to be a consistency checker for UTF-8 data. =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Encode(3), iconv(3), iconv(1), recode(1), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]j gettext_xs.pmnu[#! /bin/false # vim: tabstop=4 # Perl XS implementation of Uniforum message translation. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::gettext_xs; require DynaLoader; require Exporter; use vars qw (%EXPORT_TAGS @EXPORT_OK @ISA); %EXPORT_TAGS = (locale_h => [ qw ( gettext dgettext dcgettext ngettext dngettext dcngettext pgettext dpgettext dcpgettext npgettext dnpgettext dcnpgettext textdomain bindtextdomain bind_textdomain_codeset ) ], libintl_h => [ qw (LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES LC_ALL) ], ); @EXPORT_OK = qw (gettext dgettext dcgettext ngettext dngettext dcngettext pgettext dpgettext dcpgettext npgettext dnpgettext dcnpgettext textdomain bindtextdomain bind_textdomain_codeset nl_putenv setlocale LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES LC_ALL); @ISA = qw (Exporter DynaLoader); bootstrap Locale::gettext_xs; require File::Spec; # Reimplement pgettext functions sub pgettext ($$) { my ($msgctxt, $msgid) = @_; my $msg_ctxt_id = join("\004", $msgctxt, $msgid); return Locale::gettext_xs::_pgettext_aux ("", $msg_ctxt_id, $msgid, Locale::gettext_xs::LC_MESSAGES()); } sub dpgettext ($$$) { my ($domain, $msgctxt, $msgid) = @_; my $msg_ctxt_id = join("\004", $msgctxt, $msgid); return Locale::gettext_xs::_pgettext_aux ($domain, $msg_ctxt_id, $msgid, Locale::gettext_xs::LC_MESSAGES()); } sub dcpgettext ($$$$) { my ($domain, $msgctxt, $msgid, $category) = @_; my $msg_ctxt_id = join("\004", $msgctxt, $msgid); return Locale::gettext_xs::_pgettext_aux ($domain, $msg_ctxt_id, $msgid, $category); } # Reimplement npgettext functions sub npgettext ($$$$) { my ($msgctxt, $msgid1, $msgid2, $n) = @_; my $msg_ctxt_id = join("\004", $msgctxt, $msgid1); return Locale::gettext_xs::_npgettext_aux ("", $msg_ctxt_id, $msgid1, $msgid2, $n, Locale::gettext_xs::LC_MESSAGES()); } sub dnpgettext ($$$$$) { my ($domain, $msgctxt, $msgid1, $msgid2, $n) = @_; my $msg_ctxt_id = join("\004", $msgctxt, $msgid1); return Locale::gettext_xs::_npgettext_aux ($domain, $msg_ctxt_id, $msgid1, $msgid2, $n, Locale::gettext_xs::LC_MESSAGES()); } sub dcnpgettext ($$$$$$) { my ($domain, $msgctxt, $msgid1, $msgid2, $n, $category) = @_; my $msg_ctxt_id = join("\004", $msgctxt, $msgid1); return Locale::gettext_xs::_npgettext_aux ($domain, $msg_ctxt_id, $msgid1, $msgid2, $n, $category); } # Wrapper function that converts Perl paths to OS paths. sub bindtextdomain ($;$) { my ($domain, $directory) = @_; if (defined $domain && length $domain && defined $directory && length $directory) { return Locale::gettext_xs::_bindtextdomain ($domain, File::Spec->catdir ($directory)); } else { return &Locale::gettext_xs::_bindtextdomain; } } # In the XS version, making the prototype optional, does not work. sub textdomain (;$) { my $domain = shift; if (defined $domain) { return Locale::gettext_xs::_textdomain ($domain); } else { return Locale::gettext_xs::_textdomain (""); } } sub nl_putenv ($) { my ($envspec) = @_; return unless defined $envspec; return unless length $envspec; return if substr ($envspec, 0, 1) eq '='; my ($var, $value) = split /=/, $envspec, 2; if ($^O eq 'MSWin32') { $value = '' unless defined $value; return unless Locale::gettext_xs::_nl_putenv ("$var=$value") == 0; if (length $value) { $ENV{$var} = $value; } else { delete $ENV{$var}; } } else { if (defined $value) { $ENV{$var} = $value; } else { delete $ENV{$var}; } } return 1; } 1; __END__ Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 tab-width: 4 End: PK]``RecodeData/IBM874.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM874. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM874; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x20ac, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2026, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f, 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17, 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f, 0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, 0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f, 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37, 0x0e38, 0x0e39, 0x0e3a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0e3f, 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47, 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4e, 0x0e4f, 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, 0x0e58, 0x0e59, 0x0e5a, 0x0e5b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xe2\x82\xac", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe2\x80\xa6", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\xa2", "\xe2\x80\x93", "\xe2\x80\x94", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa0", "\xe0\xb8\x81", "\xe0\xb8\x82", "\xe0\xb8\x83", "\xe0\xb8\x84", "\xe0\xb8\x85", "\xe0\xb8\x86", "\xe0\xb8\x87", "\xe0\xb8\x88", "\xe0\xb8\x89", "\xe0\xb8\x8a", "\xe0\xb8\x8b", "\xe0\xb8\x8c", "\xe0\xb8\x8d", "\xe0\xb8\x8e", "\xe0\xb8\x8f", "\xe0\xb8\x90", "\xe0\xb8\x91", "\xe0\xb8\x92", "\xe0\xb8\x93", "\xe0\xb8\x94", "\xe0\xb8\x95", "\xe0\xb8\x96", "\xe0\xb8\x97", "\xe0\xb8\x98", "\xe0\xb8\x99", "\xe0\xb8\x9a", "\xe0\xb8\x9b", "\xe0\xb8\x9c", "\xe0\xb8\x9d", "\xe0\xb8\x9e", "\xe0\xb8\x9f", "\xe0\xb8\xa0", "\xe0\xb8\xa1", "\xe0\xb8\xa2", "\xe0\xb8\xa3", "\xe0\xb8\xa4", "\xe0\xb8\xa5", "\xe0\xb8\xa6", "\xe0\xb8\xa7", "\xe0\xb8\xa8", "\xe0\xb8\xa9", "\xe0\xb8\xaa", "\xe0\xb8\xab", "\xe0\xb8\xac", "\xe0\xb8\xad", "\xe0\xb8\xae", "\xe0\xb8\xaf", "\xe0\xb8\xb0", "\xe0\xb8\xb1", "\xe0\xb8\xb2", "\xe0\xb8\xb3", "\xe0\xb8\xb4", "\xe0\xb8\xb5", "\xe0\xb8\xb6", "\xe0\xb8\xb7", "\xe0\xb8\xb8", "\xe0\xb8\xb9", "\xe0\xb8\xba", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe0\xb8\xbf", "\xe0\xb9\x80", "\xe0\xb9\x81", "\xe0\xb9\x82", "\xe0\xb9\x83", "\xe0\xb9\x84", "\xe0\xb9\x85", "\xe0\xb9\x86", "\xe0\xb9\x87", "\xe0\xb9\x88", "\xe0\xb9\x89", "\xe0\xb9\x8a", "\xe0\xb9\x8b", "\xe0\xb9\x8c", "\xe0\xb9\x8d", "\xe0\xb9\x8e", "\xe0\xb9\x8f", "\xe0\xb9\x90", "\xe0\xb9\x91", "\xe0\xb9\x92", "\xe0\xb9\x93", "\xe0\xb9\x94", "\xe0\xb9\x95", "\xe0\xb9\x96", "\xe0\xb9\x97", "\xe0\xb9\x98", "\xe0\xb9\x99", "\xe0\xb9\x9a", "\xe0\xb9\x9b", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xa0", 0x00000e01 => "\xa1", 0x00000e02 => "\xa2", 0x00000e03 => "\xa3", 0x00000e04 => "\xa4", 0x00000e05 => "\xa5", 0x00000e06 => "\xa6", 0x00000e07 => "\xa7", 0x00000e08 => "\xa8", 0x00000e09 => "\xa9", 0x00000e0a => "\xaa", 0x00000e0b => "\xab", 0x00000e0c => "\xac", 0x00000e0d => "\xad", 0x00000e0e => "\xae", 0x00000e0f => "\xaf", 0x00000e10 => "\xb0", 0x00000e11 => "\xb1", 0x00000e12 => "\xb2", 0x00000e13 => "\xb3", 0x00000e14 => "\xb4", 0x00000e15 => "\xb5", 0x00000e16 => "\xb6", 0x00000e17 => "\xb7", 0x00000e18 => "\xb8", 0x00000e19 => "\xb9", 0x00000e1a => "\xba", 0x00000e1b => "\xbb", 0x00000e1c => "\xbc", 0x00000e1d => "\xbd", 0x00000e1e => "\xbe", 0x00000e1f => "\xbf", 0x00000e20 => "\xc0", 0x00000e21 => "\xc1", 0x00000e22 => "\xc2", 0x00000e23 => "\xc3", 0x00000e24 => "\xc4", 0x00000e25 => "\xc5", 0x00000e26 => "\xc6", 0x00000e27 => "\xc7", 0x00000e28 => "\xc8", 0x00000e29 => "\xc9", 0x00000e2a => "\xca", 0x00000e2b => "\xcb", 0x00000e2c => "\xcc", 0x00000e2d => "\xcd", 0x00000e2e => "\xce", 0x00000e2f => "\xcf", 0x00000e30 => "\xd0", 0x00000e31 => "\xd1", 0x00000e32 => "\xd2", 0x00000e33 => "\xd3", 0x00000e34 => "\xd4", 0x00000e35 => "\xd5", 0x00000e36 => "\xd6", 0x00000e37 => "\xd7", 0x00000e38 => "\xd8", 0x00000e39 => "\xd9", 0x00000e3a => "\xda", 0x00000e3f => "\xdf", 0x00000e40 => "\xe0", 0x00000e41 => "\xe1", 0x00000e42 => "\xe2", 0x00000e43 => "\xe3", 0x00000e44 => "\xe4", 0x00000e45 => "\xe5", 0x00000e46 => "\xe6", 0x00000e47 => "\xe7", 0x00000e48 => "\xe8", 0x00000e49 => "\xe9", 0x00000e4a => "\xea", 0x00000e4b => "\xeb", 0x00000e4c => "\xec", 0x00000e4d => "\xed", 0x00000e4e => "\xee", 0x00000e4f => "\xef", 0x00000e50 => "\xf0", 0x00000e51 => "\xf1", 0x00000e52 => "\xf2", 0x00000e53 => "\xf3", 0x00000e54 => "\xf4", 0x00000e55 => "\xf5", 0x00000e56 => "\xf6", 0x00000e57 => "\xf7", 0x00000e58 => "\xf8", 0x00000e59 => "\xf9", 0x00000e5a => "\xfa", 0x00000e5b => "\xfb", 0x00002013 => "\x96", 0x00002014 => "\x97", 0x00002018 => "\x91", 0x00002019 => "\x92", 0x0000201c => "\x93", 0x0000201d => "\x94", 0x00002022 => "\x95", 0x00002026 => "\x85", 0x000020ac => "\x80", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM874 - Conversion routines for IBM874 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM874. =head1 COMMENTS The following comments have been extracted from the original charmap: automatically generated from the charDB alias CP874 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL 01 | 00000001 | START OF HEADING 02 | 00000002 | START OF TEXT 03 | 00000003 | END OF TEXT 04 | 00000004 | END OF TRANSMISSION 05 | 00000005 | ENQUIRY 06 | 00000006 | ACKNOWLEDGE 07 | 00000007 | BELL 08 | 00000008 | BACKSPACE 09 | 00000009 | HORIZONTAL TABULATION 0A | 0000000A | LINE FEED 0B | 0000000B | VERTICAL TABULATION 0C | 0000000C | FORM FEED 0D | 0000000D | CARRIAGE RETURN 0E | 0000000E | SHIFT OUT 0F | 0000000F | SHIFT IN 10 | 00000010 | DATA LINK ESCAPE 11 | 00000011 | DEVICE CONTROL ONE 12 | 00000012 | DEVICE CONTROL TWO 13 | 00000013 | DEVICE CONTROL THREE 14 | 00000014 | DEVICE CONTROL FOUR 15 | 00000015 | NEGATIVE ACKNOWLEDGE 16 | 00000016 | SYNCHRONOUS IDLE 17 | 00000017 | END OF TRANSMISSION BLOCK 18 | 00000018 | CANCEL 19 | 00000019 | END OF MEDIUM 1A | 0000001A | SUBSTITUTE 1B | 0000001B | ESCAPE 1C | 0000001C | FILE SEPARATOR 1D | 0000001D | GROUP SEPARATOR 1E | 0000001E | RECORD SEPARATOR 1F | 0000001F | UNIT SEPARATOR 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE 80 | 000020AC | EURO SIGN 85 | 00002026 | HORIZONTAL ELLIPSIS 91 | 00002018 | LEFT SINGLE QUOTATION MARK 92 | 00002019 | RIGHT SINGLE QUOTATION MARK 93 | 0000201C | LEFT DOUBLE QUOTATION MARK 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK 95 | 00002022 | BULLET 96 | 00002013 | EN DASH 97 | 00002014 | EM DASH A0 | 000000A0 | NO-BREAK SPACE A1 | 00000E01 | THAI CHARACTER KO KAI A2 | 00000E02 | THAI CHARACTER KHO KHAI A3 | 00000E03 | THAI CHARACTER KHO KHUAT A4 | 00000E04 | THAI CHARACTER KHO KHWAI A5 | 00000E05 | THAI CHARACTER KHO KHON A6 | 00000E06 | THAI CHARACTER KHO RAKHANG A7 | 00000E07 | THAI CHARACTER NGO NGU A8 | 00000E08 | THAI CHARACTER CHO CHAN A9 | 00000E09 | THAI CHARACTER CHO CHING AA | 00000E0A | THAI CHARACTER CHO CHANG AB | 00000E0B | THAI CHARACTER SO SO AC | 00000E0C | THAI CHARACTER CHO CHOE AD | 00000E0D | THAI CHARACTER YO YING AE | 00000E0E | THAI CHARACTER DO CHADA AF | 00000E0F | THAI CHARACTER TO PATAK B0 | 00000E10 | THAI CHARACTER THO THAN B1 | 00000E11 | THAI CHARACTER THO NANGMONTHO B2 | 00000E12 | THAI CHARACTER THO PHUTHAO B3 | 00000E13 | THAI CHARACTER NO NEN B4 | 00000E14 | THAI CHARACTER DO DEK B5 | 00000E15 | THAI CHARACTER TO TAO B6 | 00000E16 | THAI CHARACTER THO THUNG B7 | 00000E17 | THAI CHARACTER THO THAHAN B8 | 00000E18 | THAI CHARACTER THO THONG B9 | 00000E19 | THAI CHARACTER NO NU BA | 00000E1A | THAI CHARACTER BO BAIMAI BB | 00000E1B | THAI CHARACTER PO PLA BC | 00000E1C | THAI CHARACTER PHO PHUNG BD | 00000E1D | THAI CHARACTER FO FA BE | 00000E1E | THAI CHARACTER PHO PHAN BF | 00000E1F | THAI CHARACTER FO FAN C0 | 00000E20 | THAI CHARACTER PHO SAMPHAO C1 | 00000E21 | THAI CHARACTER MO MA C2 | 00000E22 | THAI CHARACTER YO YAK C3 | 00000E23 | THAI CHARACTER RO RUA C4 | 00000E24 | THAI CHARACTER RU C5 | 00000E25 | THAI CHARACTER LO LING C6 | 00000E26 | THAI CHARACTER LU C7 | 00000E27 | THAI CHARACTER WO WAEN C8 | 00000E28 | THAI CHARACTER SO SALA C9 | 00000E29 | THAI CHARACTER SO RUSI CA | 00000E2A | THAI CHARACTER SO SUA CB | 00000E2B | THAI CHARACTER HO HIP CC | 00000E2C | THAI CHARACTER LO CHULA CD | 00000E2D | THAI CHARACTER O ANG CE | 00000E2E | THAI CHARACTER HO NOKHUK CF | 00000E2F | THAI CHARACTER PAIYANNOI D0 | 00000E30 | THAI CHARACTER SARA A D1 | 00000E31 | THAI CHARACTER MAI HAN-AKAT D2 | 00000E32 | THAI CHARACTER SARA AA D3 | 00000E33 | THAI CHARACTER SARA AM D4 | 00000E34 | THAI CHARACTER SARA I D5 | 00000E35 | THAI CHARACTER SARA II D6 | 00000E36 | THAI CHARACTER SARA UE D7 | 00000E37 | THAI CHARACTER SARA UEE D8 | 00000E38 | THAI CHARACTER SARA U D9 | 00000E39 | THAI CHARACTER SARA UU DA | 00000E3A | THAI CHARACTER PHINTHU DF | 00000E3F | THAI CURRENCY SYMBOL BAHT E0 | 00000E40 | THAI CHARACTER SARA E E1 | 00000E41 | THAI CHARACTER SARA AE E2 | 00000E42 | THAI CHARACTER SARA O E3 | 00000E43 | THAI CHARACTER SARA AI MAIMUAN E4 | 00000E44 | THAI CHARACTER SARA AI MAIMALAI E5 | 00000E45 | THAI CHARACTER LAKKHANGYAO E6 | 00000E46 | THAI CHARACTER MAIYAMOK E7 | 00000E47 | THAI CHARACTER MAITAIKHU E8 | 00000E48 | THAI CHARACTER MAI EK E9 | 00000E49 | THAI CHARACTER MAI THO EA | 00000E4A | THAI CHARACTER MAI TRI EB | 00000E4B | THAI CHARACTER MAI CHATTAWA EC | 00000E4C | THAI CHARACTER THANTHAKHAT ED | 00000E4D | THAI CHARACTER NIKHAHIT EE | 00000E4E | THAI CHARACTER YAMAKKAN EF | 00000E4F | THAI CHARACTER FONGMAN F0 | 00000E50 | THAI DIGIT ZERO F1 | 00000E51 | THAI DIGIT ONE F2 | 00000E52 | THAI DIGIT TWO F3 | 00000E53 | THAI DIGIT THREE F4 | 00000E54 | THAI DIGIT FOUR F5 | 00000E55 | THAI DIGIT FIVE F6 | 00000E56 | THAI DIGIT SIX F7 | 00000E57 | THAI DIGIT SEVEN F8 | 00000E58 | THAI DIGIT EIGHT F9 | 00000E59 | THAI DIGIT NINE FA | 00000E5A | THAI CHARACTER ANGKHANKHU FB | 00000E5B | THAI CHARACTER KHOMUT =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]aigigRecodeData/CP1257.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for CP1257. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::CP1257; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x20ac, 0xfffd, 0x201a, 0xfffd, 0x201e, 0x2026, 0x2020, 0x2021, 0xfffd, 0x2030, 0xfffd, 0x2039, 0xfffd, 0x00a8, 0x02c7, 0x00b8, 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0xfffd, 0x2122, 0xfffd, 0x203a, 0xfffd, 0x00af, 0x02db, 0xfffd, 0x00a0, 0xfffd, 0x00a2, 0x00a3, 0x00a4, 0xfffd, 0x00a6, 0x00a7, 0x00d8, 0x00a9, 0x0156, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00c6, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00f8, 0x00b9, 0x0157, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00e6, 0x0104, 0x012e, 0x0100, 0x0106, 0x00c4, 0x00c5, 0x0118, 0x0112, 0x010c, 0x00c9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012a, 0x013b, 0x0160, 0x0143, 0x0145, 0x00d3, 0x014c, 0x00d5, 0x00d6, 0x00d7, 0x0172, 0x0141, 0x015a, 0x016a, 0x00dc, 0x017b, 0x017d, 0x00df, 0x0105, 0x012f, 0x0101, 0x0107, 0x00e4, 0x00e5, 0x0119, 0x0113, 0x010d, 0x00e9, 0x017a, 0x0117, 0x0123, 0x0137, 0x012b, 0x013c, 0x0161, 0x0144, 0x0146, 0x00f3, 0x014d, 0x00f5, 0x00f6, 0x00f7, 0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0x02d9, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xe2\x82\xac", "\xef\xbf\xbd", "\xe2\x80\x9a", "\xef\xbf\xbd", "\xe2\x80\x9e", "\xe2\x80\xa6", "\xe2\x80\xa0", "\xe2\x80\xa1", "\xef\xbf\xbd", "\xe2\x80\xb0", "\xef\xbf\xbd", "\xe2\x80\xb9", "\xef\xbf\xbd", "\xc2\xa8", "\xcb\x87", "\xc2\xb8", "\xef\xbf\xbd", "\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\xa2", "\xe2\x80\x93", "\xe2\x80\x94", "\xef\xbf\xbd", "\xe2\x84\xa2", "\xef\xbf\xbd", "\xe2\x80\xba", "\xef\xbf\xbd", "\xc2\xaf", "\xcb\x9b", "\xef\xbf\xbd", "\xc2\xa0", "\xef\xbf\xbd", "\xc2\xa2", "\xc2\xa3", "\xc2\xa4", "\xef\xbf\xbd", "\xc2\xa6", "\xc2\xa7", "\xc3\x98", "\xc2\xa9", "\xc5\x96", "\xc2\xab", "\xc2\xac", "\xc2\xad", "\xc2\xae", "\xc3\x86", "\xc2\xb0", "\xc2\xb1", "\xc2\xb2", "\xc2\xb3", "\xc2\xb4", "\xc2\xb5", "\xc2\xb6", "\xc2\xb7", "\xc3\xb8", "\xc2\xb9", "\xc5\x97", "\xc2\xbb", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\xc3\xa6", "\xc4\x84", "\xc4\xae", "\xc4\x80", "\xc4\x86", "\xc3\x84", "\xc3\x85", "\xc4\x98", "\xc4\x92", "\xc4\x8c", "\xc3\x89", "\xc5\xb9", "\xc4\x96", "\xc4\xa2", "\xc4\xb6", "\xc4\xaa", "\xc4\xbb", "\xc5\xa0", "\xc5\x83", "\xc5\x85", "\xc3\x93", "\xc5\x8c", "\xc3\x95", "\xc3\x96", "\xc3\x97", "\xc5\xb2", "\xc5\x81", "\xc5\x9a", "\xc5\xaa", "\xc3\x9c", "\xc5\xbb", "\xc5\xbd", "\xc3\x9f", "\xc4\x85", "\xc4\xaf", "\xc4\x81", "\xc4\x87", "\xc3\xa4", "\xc3\xa5", "\xc4\x99", "\xc4\x93", "\xc4\x8d", "\xc3\xa9", "\xc5\xba", "\xc4\x97", "\xc4\xa3", "\xc4\xb7", "\xc4\xab", "\xc4\xbc", "\xc5\xa1", "\xc5\x84", "\xc5\x86", "\xc3\xb3", "\xc5\x8d", "\xc3\xb5", "\xc3\xb6", "\xc3\xb7", "\xc5\xb3", "\xc5\x82", "\xc5\x9b", "\xc5\xab", "\xc3\xbc", "\xc5\xbc", "\xc5\xbe", "\xcb\x99", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xa0", 0x000000a2 => "\xa2", 0x000000a3 => "\xa3", 0x000000a4 => "\xa4", 0x000000a6 => "\xa6", 0x000000a7 => "\xa7", 0x000000a8 => "\x8d", 0x000000a9 => "\xa9", 0x000000ab => "\xab", 0x000000ac => "\xac", 0x000000ad => "\xad", 0x000000ae => "\xae", 0x000000af => "\x9d", 0x000000b0 => "\xb0", 0x000000b1 => "\xb1", 0x000000b2 => "\xb2", 0x000000b3 => "\xb3", 0x000000b4 => "\xb4", 0x000000b5 => "\xb5", 0x000000b6 => "\xb6", 0x000000b7 => "\xb7", 0x000000b8 => "\x8f", 0x000000b9 => "\xb9", 0x000000bb => "\xbb", 0x000000bc => "\xbc", 0x000000bd => "\xbd", 0x000000be => "\xbe", 0x000000c4 => "\xc4", 0x000000c5 => "\xc5", 0x000000c6 => "\xaf", 0x000000c9 => "\xc9", 0x000000d3 => "\xd3", 0x000000d5 => "\xd5", 0x000000d6 => "\xd6", 0x000000d7 => "\xd7", 0x000000d8 => "\xa8", 0x000000dc => "\xdc", 0x000000df => "\xdf", 0x000000e4 => "\xe4", 0x000000e5 => "\xe5", 0x000000e6 => "\xbf", 0x000000e9 => "\xe9", 0x000000f3 => "\xf3", 0x000000f5 => "\xf5", 0x000000f6 => "\xf6", 0x000000f7 => "\xf7", 0x000000f8 => "\xb8", 0x000000fc => "\xfc", 0x00000100 => "\xc2", 0x00000101 => "\xe2", 0x00000104 => "\xc0", 0x00000105 => "\xe0", 0x00000106 => "\xc3", 0x00000107 => "\xe3", 0x0000010c => "\xc8", 0x0000010d => "\xe8", 0x00000112 => "\xc7", 0x00000113 => "\xe7", 0x00000116 => "\xcb", 0x00000117 => "\xeb", 0x00000118 => "\xc6", 0x00000119 => "\xe6", 0x00000122 => "\xcc", 0x00000123 => "\xec", 0x0000012a => "\xce", 0x0000012b => "\xee", 0x0000012e => "\xc1", 0x0000012f => "\xe1", 0x00000136 => "\xcd", 0x00000137 => "\xed", 0x0000013b => "\xcf", 0x0000013c => "\xef", 0x00000141 => "\xd9", 0x00000142 => "\xf9", 0x00000143 => "\xd1", 0x00000144 => "\xf1", 0x00000145 => "\xd2", 0x00000146 => "\xf2", 0x0000014c => "\xd4", 0x0000014d => "\xf4", 0x00000156 => "\xaa", 0x00000157 => "\xba", 0x0000015a => "\xda", 0x0000015b => "\xfa", 0x00000160 => "\xd0", 0x00000161 => "\xf0", 0x0000016a => "\xdb", 0x0000016b => "\xfb", 0x00000172 => "\xd8", 0x00000173 => "\xf8", 0x00000179 => "\xca", 0x0000017a => "\xea", 0x0000017b => "\xdd", 0x0000017c => "\xfd", 0x0000017d => "\xde", 0x0000017e => "\xfe", 0x000002c7 => "\x8e", 0x000002d9 => "\xff", 0x000002db => "\x9e", 0x00002013 => "\x96", 0x00002014 => "\x97", 0x00002018 => "\x91", 0x00002019 => "\x92", 0x0000201a => "\x82", 0x0000201c => "\x93", 0x0000201d => "\x94", 0x0000201e => "\x84", 0x00002020 => "\x86", 0x00002021 => "\x87", 0x00002022 => "\x95", 0x00002026 => "\x85", 0x00002030 => "\x89", 0x00002039 => "\x8b", 0x0000203a => "\x9b", 0x000020ac => "\x80", 0x00002122 => "\x99", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::CP1257 - Conversion routines for CP1257 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for CP1257. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: CEN/TC304 N283 alias WINBALTRIM Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000020AC | EURO SIGN 82 | 0000201A | SINGLE LOW-9 QUOTATION MARK 84 | 0000201E | DOUBLE LOW-9 QUOTATION MARK 85 | 00002026 | HORIZONTAL ELLIPSIS 86 | 00002020 | DAGGER 87 | 00002021 | DOUBLE DAGGER 89 | 00002030 | PER MILLE SIGN 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK 8D | 000000A8 | DIAERESIS 8E | 000002C7 | CARON (Mandarin Chinese third tone) 8F | 000000B8 | CEDILLA 91 | 00002018 | LEFT SINGLE QUOTATION MARK 92 | 00002019 | RIGHT SINGLE QUOTATION MARK 93 | 0000201C | LEFT DOUBLE QUOTATION MARK 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK 95 | 00002022 | BULLET 96 | 00002013 | EN DASH 97 | 00002014 | EM DASH 99 | 00002122 | TRADE MARK SIGN 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 9D | 000000AF | MACRON 9E | 000002DB | OGONEK A0 | 000000A0 | NO-BREAK SPACE A2 | 000000A2 | CENT SIGN A3 | 000000A3 | POUND SIGN A4 | 000000A4 | CURRENCY SIGN A6 | 000000A6 | BROKEN BAR A7 | 000000A7 | SECTION SIGN A8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE A9 | 000000A9 | COPYRIGHT SIGN AA | 00000156 | LATIN CAPITAL LETTER R WITH CEDILLA AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AC | 000000AC | NOT SIGN AD | 000000AD | SOFT HYPHEN AE | 000000AE | REGISTERED SIGN AF | 000000C6 | LATIN CAPITAL LETTER AE B0 | 000000B0 | DEGREE SIGN B1 | 000000B1 | PLUS-MINUS SIGN B2 | 000000B2 | SUPERSCRIPT TWO B3 | 000000B3 | SUPERSCRIPT THREE B4 | 000000B4 | ACUTE ACCENT B5 | 000000B5 | MICRO SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000B7 | MIDDLE DOT B8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE B9 | 000000B9 | SUPERSCRIPT ONE BA | 00000157 | LATIN SMALL LETTER R WITH CEDILLA BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK BC | 000000BC | VULGAR FRACTION ONE QUARTER BD | 000000BD | VULGAR FRACTION ONE HALF BE | 000000BE | VULGAR FRACTION THREE QUARTERS BF | 000000E6 | LATIN SMALL LETTER AE C0 | 00000104 | LATIN CAPITAL LETTER A WITH OGONEK C1 | 0000012E | LATIN CAPITAL LETTER I WITH OGONEK C2 | 00000100 | LATIN CAPITAL LETTER A WITH MACRON C3 | 00000106 | LATIN CAPITAL LETTER C WITH ACUTE C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE C6 | 00000118 | LATIN CAPITAL LETTER E WITH OGONEK C7 | 00000112 | LATIN CAPITAL LETTER E WITH MACRON C8 | 0000010C | LATIN CAPITAL LETTER C WITH CARON C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE CA | 00000179 | LATIN CAPITAL LETTER Z WITH ACUTE CB | 00000116 | LATIN CAPITAL LETTER E WITH DOT ABOVE CC | 00000122 | LATIN CAPITAL LETTER G WITH CEDILLA CD | 00000136 | LATIN CAPITAL LETTER K WITH CEDILLA CE | 0000012A | LATIN CAPITAL LETTER I WITH MACRON CF | 0000013B | LATIN CAPITAL LETTER L WITH CEDILLA D0 | 00000160 | LATIN CAPITAL LETTER S WITH CARON D1 | 00000143 | LATIN CAPITAL LETTER N WITH ACUTE D2 | 00000145 | LATIN CAPITAL LETTER N WITH CEDILLA D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE D4 | 0000014C | LATIN CAPITAL LETTER O WITH MACRON D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS D7 | 000000D7 | MULTIPLICATION SIGN D8 | 00000172 | LATIN CAPITAL LETTER U WITH OGONEK D9 | 00000141 | LATIN CAPITAL LETTER L WITH STROKE DA | 0000015A | LATIN CAPITAL LETTER S WITH ACUTE DB | 0000016A | LATIN CAPITAL LETTER U WITH MACRON DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS DD | 0000017B | LATIN CAPITAL LETTER Z WITH DOT ABOVE DE | 0000017D | LATIN CAPITAL LETTER Z WITH CARON DF | 000000DF | LATIN SMALL LETTER SHARP S (German) E0 | 00000105 | LATIN SMALL LETTER A WITH OGONEK E1 | 0000012F | LATIN SMALL LETTER I WITH OGONEK E2 | 00000101 | LATIN SMALL LETTER A WITH MACRON E3 | 00000107 | LATIN SMALL LETTER C WITH ACUTE E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE E6 | 00000119 | LATIN SMALL LETTER E WITH OGONEK E7 | 00000113 | LATIN SMALL LETTER E WITH MACRON E8 | 0000010D | LATIN SMALL LETTER C WITH CARON E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE EA | 0000017A | LATIN SMALL LETTER Z WITH ACUTE EB | 00000117 | LATIN SMALL LETTER E WITH DOT ABOVE EC | 00000123 | LATIN SMALL LETTER G WITH CEDILLA ED | 00000137 | LATIN SMALL LETTER K WITH CEDILLA EE | 0000012B | LATIN SMALL LETTER I WITH MACRON EF | 0000013C | LATIN SMALL LETTER L WITH CEDILLA F0 | 00000161 | LATIN SMALL LETTER S WITH CARON F1 | 00000144 | LATIN SMALL LETTER N WITH ACUTE F2 | 00000146 | LATIN SMALL LETTER N WITH CEDILLA F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE F4 | 0000014D | LATIN SMALL LETTER O WITH MACRON F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS F7 | 000000F7 | DIVISION SIGN F8 | 00000173 | LATIN SMALL LETTER U WITH OGONEK F9 | 00000142 | LATIN SMALL LETTER L WITH STROKE FA | 0000015B | LATIN SMALL LETTER S WITH ACUTE FB | 0000016B | LATIN SMALL LETTER U WITH MACRON FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS FD | 0000017C | LATIN SMALL LETTER Z WITH DOT ABOVE FE | 0000017E | LATIN SMALL LETTER Z WITH CARON FF | 000002D9 | DOT ABOVE (Mandarin Chinese light tone) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]Z(OORecodeData/EBCDIC_ES_A.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for EBCDIC-ES-A. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::EBCDIC_ES_A; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0021, 0x20a7, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x00f1, 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa2", "\x2e", "\x3c", "\x28", "\x2b", "\x7c", "\x26", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x21", "\xe2\x82\xa7", "\x2a", "\x29", "\x3b", "\xc2\xac", "\x2d", "\x2f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa6", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x3a", "\xc3\x91", "\x40", "\x27", "\x3d", "\xc3\xb1", "\xef\xbf\xbd", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x5a", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\x7c", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005f => "\x6d", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007c => "\x4f", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a2 => "\x4a", 0x000000a6 => "\x6a", 0x000000ac => "\x5f", 0x000000d1 => "\x7b", 0x000000f1 => "\x7f", 0x000020a7 => "\x5b", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::EBCDIC_ES_A - Conversion routines for EBCDIC_ES_A =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for EBCDIC-ES-A. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 4A | 000000A2 | CENT SIGN 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 0000007C | VERTICAL LINE 50 | 00000026 | AMPERSAND 5A | 00000021 | EXCLAMATION MARK 5B | 000020A7 | PESETA SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 000000AC | NOT SIGN 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 6A | 000000A6 | BROKEN BAR 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 7A | 0000003A | COLON 7B | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 7C | 00000040 | COMMERCIAL AT 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 000000F1 | LATIN SMALL LETTER N WITH TILDE 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]="P"PRecodeData/EBCDIC_ES.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for EBCDIC-ES. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::EBCDIC_ES; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0021, 0x20a7, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00f1, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0060, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x0022, 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x005c, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa2", "\x2e", "\x3c", "\x28", "\x2b", "\x7c", "\x26", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x21", "\xe2\x82\xa7", "\x2a", "\x29", "\x3b", "\xc2\xac", "\x2d", "\x2f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xb1", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x60", "\x3a", "\xc3\x91", "\x40", "\x27", "\x3d", "\x22", "\xef\xbf\xbd", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa8", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x7b", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x7d", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x5c", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x5a", 0x00000022 => "\x7f", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\x7c", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005c => "\xe0", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\xc0", 0x0000007c => "\x4f", 0x0000007d => "\xd0", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a2 => "\x4a", 0x000000a8 => "\xa1", 0x000000ac => "\x5f", 0x000000d1 => "\x7b", 0x000000f1 => "\x6a", 0x000020a7 => "\x5b", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::EBCDIC_ES - Conversion routines for EBCDIC_ES =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for EBCDIC-ES. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 4A | 000000A2 | CENT SIGN 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 0000007C | VERTICAL LINE 50 | 00000026 | AMPERSAND 5A | 00000021 | EXCLAMATION MARK 5B | 000020A7 | PESETA SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 000000AC | NOT SIGN 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 6A | 000000F1 | LATIN SMALL LETTER N WITH TILDE 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 7C | 00000040 | COMMERCIAL AT 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R A1 | 000000A8 | DIAERESIS A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z C0 | 0000007B | LEFT CURLY BRACKET C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I D0 | 0000007D | RIGHT CURLY BRACKET D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R E0 | 0000005C | REVERSE SOLIDUS E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]pےRhRhRecodeData/IBM420.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM420. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM420; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x00a0, 0x0651, 0xfe7d, 0x0640, 0xfffd, 0x0621, 0x0622, 0xfe82, 0x0623, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0xfe84, 0x0624, 0xfffd, 0xfffd, 0x0626, 0x0627, 0xfe8e, 0x0628, 0xfe91, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0629, 0x062a, 0xfe97, 0x062b, 0xfe9b, 0x062c, 0xfe9f, 0x062d, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfea3, 0x062e, 0xfea7, 0x062f, 0x0630, 0x0631, 0x0632, 0x0633, 0xfeb3, 0x060c, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0634, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0xfeb7, 0x0635, 0xfebb, 0x0636, 0xfebf, 0x0637, 0x0638, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0639, 0xfeca, 0xfecb, 0xfecc, 0x063a, 0xfece, 0xfecf, 0x00f7, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfed0, 0x0641, 0xfed3, 0x0642, 0xfed7, 0x0643, 0xfedb, 0x0644, 0xfef5, 0xfef6, 0xfef7, 0xfef8, 0xfffd, 0xfffd, 0xfefb, 0xfefc, 0xfedf, 0x0645, 0xfee3, 0x0646, 0xfee7, 0x0647, 0x061b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0xfeeb, 0xfffd, 0xfeec, 0xfffd, 0x0648, 0x061f, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0649, 0xfef0, 0x064a, 0xfef2, 0xfef3, 0x0660, 0x00d7, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0661, 0x0662, 0xfffd, 0x0663, 0x0664, 0x0665, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0xfffd, 0x0666, 0x0667, 0x0668, 0x0669, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xc2\xa0", "\xd9\x91", "\xef\xb9\xbd", "\xd9\x80", "\xef\xbf\xbd", "\xd8\xa1", "\xd8\xa2", "\xef\xba\x82", "\xd8\xa3", "\xc2\xa2", "\x2e", "\x3c", "\x28", "\x2b", "\x7c", "\x26", "\xef\xba\x84", "\xd8\xa4", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd8\xa6", "\xd8\xa7", "\xef\xba\x8e", "\xd8\xa8", "\xef\xba\x91", "\x21", "\x24", "\x2a", "\x29", "\x3b", "\xc2\xac", "\x2d", "\x2f", "\xd8\xa9", "\xd8\xaa", "\xef\xba\x97", "\xd8\xab", "\xef\xba\x9b", "\xd8\xac", "\xef\xba\x9f", "\xd8\xad", "\xc2\xa6", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xba\xa3", "\xd8\xae", "\xef\xba\xa7", "\xd8\xaf", "\xd8\xb0", "\xd8\xb1", "\xd8\xb2", "\xd8\xb3", "\xef\xba\xb3", "\xd8\x8c", "\x3a", "\x23", "\x40", "\x27", "\x3d", "\x22", "\xd8\xb4", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xef\xba\xb7", "\xd8\xb5", "\xef\xba\xbb", "\xd8\xb6", "\xef\xba\xbf", "\xd8\xb7", "\xd8\xb8", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xd8\xb9", "\xef\xbb\x8a", "\xef\xbb\x8b", "\xef\xbb\x8c", "\xd8\xba", "\xef\xbb\x8e", "\xef\xbb\x8f", "\xc3\xb7", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xbb\x90", "\xd9\x81", "\xef\xbb\x93", "\xd9\x82", "\xef\xbb\x97", "\xd9\x83", "\xef\xbb\x9b", "\xd9\x84", "\xef\xbb\xb5", "\xef\xbb\xb6", "\xef\xbb\xb7", "\xef\xbb\xb8", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbb\xbb", "\xef\xbb\xbc", "\xef\xbb\x9f", "\xd9\x85", "\xef\xbb\xa3", "\xd9\x86", "\xef\xbb\xa7", "\xd9\x87", "\xd8\x9b", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xc2\xad", "\xef\xbb\xab", "\xef\xbf\xbd", "\xef\xbb\xac", "\xef\xbf\xbd", "\xd9\x88", "\xd8\x9f", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xd9\x89", "\xef\xbb\xb0", "\xd9\x8a", "\xef\xbb\xb2", "\xef\xbb\xb3", "\xd9\xa0", "\xc3\x97", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xd9\xa1", "\xd9\xa2", "\xef\xbf\xbd", "\xd9\xa3", "\xd9\xa4", "\xd9\xa5", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xef\xbf\xbd", "\xd9\xa6", "\xd9\xa7", "\xd9\xa8", "\xd9\xa9", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x5a", 0x00000022 => "\x7f", 0x00000023 => "\x7b", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\x7c", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005f => "\x6d", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007c => "\x4f", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a0 => "\x41", 0x000000a2 => "\x4a", 0x000000a6 => "\x6a", 0x000000ac => "\x5f", 0x000000ad => "\xca", 0x000000d7 => "\xe0", 0x000000f7 => "\xa1", 0x0000060c => "\x79", 0x0000061b => "\xc0", 0x0000061f => "\xd0", 0x00000621 => "\x46", 0x00000622 => "\x47", 0x00000623 => "\x49", 0x00000624 => "\x52", 0x00000626 => "\x55", 0x00000627 => "\x56", 0x00000628 => "\x58", 0x00000629 => "\x62", 0x0000062a => "\x63", 0x0000062b => "\x65", 0x0000062c => "\x67", 0x0000062d => "\x69", 0x0000062e => "\x71", 0x0000062f => "\x73", 0x00000630 => "\x74", 0x00000631 => "\x75", 0x00000632 => "\x76", 0x00000633 => "\x77", 0x00000634 => "\x80", 0x00000635 => "\x8b", 0x00000636 => "\x8d", 0x00000637 => "\x8f", 0x00000638 => "\x90", 0x00000639 => "\x9a", 0x0000063a => "\x9e", 0x00000640 => "\x44", 0x00000641 => "\xab", 0x00000642 => "\xad", 0x00000643 => "\xaf", 0x00000644 => "\xb1", 0x00000645 => "\xbb", 0x00000646 => "\xbd", 0x00000647 => "\xbf", 0x00000648 => "\xcf", 0x00000649 => "\xda", 0x0000064a => "\xdc", 0x00000651 => "\x42", 0x00000660 => "\xdf", 0x00000661 => "\xea", 0x00000662 => "\xeb", 0x00000663 => "\xed", 0x00000664 => "\xee", 0x00000665 => "\xef", 0x00000666 => "\xfb", 0x00000667 => "\xfc", 0x00000668 => "\xfd", 0x00000669 => "\xfe", 0x0000fe7d => "\x43", 0x0000fe82 => "\x48", 0x0000fe84 => "\x51", 0x0000fe8e => "\x57", 0x0000fe91 => "\x59", 0x0000fe97 => "\x64", 0x0000fe9b => "\x66", 0x0000fe9f => "\x68", 0x0000fea3 => "\x70", 0x0000fea7 => "\x72", 0x0000feb3 => "\x78", 0x0000feb7 => "\x8a", 0x0000febb => "\x8c", 0x0000febf => "\x8e", 0x0000feca => "\x9b", 0x0000fecb => "\x9c", 0x0000fecc => "\x9d", 0x0000fece => "\x9f", 0x0000fecf => "\xa0", 0x0000fed0 => "\xaa", 0x0000fed3 => "\xac", 0x0000fed7 => "\xae", 0x0000fedb => "\xb0", 0x0000fedf => "\xba", 0x0000fee3 => "\xbc", 0x0000fee7 => "\xbe", 0x0000feeb => "\xcb", 0x0000feec => "\xcd", 0x0000fef0 => "\xdb", 0x0000fef2 => "\xdd", 0x0000fef3 => "\xde", 0x0000fef5 => "\xb2", 0x0000fef6 => "\xb3", 0x0000fef7 => "\xb4", 0x0000fef8 => "\xb5", 0x0000fefb => "\xb8", 0x0000fefc => "\xb9", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\xd0"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM420 - Conversion routines for IBM420 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM420. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 IBM NLS RM p 11-11 alias CP420 alias EBCDIC-CP-AR1 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 41 | 000000A0 | NO-BREAK SPACE 42 | 00000651 | ARABIC SHADDA 43 | 0000FE7D | ARABIC SHADDA MEDIAL FORM 44 | 00000640 | ARABIC TATWEEL 46 | 00000621 | ARABIC LETTER HAMZA 47 | 00000622 | ARABIC LETTER ALEF WITH MADDA ABOVE 48 | 0000FE82 | ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM 49 | 00000623 | ARABIC LETTER ALEF WITH HAMZA ABOVE 4A | 000000A2 | CENT SIGN 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 0000007C | VERTICAL LINE 50 | 00000026 | AMPERSAND 51 | 0000FE84 | ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM 52 | 00000624 | ARABIC LETTER WAW WITH HAMZA ABOVE 55 | 00000626 | ARABIC LETTER YEH WITH HAMZA ABOVE 56 | 00000627 | ARABIC LETTER ALEF 57 | 0000FE8E | ARABIC LETTER ALEF FINAL FORM 58 | 00000628 | ARABIC LETTER BEH 59 | 0000FE91 | ARABIC LETTER BEH INITIAL FORM 5A | 00000021 | EXCLAMATION MARK 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 000000AC | NOT SIGN 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 62 | 00000629 | ARABIC LETTER TEH MARBUTA 63 | 0000062A | ARABIC LETTER TEH 64 | 0000FE97 | ARABIC LETTER TEH INITIAL FORM 65 | 0000062B | ARABIC LETTER THEH 66 | 0000FE9B | ARABIC LETTER THEH INITIAL FORM 67 | 0000062C | ARABIC LETTER JEEM 68 | 0000FE9F | ARABIC LETTER JEEM INITIAL FORM 69 | 0000062D | ARABIC LETTER HAH 6A | 000000A6 | BROKEN BAR 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 70 | 0000FEA3 | ARABIC LETTER HAH INITIAL FORM 71 | 0000062E | ARABIC LETTER KHAH 72 | 0000FEA7 | ARABIC LETTER KHAH INITIAL FORM 73 | 0000062F | ARABIC LETTER DAL 74 | 00000630 | ARABIC LETTER THAL 75 | 00000631 | ARABIC LETTER REH 76 | 00000632 | ARABIC LETTER ZAIN 77 | 00000633 | ARABIC LETTER SEEN 78 | 0000FEB3 | ARABIC LETTER SEEN INITIAL FORM 79 | 0000060C | ARABIC COMMA 7A | 0000003A | COLON 7B | 00000023 | NUMBER SIGN 7C | 00000040 | COMMERCIAL AT 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 80 | 00000634 | ARABIC LETTER SHEEN 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 8A | 0000FEB7 | ARABIC LETTER SHEEN INITIAL FORM 8B | 00000635 | ARABIC LETTER SAD 8C | 0000FEBB | ARABIC LETTER SAD INITIAL FORM 8D | 00000636 | ARABIC LETTER DAD 8E | 0000FEBF | ARABIC LETTER DAD INITIAL FORM 8F | 00000637 | ARABIC LETTER TAH 90 | 00000638 | ARABIC LETTER ZAH 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R 9A | 00000639 | ARABIC LETTER AIN 9B | 0000FECA | ARABIC LETTER AIN FINAL FORM 9C | 0000FECB | ARABIC LETTER AIN INITIAL FORM 9D | 0000FECC | ARABIC LETTER AIN MEDIAL FORM 9E | 0000063A | ARABIC LETTER GHAIN 9F | 0000FECE | ARABIC LETTER GHAIN FINAL FORM A0 | 0000FECF | ARABIC LETTER GHAIN INITIAL FORM A1 | 000000F7 | DIVISION SIGN A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z AA | 0000FED0 | ARABIC LETTER GHAIN MEDIAL FORM AB | 00000641 | ARABIC LETTER FEH AC | 0000FED3 | ARABIC LETTER FEH INITIAL FORM AD | 00000642 | ARABIC LETTER QAF AE | 0000FED7 | ARABIC LETTER QAF INITIAL FORM AF | 00000643 | ARABIC LETTER KAF B0 | 0000FEDB | ARABIC LETTER KAF INITIAL FORM B1 | 00000644 | ARABIC LETTER LAM B2 | 0000FEF5 | ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM B3 | 0000FEF6 | ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM B4 | 0000FEF7 | ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM B5 | 0000FEF8 | ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM B8 | 0000FEFB | ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM B9 | 0000FEFC | ARABIC LIGATURE LAM WITH ALEF FINAL FORM BA | 0000FEDF | ARABIC LETTER LAM INITIAL FORM BB | 00000645 | ARABIC LETTER MEEM BC | 0000FEE3 | ARABIC LETTER MEEM INITIAL FORM BD | 00000646 | ARABIC LETTER NOON BE | 0000FEE7 | ARABIC LETTER NOON INITIAL FORM BF | 00000647 | ARABIC LETTER HEH C0 | 0000061B | ARABIC SEMICOLON C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I CA | 000000AD | SOFT HYPHEN CB | 0000FEEB | ARABIC LETTER HEH INITIAL FORM CD | 0000FEEC | ARABIC LETTER HEH MEDIAL FORM CF | 00000648 | ARABIC LETTER WAW D0 | 0000061F | ARABIC QUESTION MARK D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R DA | 00000649 | ARABIC LETTER ALEF MAKSURA DB | 0000FEF0 | ARABIC LETTER ALEF MAKSURA FINAL FORM DC | 0000064A | ARABIC LETTER YEH DD | 0000FEF2 | ARABIC LETTER YEH FINAL FORM DE | 0000FEF3 | ARABIC LETTER YEH INITIAL FORM DF | 00000660 | ARABIC-INDIC DIGIT ZERO E0 | 000000D7 | MULTIPLICATION SIGN E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z EA | 00000661 | ARABIC-INDIC DIGIT ONE EB | 00000662 | ARABIC-INDIC DIGIT TWO ED | 00000663 | ARABIC-INDIC DIGIT THREE EE | 00000664 | ARABIC-INDIC DIGIT FOUR EF | 00000665 | ARABIC-INDIC DIGIT FIVE F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FB | 00000666 | ARABIC-INDIC DIGIT SIX FC | 00000667 | ARABIC-INDIC DIGIT SEVEN FD | 00000668 | ARABIC-INDIC DIGIT EIGHT FE | 00000669 | ARABIC-INDIC DIGIT NINE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]YiiRecodeData/MACUKRAINE.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for MACUKRAINE. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::MACUKRAINE; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x2020, 0x00b0, 0x0490, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x0406, 0x00ae, 0x00a9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453, 0x221e, 0x00b1, 0x2264, 0x2265, 0x0456, 0x00b5, 0x0491, 0x0408, 0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040a, 0x045a, 0x0458, 0x0405, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, 0x00bb, 0x2026, 0x00a0, 0x040b, 0x045b, 0x040c, 0x045c, 0x0455, 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x201e, 0x040e, 0x045e, 0x040f, 0x045f, 0x2116, 0x0401, 0x0451, 0x044f, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x00a4, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xd0\x90", "\xd0\x91", "\xd0\x92", "\xd0\x93", "\xd0\x94", "\xd0\x95", "\xd0\x96", "\xd0\x97", "\xd0\x98", "\xd0\x99", "\xd0\x9a", "\xd0\x9b", "\xd0\x9c", "\xd0\x9d", "\xd0\x9e", "\xd0\x9f", "\xd0\xa0", "\xd0\xa1", "\xd0\xa2", "\xd0\xa3", "\xd0\xa4", "\xd0\xa5", "\xd0\xa6", "\xd0\xa7", "\xd0\xa8", "\xd0\xa9", "\xd0\xaa", "\xd0\xab", "\xd0\xac", "\xd0\xad", "\xd0\xae", "\xd0\xaf", "\xe2\x80\xa0", "\xc2\xb0", "\xd2\x90", "\xc2\xa3", "\xc2\xa7", "\xe2\x80\xa2", "\xc2\xb6", "\xd0\x86", "\xc2\xae", "\xc2\xa9", "\xe2\x84\xa2", "\xd0\x82", "\xd1\x92", "\xe2\x89\xa0", "\xd0\x83", "\xd1\x93", "\xe2\x88\x9e", "\xc2\xb1", "\xe2\x89\xa4", "\xe2\x89\xa5", "\xd1\x96", "\xc2\xb5", "\xd2\x91", "\xd0\x88", "\xd0\x84", "\xd1\x94", "\xd0\x87", "\xd1\x97", "\xd0\x89", "\xd1\x99", "\xd0\x8a", "\xd1\x9a", "\xd1\x98", "\xd0\x85", "\xc2\xac", "\xe2\x88\x9a", "\xc6\x92", "\xe2\x89\x88", "\xe2\x88\x86", "\xc2\xab", "\xc2\xbb", "\xe2\x80\xa6", "\xc2\xa0", "\xd0\x8b", "\xd1\x9b", "\xd0\x8c", "\xd1\x9c", "\xd1\x95", "\xe2\x80\x93", "\xe2\x80\x94", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x98", "\xe2\x80\x99", "\xc3\xb7", "\xe2\x80\x9e", "\xd0\x8e", "\xd1\x9e", "\xd0\x8f", "\xd1\x9f", "\xe2\x84\x96", "\xd0\x81", "\xd1\x91", "\xd1\x8f", "\xd0\xb0", "\xd0\xb1", "\xd0\xb2", "\xd0\xb3", "\xd0\xb4", "\xd0\xb5", "\xd0\xb6", "\xd0\xb7", "\xd0\xb8", "\xd0\xb9", "\xd0\xba", "\xd0\xbb", "\xd0\xbc", "\xd0\xbd", "\xd0\xbe", "\xd0\xbf", "\xd1\x80", "\xd1\x81", "\xd1\x82", "\xd1\x83", "\xd1\x84", "\xd1\x85", "\xd1\x86", "\xd1\x87", "\xd1\x88", "\xd1\x89", "\xd1\x8a", "\xd1\x8b", "\xd1\x8c", "\xd1\x8d", "\xd1\x8e", "\xc2\xa4", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xca", 0x000000a3 => "\xa3", 0x000000a4 => "\xff", 0x000000a7 => "\xa4", 0x000000a9 => "\xa9", 0x000000ab => "\xc7", 0x000000ac => "\xc2", 0x000000ae => "\xa8", 0x000000b0 => "\xa1", 0x000000b1 => "\xb1", 0x000000b5 => "\xb5", 0x000000b6 => "\xa6", 0x000000bb => "\xc8", 0x000000f7 => "\xd6", 0x00000192 => "\xc4", 0x00000401 => "\xdd", 0x00000402 => "\xab", 0x00000403 => "\xae", 0x00000404 => "\xb8", 0x00000405 => "\xc1", 0x00000406 => "\xa7", 0x00000407 => "\xba", 0x00000408 => "\xb7", 0x00000409 => "\xbc", 0x0000040a => "\xbe", 0x0000040b => "\xcb", 0x0000040c => "\xcd", 0x0000040e => "\xd8", 0x0000040f => "\xda", 0x00000410 => "\x80", 0x00000411 => "\x81", 0x00000412 => "\x82", 0x00000413 => "\x83", 0x00000414 => "\x84", 0x00000415 => "\x85", 0x00000416 => "\x86", 0x00000417 => "\x87", 0x00000418 => "\x88", 0x00000419 => "\x89", 0x0000041a => "\x8a", 0x0000041b => "\x8b", 0x0000041c => "\x8c", 0x0000041d => "\x8d", 0x0000041e => "\x8e", 0x0000041f => "\x8f", 0x00000420 => "\x90", 0x00000421 => "\x91", 0x00000422 => "\x92", 0x00000423 => "\x93", 0x00000424 => "\x94", 0x00000425 => "\x95", 0x00000426 => "\x96", 0x00000427 => "\x97", 0x00000428 => "\x98", 0x00000429 => "\x99", 0x0000042a => "\x9a", 0x0000042b => "\x9b", 0x0000042c => "\x9c", 0x0000042d => "\x9d", 0x0000042e => "\x9e", 0x0000042f => "\x9f", 0x00000430 => "\xe0", 0x00000431 => "\xe1", 0x00000432 => "\xe2", 0x00000433 => "\xe3", 0x00000434 => "\xe4", 0x00000435 => "\xe5", 0x00000436 => "\xe6", 0x00000437 => "\xe7", 0x00000438 => "\xe8", 0x00000439 => "\xe9", 0x0000043a => "\xea", 0x0000043b => "\xeb", 0x0000043c => "\xec", 0x0000043d => "\xed", 0x0000043e => "\xee", 0x0000043f => "\xef", 0x00000440 => "\xf0", 0x00000441 => "\xf1", 0x00000442 => "\xf2", 0x00000443 => "\xf3", 0x00000444 => "\xf4", 0x00000445 => "\xf5", 0x00000446 => "\xf6", 0x00000447 => "\xf7", 0x00000448 => "\xf8", 0x00000449 => "\xf9", 0x0000044a => "\xfa", 0x0000044b => "\xfb", 0x0000044c => "\xfc", 0x0000044d => "\xfd", 0x0000044e => "\xfe", 0x0000044f => "\xdf", 0x00000451 => "\xde", 0x00000452 => "\xac", 0x00000453 => "\xaf", 0x00000454 => "\xb9", 0x00000455 => "\xcf", 0x00000456 => "\xb4", 0x00000457 => "\xbb", 0x00000458 => "\xc0", 0x00000459 => "\xbd", 0x0000045a => "\xbf", 0x0000045b => "\xcc", 0x0000045c => "\xce", 0x0000045e => "\xd9", 0x0000045f => "\xdb", 0x00000490 => "\xa2", 0x00000491 => "\xb6", 0x00002013 => "\xd0", 0x00002014 => "\xd1", 0x00002018 => "\xd4", 0x00002019 => "\xd5", 0x0000201c => "\xd2", 0x0000201d => "\xd3", 0x0000201e => "\xd7", 0x00002020 => "\xa0", 0x00002022 => "\xa5", 0x00002026 => "\xc9", 0x00002116 => "\xdc", 0x00002122 => "\xaa", 0x00002206 => "\xc6", 0x0000221a => "\xc3", 0x0000221e => "\xb0", 0x00002248 => "\xc5", 0x00002260 => "\xad", 0x00002264 => "\xb2", 0x00002265 => "\xb3", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::MACUKRAINE - Conversion routines for MACUKRAINE =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for MACUKRAINE. =head1 COMMENTS The following comments have been extracted from the original charmap: This charmap has been generated automatically from GNU libiconv conversions. Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000410 | CYRILLIC CAPITAL LETTER A 81 | 00000411 | CYRILLIC CAPITAL LETTER BE 82 | 00000412 | CYRILLIC CAPITAL LETTER VE 83 | 00000413 | CYRILLIC CAPITAL LETTER GHE 84 | 00000414 | CYRILLIC CAPITAL LETTER DE 85 | 00000415 | CYRILLIC CAPITAL LETTER IE 86 | 00000416 | CYRILLIC CAPITAL LETTER ZHE 87 | 00000417 | CYRILLIC CAPITAL LETTER ZE 88 | 00000418 | CYRILLIC CAPITAL LETTER I 89 | 00000419 | CYRILLIC CAPITAL LETTER SHORT I 8A | 0000041A | CYRILLIC CAPITAL LETTER KA 8B | 0000041B | CYRILLIC CAPITAL LETTER EL 8C | 0000041C | CYRILLIC CAPITAL LETTER EM 8D | 0000041D | CYRILLIC CAPITAL LETTER EN 8E | 0000041E | CYRILLIC CAPITAL LETTER O 8F | 0000041F | CYRILLIC CAPITAL LETTER PE 90 | 00000420 | CYRILLIC CAPITAL LETTER ER 91 | 00000421 | CYRILLIC CAPITAL LETTER ES 92 | 00000422 | CYRILLIC CAPITAL LETTER TE 93 | 00000423 | CYRILLIC CAPITAL LETTER U 94 | 00000424 | CYRILLIC CAPITAL LETTER EF 95 | 00000425 | CYRILLIC CAPITAL LETTER HA 96 | 00000426 | CYRILLIC CAPITAL LETTER TSE 97 | 00000427 | CYRILLIC CAPITAL LETTER CHE 98 | 00000428 | CYRILLIC CAPITAL LETTER SHA 99 | 00000429 | CYRILLIC CAPITAL LETTER SHCHA 9A | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN 9B | 0000042B | CYRILLIC CAPITAL LETTER YERU 9C | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN 9D | 0000042D | CYRILLIC CAPITAL LETTER E 9E | 0000042E | CYRILLIC CAPITAL LETTER YU 9F | 0000042F | CYRILLIC CAPITAL LETTER YA A0 | 00002020 | DAGGER A1 | 000000B0 | DEGREE SIGN A2 | 00000490 | CYRILLIC CAPITAL LETTER GHE WITH UPTURN A3 | 000000A3 | POUND SIGN A4 | 000000A7 | SECTION SIGN A5 | 00002022 | BULLET A6 | 000000B6 | PILCROW SIGN A7 | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I A8 | 000000AE | REGISTERED SIGN A9 | 000000A9 | COPYRIGHT SIGN AA | 00002122 | TRADE MARK SIGN AB | 00000402 | CYRILLIC CAPITAL LETTER DJE AC | 00000452 | CYRILLIC SMALL LETTER DJE AD | 00002260 | NOT EQUAL TO AE | 00000403 | CYRILLIC CAPITAL LETTER GJE AF | 00000453 | CYRILLIC SMALL LETTER GJE B0 | 0000221E | INFINITY B1 | 000000B1 | PLUS-MINUS SIGN B2 | 00002264 | LESS-THAN OR EQUAL TO B3 | 00002265 | GREATER-THAN OR EQUAL TO B4 | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I B5 | 000000B5 | MICRO SIGN B6 | 00000491 | CYRILLIC SMALL LETTER GHE WITH UPTURN B7 | 00000408 | CYRILLIC CAPITAL LETTER JE B8 | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE B9 | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE BA | 00000407 | CYRILLIC CAPITAL LETTER YI BB | 00000457 | CYRILLIC SMALL LETTER YI BC | 00000409 | CYRILLIC CAPITAL LETTER LJE BD | 00000459 | CYRILLIC SMALL LETTER LJE BE | 0000040A | CYRILLIC CAPITAL LETTER NJE BF | 0000045A | CYRILLIC SMALL LETTER NJE C0 | 00000458 | CYRILLIC SMALL LETTER JE C1 | 00000405 | CYRILLIC CAPITAL LETTER DZE C2 | 000000AC | NOT SIGN C3 | 0000221A | SQUARE ROOT C4 | 00000192 | LATIN SMALL LETTER F WITH HOOK C5 | 00002248 | ALMOST EQUAL TO C6 | 00002206 | INCREMENT C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK C8 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK C9 | 00002026 | HORIZONTAL ELLIPSIS CA | 000000A0 | NO-BREAK SPACE CB | 0000040B | CYRILLIC CAPITAL LETTER TSHE CC | 0000045B | CYRILLIC SMALL LETTER TSHE CD | 0000040C | CYRILLIC CAPITAL LETTER KJE CE | 0000045C | CYRILLIC SMALL LETTER KJE CF | 00000455 | CYRILLIC SMALL LETTER DZE D0 | 00002013 | EN DASH D1 | 00002014 | EM DASH D2 | 0000201C | LEFT DOUBLE QUOTATION MARK D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK D4 | 00002018 | LEFT SINGLE QUOTATION MARK D5 | 00002019 | RIGHT SINGLE QUOTATION MARK D6 | 000000F7 | DIVISION SIGN D7 | 0000201E | DOUBLE LOW-9 QUOTATION MARK D8 | 0000040E | CYRILLIC CAPITAL LETTER SHORT U D9 | 0000045E | CYRILLIC SMALL LETTER SHORT U DA | 0000040F | CYRILLIC CAPITAL LETTER DZHE DB | 0000045F | CYRILLIC SMALL LETTER DZHE DC | 00002116 | NUMERO SIGN DD | 00000401 | CYRILLIC CAPITAL LETTER IO DE | 00000451 | CYRILLIC SMALL LETTER IO DF | 0000044F | CYRILLIC SMALL LETTER YA E0 | 00000430 | CYRILLIC SMALL LETTER A E1 | 00000431 | CYRILLIC SMALL LETTER BE E2 | 00000432 | CYRILLIC SMALL LETTER VE E3 | 00000433 | CYRILLIC SMALL LETTER GHE E4 | 00000434 | CYRILLIC SMALL LETTER DE E5 | 00000435 | CYRILLIC SMALL LETTER IE E6 | 00000436 | CYRILLIC SMALL LETTER ZHE E7 | 00000437 | CYRILLIC SMALL LETTER ZE E8 | 00000438 | CYRILLIC SMALL LETTER I E9 | 00000439 | CYRILLIC SMALL LETTER SHORT I EA | 0000043A | CYRILLIC SMALL LETTER KA EB | 0000043B | CYRILLIC SMALL LETTER EL EC | 0000043C | CYRILLIC SMALL LETTER EM ED | 0000043D | CYRILLIC SMALL LETTER EN EE | 0000043E | CYRILLIC SMALL LETTER O EF | 0000043F | CYRILLIC SMALL LETTER PE F0 | 00000440 | CYRILLIC SMALL LETTER ER F1 | 00000441 | CYRILLIC SMALL LETTER ES F2 | 00000442 | CYRILLIC SMALL LETTER TE F3 | 00000443 | CYRILLIC SMALL LETTER U F4 | 00000444 | CYRILLIC SMALL LETTER EF F5 | 00000445 | CYRILLIC SMALL LETTER HA F6 | 00000446 | CYRILLIC SMALL LETTER TSE F7 | 00000447 | CYRILLIC SMALL LETTER CHE F8 | 00000448 | CYRILLIC SMALL LETTER SHA F9 | 00000449 | CYRILLIC SMALL LETTER SHCHA FA | 0000044A | CYRILLIC SMALL LETTER HARD SIGN FB | 0000044B | CYRILLIC SMALL LETTER YERU FC | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN FD | 0000044D | CYRILLIC SMALL LETTER E FE | 0000044E | CYRILLIC SMALL LETTER YU FF | 000000A4 | CURRENCY SIGN =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]]k]kRecodeData/IBM866.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM866. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM866; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xd0\x90", "\xd0\x91", "\xd0\x92", "\xd0\x93", "\xd0\x94", "\xd0\x95", "\xd0\x96", "\xd0\x97", "\xd0\x98", "\xd0\x99", "\xd0\x9a", "\xd0\x9b", "\xd0\x9c", "\xd0\x9d", "\xd0\x9e", "\xd0\x9f", "\xd0\xa0", "\xd0\xa1", "\xd0\xa2", "\xd0\xa3", "\xd0\xa4", "\xd0\xa5", "\xd0\xa6", "\xd0\xa7", "\xd0\xa8", "\xd0\xa9", "\xd0\xaa", "\xd0\xab", "\xd0\xac", "\xd0\xad", "\xd0\xae", "\xd0\xaf", "\xd0\xb0", "\xd0\xb1", "\xd0\xb2", "\xd0\xb3", "\xd0\xb4", "\xd0\xb5", "\xd0\xb6", "\xd0\xb7", "\xd0\xb8", "\xd0\xb9", "\xd0\xba", "\xd0\xbb", "\xd0\xbc", "\xd0\xbd", "\xd0\xbe", "\xd0\xbf", "\xe2\x96\x91", "\xe2\x96\x92", "\xe2\x96\x93", "\xe2\x94\x82", "\xe2\x94\xa4", "\xe2\x95\xa1", "\xe2\x95\xa2", "\xe2\x95\x96", "\xe2\x95\x95", "\xe2\x95\xa3", "\xe2\x95\x91", "\xe2\x95\x97", "\xe2\x95\x9d", "\xe2\x95\x9c", "\xe2\x95\x9b", "\xe2\x94\x90", "\xe2\x94\x94", "\xe2\x94\xb4", "\xe2\x94\xac", "\xe2\x94\x9c", "\xe2\x94\x80", "\xe2\x94\xbc", "\xe2\x95\x9e", "\xe2\x95\x9f", "\xe2\x95\x9a", "\xe2\x95\x94", "\xe2\x95\xa9", "\xe2\x95\xa6", "\xe2\x95\xa0", "\xe2\x95\x90", "\xe2\x95\xac", "\xe2\x95\xa7", "\xe2\x95\xa8", "\xe2\x95\xa4", "\xe2\x95\xa5", "\xe2\x95\x99", "\xe2\x95\x98", "\xe2\x95\x92", "\xe2\x95\x93", "\xe2\x95\xab", "\xe2\x95\xaa", "\xe2\x94\x98", "\xe2\x94\x8c", "\xe2\x96\x88", "\xe2\x96\x84", "\xe2\x96\x8c", "\xe2\x96\x90", "\xe2\x96\x80", "\xd1\x80", "\xd1\x81", "\xd1\x82", "\xd1\x83", "\xd1\x84", "\xd1\x85", "\xd1\x86", "\xd1\x87", "\xd1\x88", "\xd1\x89", "\xd1\x8a", "\xd1\x8b", "\xd1\x8c", "\xd1\x8d", "\xd1\x8e", "\xd1\x8f", "\xd0\x81", "\xd1\x91", "\xd0\x84", "\xd1\x94", "\xd0\x87", "\xd1\x97", "\xd0\x8e", "\xd1\x9e", "\xc2\xb0", "\xe2\x88\x99", "\xc2\xb7", "\xe2\x88\x9a", "\xe2\x84\x96", "\xc2\xa4", "\xe2\x96\xa0", "\xc2\xa0", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xff", 0x000000a4 => "\xfd", 0x000000b0 => "\xf8", 0x000000b7 => "\xfa", 0x00000401 => "\xf0", 0x00000404 => "\xf2", 0x00000407 => "\xf4", 0x0000040e => "\xf6", 0x00000410 => "\x80", 0x00000411 => "\x81", 0x00000412 => "\x82", 0x00000413 => "\x83", 0x00000414 => "\x84", 0x00000415 => "\x85", 0x00000416 => "\x86", 0x00000417 => "\x87", 0x00000418 => "\x88", 0x00000419 => "\x89", 0x0000041a => "\x8a", 0x0000041b => "\x8b", 0x0000041c => "\x8c", 0x0000041d => "\x8d", 0x0000041e => "\x8e", 0x0000041f => "\x8f", 0x00000420 => "\x90", 0x00000421 => "\x91", 0x00000422 => "\x92", 0x00000423 => "\x93", 0x00000424 => "\x94", 0x00000425 => "\x95", 0x00000426 => "\x96", 0x00000427 => "\x97", 0x00000428 => "\x98", 0x00000429 => "\x99", 0x0000042a => "\x9a", 0x0000042b => "\x9b", 0x0000042c => "\x9c", 0x0000042d => "\x9d", 0x0000042e => "\x9e", 0x0000042f => "\x9f", 0x00000430 => "\xa0", 0x00000431 => "\xa1", 0x00000432 => "\xa2", 0x00000433 => "\xa3", 0x00000434 => "\xa4", 0x00000435 => "\xa5", 0x00000436 => "\xa6", 0x00000437 => "\xa7", 0x00000438 => "\xa8", 0x00000439 => "\xa9", 0x0000043a => "\xaa", 0x0000043b => "\xab", 0x0000043c => "\xac", 0x0000043d => "\xad", 0x0000043e => "\xae", 0x0000043f => "\xaf", 0x00000440 => "\xe0", 0x00000441 => "\xe1", 0x00000442 => "\xe2", 0x00000443 => "\xe3", 0x00000444 => "\xe4", 0x00000445 => "\xe5", 0x00000446 => "\xe6", 0x00000447 => "\xe7", 0x00000448 => "\xe8", 0x00000449 => "\xe9", 0x0000044a => "\xea", 0x0000044b => "\xeb", 0x0000044c => "\xec", 0x0000044d => "\xed", 0x0000044e => "\xee", 0x0000044f => "\xef", 0x00000451 => "\xf1", 0x00000454 => "\xf3", 0x00000457 => "\xf5", 0x0000045e => "\xf7", 0x00002116 => "\xfc", 0x00002219 => "\xf9", 0x0000221a => "\xfb", 0x00002500 => "\xc4", 0x00002502 => "\xb3", 0x0000250c => "\xda", 0x00002510 => "\xbf", 0x00002514 => "\xc0", 0x00002518 => "\xd9", 0x0000251c => "\xc3", 0x00002524 => "\xb4", 0x0000252c => "\xc2", 0x00002534 => "\xc1", 0x0000253c => "\xc5", 0x00002550 => "\xcd", 0x00002551 => "\xba", 0x00002552 => "\xd5", 0x00002553 => "\xd6", 0x00002554 => "\xc9", 0x00002555 => "\xb8", 0x00002556 => "\xb7", 0x00002557 => "\xbb", 0x00002558 => "\xd4", 0x00002559 => "\xd3", 0x0000255a => "\xc8", 0x0000255b => "\xbe", 0x0000255c => "\xbd", 0x0000255d => "\xbc", 0x0000255e => "\xc6", 0x0000255f => "\xc7", 0x00002560 => "\xcc", 0x00002561 => "\xb5", 0x00002562 => "\xb6", 0x00002563 => "\xb9", 0x00002564 => "\xd1", 0x00002565 => "\xd2", 0x00002566 => "\xcb", 0x00002567 => "\xcf", 0x00002568 => "\xd0", 0x00002569 => "\xca", 0x0000256a => "\xd8", 0x0000256b => "\xd7", 0x0000256c => "\xce", 0x00002580 => "\xdf", 0x00002584 => "\xdc", 0x00002588 => "\xdb", 0x0000258c => "\xdd", 0x00002590 => "\xde", 0x00002591 => "\xb0", 0x00002592 => "\xb1", 0x00002593 => "\xb2", 0x000025a0 => "\xfe", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM866 - Conversion routines for IBM866 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM866. =head1 COMMENTS The following comments have been extracted from the original charmap: automatically generated from the charDB alias CP866 alias 866 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL 01 | 00000001 | START OF HEADING 02 | 00000002 | START OF TEXT 03 | 00000003 | END OF TEXT 04 | 00000004 | END OF TRANSMISSION 05 | 00000005 | ENQUIRY 06 | 00000006 | ACKNOWLEDGE 07 | 00000007 | BELL 08 | 00000008 | BACKSPACE 09 | 00000009 | HORIZONTAL TABULATION 0A | 0000000A | LINE FEED 0B | 0000000B | VERTICAL TABULATION 0C | 0000000C | FORM FEED 0D | 0000000D | CARRIAGE RETURN 0E | 0000000E | SHIFT OUT 0F | 0000000F | SHIFT IN 10 | 00000010 | DATA LINK ESCAPE 11 | 00000011 | DEVICE CONTROL ONE 12 | 00000012 | DEVICE CONTROL TWO 13 | 00000013 | DEVICE CONTROL THREE 14 | 00000014 | DEVICE CONTROL FOUR 15 | 00000015 | NEGATIVE ACKNOWLEDGE 16 | 00000016 | SYNCHRONOUS IDLE 17 | 00000017 | END OF TRANSMISSION BLOCK 18 | 00000018 | CANCEL 19 | 00000019 | END OF MEDIUM 1A | 0000001A | SUBSTITUTE 1B | 0000001B | ESCAPE 1C | 0000001C | FILE SEPARATOR 1D | 0000001D | GROUP SEPARATOR 1E | 0000001E | RECORD SEPARATOR 1F | 0000001F | UNIT SEPARATOR 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE 80 | 00000410 | CYRILLIC CAPITAL LETTER A 81 | 00000411 | CYRILLIC CAPITAL LETTER BE 82 | 00000412 | CYRILLIC CAPITAL LETTER VE 83 | 00000413 | CYRILLIC CAPITAL LETTER GHE 84 | 00000414 | CYRILLIC CAPITAL LETTER DE 85 | 00000415 | CYRILLIC CAPITAL LETTER IE 86 | 00000416 | CYRILLIC CAPITAL LETTER ZHE 87 | 00000417 | CYRILLIC CAPITAL LETTER ZE 88 | 00000418 | CYRILLIC CAPITAL LETTER I 89 | 00000419 | CYRILLIC CAPITAL LETTER SHORT I 8A | 0000041A | CYRILLIC CAPITAL LETTER KA 8B | 0000041B | CYRILLIC CAPITAL LETTER EL 8C | 0000041C | CYRILLIC CAPITAL LETTER EM 8D | 0000041D | CYRILLIC CAPITAL LETTER EN 8E | 0000041E | CYRILLIC CAPITAL LETTER O 8F | 0000041F | CYRILLIC CAPITAL LETTER PE 90 | 00000420 | CYRILLIC CAPITAL LETTER ER 91 | 00000421 | CYRILLIC CAPITAL LETTER ES 92 | 00000422 | CYRILLIC CAPITAL LETTER TE 93 | 00000423 | CYRILLIC CAPITAL LETTER U 94 | 00000424 | CYRILLIC CAPITAL LETTER EF 95 | 00000425 | CYRILLIC CAPITAL LETTER HA 96 | 00000426 | CYRILLIC CAPITAL LETTER TSE 97 | 00000427 | CYRILLIC CAPITAL LETTER CHE 98 | 00000428 | CYRILLIC CAPITAL LETTER SHA 99 | 00000429 | CYRILLIC CAPITAL LETTER SHCHA 9A | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN 9B | 0000042B | CYRILLIC CAPITAL LETTER YERU 9C | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN 9D | 0000042D | CYRILLIC CAPITAL LETTER E 9E | 0000042E | CYRILLIC CAPITAL LETTER YU 9F | 0000042F | CYRILLIC CAPITAL LETTER YA A0 | 00000430 | CYRILLIC SMALL LETTER A A1 | 00000431 | CYRILLIC SMALL LETTER BE A2 | 00000432 | CYRILLIC SMALL LETTER VE A3 | 00000433 | CYRILLIC SMALL LETTER GHE A4 | 00000434 | CYRILLIC SMALL LETTER DE A5 | 00000435 | CYRILLIC SMALL LETTER IE A6 | 00000436 | CYRILLIC SMALL LETTER ZHE A7 | 00000437 | CYRILLIC SMALL LETTER ZE A8 | 00000438 | CYRILLIC SMALL LETTER I A9 | 00000439 | CYRILLIC SMALL LETTER SHORT I AA | 0000043A | CYRILLIC SMALL LETTER KA AB | 0000043B | CYRILLIC SMALL LETTER EL AC | 0000043C | CYRILLIC SMALL LETTER EM AD | 0000043D | CYRILLIC SMALL LETTER EN AE | 0000043E | CYRILLIC SMALL LETTER O AF | 0000043F | CYRILLIC SMALL LETTER PE B0 | 00002591 | LIGHT SHADE B1 | 00002592 | MEDIUM SHADE B2 | 00002593 | DARK SHADE B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT B5 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE B6 | 00002562 | BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE B7 | 00002556 | BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE B8 | 00002555 | BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT BD | 0000255C | BOX DRAWINGS UP DOUBLE AND LEFT SINGLE BE | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL C6 | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE C7 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL CF | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE D0 | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE D1 | 00002564 | BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE D2 | 00002565 | BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE D3 | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE D4 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE D5 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE D6 | 00002553 | BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE D7 | 0000256B | BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE D8 | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT DB | 00002588 | FULL BLOCK DC | 00002584 | LOWER HALF BLOCK DD | 0000258C | LEFT HALF BLOCK DE | 00002590 | RIGHT HALF BLOCK DF | 00002580 | UPPER HALF BLOCK E0 | 00000440 | CYRILLIC SMALL LETTER ER E1 | 00000441 | CYRILLIC SMALL LETTER ES E2 | 00000442 | CYRILLIC SMALL LETTER TE E3 | 00000443 | CYRILLIC SMALL LETTER U E4 | 00000444 | CYRILLIC SMALL LETTER EF E5 | 00000445 | CYRILLIC SMALL LETTER HA E6 | 00000446 | CYRILLIC SMALL LETTER TSE E7 | 00000447 | CYRILLIC SMALL LETTER CHE E8 | 00000448 | CYRILLIC SMALL LETTER SHA E9 | 00000449 | CYRILLIC SMALL LETTER SHCHA EA | 0000044A | CYRILLIC SMALL LETTER HARD SIGN EB | 0000044B | CYRILLIC SMALL LETTER YERU EC | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN ED | 0000044D | CYRILLIC SMALL LETTER E EE | 0000044E | CYRILLIC SMALL LETTER YU EF | 0000044F | CYRILLIC SMALL LETTER YA F0 | 00000401 | CYRILLIC CAPITAL LETTER IO F1 | 00000451 | CYRILLIC SMALL LETTER IO F2 | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE F3 | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE F4 | 00000407 | CYRILLIC CAPITAL LETTER YI F5 | 00000457 | CYRILLIC SMALL LETTER YI F6 | 0000040E | CYRILLIC CAPITAL LETTER SHORT U F7 | 0000045E | CYRILLIC SMALL LETTER SHORT U F8 | 000000B0 | DEGREE SIGN F9 | 00002219 | BULLET OPERATOR FA | 000000B7 | MIDDLE DOT FB | 0000221A | SQUARE ROOT FC | 00002116 | NUMERO SIGN FD | 000000A4 | CURRENCY SIGN FE | 000025A0 | BLACK SQUARE FF | 000000A0 | NO-BREAK SPACE =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]dĨjjRecodeData/ECMA_CYRILLIC.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ECMA-CYRILLIC. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ECMA_CYRILLIC; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x0452, 0x0453, 0x0451, 0x0454, 0x0455, 0x0456, 0x0457, 0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x00ad, 0x045e, 0x045f, 0x2116, 0x0402, 0x0403, 0x0401, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x00a4, 0x040e, 0x040f, 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\xc2\x85", "\xc2\x86", "\xc2\x87", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\xc2\x8d", "\xc2\x8e", "\xc2\x8f", "\xc2\x90", "\xc2\x91", "\xc2\x92", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\xc2\x97", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\xc2\x9c", "\xc2\x9d", "\xc2\x9e", "\xc2\x9f", "\xc2\xa0", "\xd1\x92", "\xd1\x93", "\xd1\x91", "\xd1\x94", "\xd1\x95", "\xd1\x96", "\xd1\x97", "\xd1\x98", "\xd1\x99", "\xd1\x9a", "\xd1\x9b", "\xd1\x9c", "\xc2\xad", "\xd1\x9e", "\xd1\x9f", "\xe2\x84\x96", "\xd0\x82", "\xd0\x83", "\xd0\x81", "\xd0\x84", "\xd0\x85", "\xd0\x86", "\xd0\x87", "\xd0\x88", "\xd0\x89", "\xd0\x8a", "\xd0\x8b", "\xd0\x8c", "\xc2\xa4", "\xd0\x8e", "\xd0\x8f", "\xd1\x8e", "\xd0\xb0", "\xd0\xb1", "\xd1\x86", "\xd0\xb4", "\xd0\xb5", "\xd1\x84", "\xd0\xb3", "\xd1\x85", "\xd0\xb8", "\xd0\xb9", "\xd0\xba", "\xd0\xbb", "\xd0\xbc", "\xd0\xbd", "\xd0\xbe", "\xd0\xbf", "\xd1\x8f", "\xd1\x80", "\xd1\x81", "\xd1\x82", "\xd1\x83", "\xd0\xb6", "\xd0\xb2", "\xd1\x8c", "\xd1\x8b", "\xd0\xb7", "\xd1\x88", "\xd1\x8d", "\xd1\x89", "\xd1\x87", "\xd1\x8a", "\xd0\xae", "\xd0\x90", "\xd0\x91", "\xd0\xa6", "\xd0\x94", "\xd0\x95", "\xd0\xa4", "\xd0\x93", "\xd0\xa5", "\xd0\x98", "\xd0\x99", "\xd0\x9a", "\xd0\x9b", "\xd0\x9c", "\xd0\x9d", "\xd0\x9e", "\xd0\x9f", "\xd0\xaf", "\xd0\xa0", "\xd0\xa1", "\xd0\xa2", "\xd0\xa3", "\xd0\x96", "\xd0\x92", "\xd0\xac", "\xd0\xab", "\xd0\x97", "\xd0\xa8", "\xd0\xad", "\xd0\xa9", "\xd0\xa7", "\xd0\xaa", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000080 => "\x80", 0x00000081 => "\x81", 0x00000082 => "\x82", 0x00000083 => "\x83", 0x00000084 => "\x84", 0x00000085 => "\x85", 0x00000086 => "\x86", 0x00000087 => "\x87", 0x00000088 => "\x88", 0x00000089 => "\x89", 0x0000008a => "\x8a", 0x0000008b => "\x8b", 0x0000008c => "\x8c", 0x0000008d => "\x8d", 0x0000008e => "\x8e", 0x0000008f => "\x8f", 0x00000090 => "\x90", 0x00000091 => "\x91", 0x00000092 => "\x92", 0x00000093 => "\x93", 0x00000094 => "\x94", 0x00000095 => "\x95", 0x00000096 => "\x96", 0x00000097 => "\x97", 0x00000098 => "\x98", 0x00000099 => "\x99", 0x0000009a => "\x9a", 0x0000009b => "\x9b", 0x0000009c => "\x9c", 0x0000009d => "\x9d", 0x0000009e => "\x9e", 0x0000009f => "\x9f", 0x000000a0 => "\xa0", 0x000000a4 => "\xbd", 0x000000ad => "\xad", 0x00000401 => "\xb3", 0x00000402 => "\xb1", 0x00000403 => "\xb2", 0x00000404 => "\xb4", 0x00000405 => "\xb5", 0x00000406 => "\xb6", 0x00000407 => "\xb7", 0x00000408 => "\xb8", 0x00000409 => "\xb9", 0x0000040a => "\xba", 0x0000040b => "\xbb", 0x0000040c => "\xbc", 0x0000040e => "\xbe", 0x0000040f => "\xbf", 0x00000410 => "\xe1", 0x00000411 => "\xe2", 0x00000412 => "\xf7", 0x00000413 => "\xe7", 0x00000414 => "\xe4", 0x00000415 => "\xe5", 0x00000416 => "\xf6", 0x00000417 => "\xfa", 0x00000418 => "\xe9", 0x00000419 => "\xea", 0x0000041a => "\xeb", 0x0000041b => "\xec", 0x0000041c => "\xed", 0x0000041d => "\xee", 0x0000041e => "\xef", 0x0000041f => "\xf0", 0x00000420 => "\xf2", 0x00000421 => "\xf3", 0x00000422 => "\xf4", 0x00000423 => "\xf5", 0x00000424 => "\xe6", 0x00000425 => "\xe8", 0x00000426 => "\xe3", 0x00000427 => "\xfe", 0x00000428 => "\xfb", 0x00000429 => "\xfd", 0x0000042a => "\xff", 0x0000042b => "\xf9", 0x0000042c => "\xf8", 0x0000042d => "\xfc", 0x0000042e => "\xe0", 0x0000042f => "\xf1", 0x00000430 => "\xc1", 0x00000431 => "\xc2", 0x00000432 => "\xd7", 0x00000433 => "\xc7", 0x00000434 => "\xc4", 0x00000435 => "\xc5", 0x00000436 => "\xd6", 0x00000437 => "\xda", 0x00000438 => "\xc9", 0x00000439 => "\xca", 0x0000043a => "\xcb", 0x0000043b => "\xcc", 0x0000043c => "\xcd", 0x0000043d => "\xce", 0x0000043e => "\xcf", 0x0000043f => "\xd0", 0x00000440 => "\xd2", 0x00000441 => "\xd3", 0x00000442 => "\xd4", 0x00000443 => "\xd5", 0x00000444 => "\xc6", 0x00000445 => "\xc8", 0x00000446 => "\xc3", 0x00000447 => "\xde", 0x00000448 => "\xdb", 0x00000449 => "\xdd", 0x0000044a => "\xdf", 0x0000044b => "\xd9", 0x0000044c => "\xd8", 0x0000044d => "\xdc", 0x0000044e => "\xc0", 0x0000044f => "\xd1", 0x00000451 => "\xa3", 0x00000452 => "\xa1", 0x00000453 => "\xa2", 0x00000454 => "\xa4", 0x00000455 => "\xa5", 0x00000456 => "\xa6", 0x00000457 => "\xa7", 0x00000458 => "\xa8", 0x00000459 => "\xa9", 0x0000045a => "\xaa", 0x0000045b => "\xab", 0x0000045c => "\xac", 0x0000045e => "\xae", 0x0000045f => "\xaf", 0x00002116 => "\xb0", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ECMA_CYRILLIC - Conversion routines for ECMA_CYRILLIC =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for ECMA-CYRILLIC. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: ECMA registry alias ISO-IR-111 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000080 | PADDING CHARACTER (PAD) 81 | 00000081 | HIGH OCTET PRESET (HOP) 82 | 00000082 | BREAK PERMITTED HERE (BPH) 83 | 00000083 | NO BREAK HERE (NBH) 84 | 00000084 | INDEX (IND) 85 | 00000085 | NEXT LINE (NEL) 86 | 00000086 | START OF SELECTED AREA (SSA) 87 | 00000087 | END OF SELECTED AREA (ESA) 88 | 00000088 | CHARACTER TABULATION SET (HTS) 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 8A | 0000008A | LINE TABULATION SET (VTS) 8B | 0000008B | PARTIAL LINE FORWARD (PLD) 8C | 0000008C | PARTIAL LINE BACKWARD (PLU) 8D | 0000008D | REVERSE LINE FEED (RI) 8E | 0000008E | SINGLE-SHIFT TWO (SS2) 8F | 0000008F | SINGLE-SHIFT THREE (SS3) 90 | 00000090 | DEVICE CONTROL STRING (DCS) 91 | 00000091 | PRIVATE USE ONE (PU1) 92 | 00000092 | PRIVATE USE TWO (PU2) 93 | 00000093 | SET TRANSMIT STATE (STS) 94 | 00000094 | CANCEL CHARACTER (CCH) 95 | 00000095 | MESSAGE WAITING (MW) 96 | 00000096 | START OF GUARDED AREA (SPA) 97 | 00000097 | END OF GUARDED AREA (EPA) 98 | 00000098 | START OF STRING (SOS) 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 9C | 0000009C | STRING TERMINATOR (ST) 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC) 9E | 0000009E | PRIVACY MESSAGE (PM) 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC) A0 | 000000A0 | NO-BREAK SPACE A1 | 00000452 | CYRILLIC SMALL LETTER DJE (Serbocroatian) A2 | 00000453 | CYRILLIC SMALL LETTER GJE A3 | 00000451 | CYRILLIC SMALL LETTER IO A4 | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE A5 | 00000455 | CYRILLIC SMALL LETTER DZE A6 | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I A7 | 00000457 | CYRILLIC SMALL LETTER YI (Ukrainian) A8 | 00000458 | CYRILLIC SMALL LETTER JE A9 | 00000459 | CYRILLIC SMALL LETTER LJE AA | 0000045A | CYRILLIC SMALL LETTER NJE AB | 0000045B | CYRILLIC SMALL LETTER TSHE (Serbocroatian) AC | 0000045C | CYRILLIC SMALL LETTER KJE AD | 000000AD | SOFT HYPHEN AE | 0000045E | CYRILLIC SMALL LETTER SHORT U (Byelorussian) AF | 0000045F | CYRILLIC SMALL LETTER DZHE B0 | 00002116 | NUMERO SIGN B1 | 00000402 | CYRILLIC CAPITAL LETTER DJE (Serbocroatian) B2 | 00000403 | CYRILLIC CAPITAL LETTER GJE B3 | 00000401 | CYRILLIC CAPITAL LETTER IO B4 | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE B5 | 00000405 | CYRILLIC CAPITAL LETTER DZE B6 | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I B7 | 00000407 | CYRILLIC CAPITAL LETTER YI (Ukrainian) B8 | 00000408 | CYRILLIC CAPITAL LETTER JE B9 | 00000409 | CYRILLIC CAPITAL LETTER LJE BA | 0000040A | CYRILLIC CAPITAL LETTER NJE BB | 0000040B | CYRILLIC CAPITAL LETTER TSHE (Serbocroatian) BC | 0000040C | CYRILLIC CAPITAL LETTER KJE BD | 000000A4 | CURRENCY SIGN BE | 0000040E | CYRILLIC CAPITAL LETTER SHORT U (Byelorussian) BF | 0000040F | CYRILLIC CAPITAL LETTER DZHE C0 | 0000044E | CYRILLIC SMALL LETTER YU C1 | 00000430 | CYRILLIC SMALL LETTER A C2 | 00000431 | CYRILLIC SMALL LETTER BE C3 | 00000446 | CYRILLIC SMALL LETTER TSE C4 | 00000434 | CYRILLIC SMALL LETTER DE C5 | 00000435 | CYRILLIC SMALL LETTER IE C6 | 00000444 | CYRILLIC SMALL LETTER EF C7 | 00000433 | CYRILLIC SMALL LETTER GHE C8 | 00000445 | CYRILLIC SMALL LETTER HA C9 | 00000438 | CYRILLIC SMALL LETTER I CA | 00000439 | CYRILLIC SMALL LETTER SHORT I CB | 0000043A | CYRILLIC SMALL LETTER KA CC | 0000043B | CYRILLIC SMALL LETTER EL CD | 0000043C | CYRILLIC SMALL LETTER EM CE | 0000043D | CYRILLIC SMALL LETTER EN CF | 0000043E | CYRILLIC SMALL LETTER O D0 | 0000043F | CYRILLIC SMALL LETTER PE D1 | 0000044F | CYRILLIC SMALL LETTER YA D2 | 00000440 | CYRILLIC SMALL LETTER ER D3 | 00000441 | CYRILLIC SMALL LETTER ES D4 | 00000442 | CYRILLIC SMALL LETTER TE D5 | 00000443 | CYRILLIC SMALL LETTER U D6 | 00000436 | CYRILLIC SMALL LETTER ZHE D7 | 00000432 | CYRILLIC SMALL LETTER VE D8 | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN D9 | 0000044B | CYRILLIC SMALL LETTER YERU DA | 00000437 | CYRILLIC SMALL LETTER ZE DB | 00000448 | CYRILLIC SMALL LETTER SHA DC | 0000044D | CYRILLIC SMALL LETTER E DD | 00000449 | CYRILLIC SMALL LETTER SHCHA DE | 00000447 | CYRILLIC SMALL LETTER CHE DF | 0000044A | CYRILLIC SMALL LETTER HARD SIGN E0 | 0000042E | CYRILLIC CAPITAL LETTER YU E1 | 00000410 | CYRILLIC CAPITAL LETTER A E2 | 00000411 | CYRILLIC CAPITAL LETTER BE E3 | 00000426 | CYRILLIC CAPITAL LETTER TSE E4 | 00000414 | CYRILLIC CAPITAL LETTER DE E5 | 00000415 | CYRILLIC CAPITAL LETTER IE E6 | 00000424 | CYRILLIC CAPITAL LETTER EF E7 | 00000413 | CYRILLIC CAPITAL LETTER GHE E8 | 00000425 | CYRILLIC CAPITAL LETTER HA E9 | 00000418 | CYRILLIC CAPITAL LETTER I EA | 00000419 | CYRILLIC CAPITAL LETTER SHORT I EB | 0000041A | CYRILLIC CAPITAL LETTER KA EC | 0000041B | CYRILLIC CAPITAL LETTER EL ED | 0000041C | CYRILLIC CAPITAL LETTER EM EE | 0000041D | CYRILLIC CAPITAL LETTER EN EF | 0000041E | CYRILLIC CAPITAL LETTER O F0 | 0000041F | CYRILLIC CAPITAL LETTER PE F1 | 0000042F | CYRILLIC CAPITAL LETTER YA F2 | 00000420 | CYRILLIC CAPITAL LETTER ER F3 | 00000421 | CYRILLIC CAPITAL LETTER ES F4 | 00000422 | CYRILLIC CAPITAL LETTER TE F5 | 00000423 | CYRILLIC CAPITAL LETTER U F6 | 00000416 | CYRILLIC CAPITAL LETTER ZHE F7 | 00000412 | CYRILLIC CAPITAL LETTER VE F8 | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN F9 | 0000042B | CYRILLIC CAPITAL LETTER YERU FA | 00000417 | CYRILLIC CAPITAL LETTER ZE FB | 00000428 | CYRILLIC CAPITAL LETTER SHA FC | 0000042D | CYRILLIC CAPITAL LETTER E FD | 00000429 | CYRILLIC CAPITAL LETTER SHCHA FE | 00000427 | CYRILLIC CAPITAL LETTER CHE FF | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]ݧIIRecodeData/ISO_5427.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ISO_5427. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ISO_5427; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x00a4, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x007f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\xc2\xa4", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\xd1\x8e", "\xd0\xb0", "\xd0\xb1", "\xd1\x86", "\xd0\xb4", "\xd0\xb5", "\xd1\x84", "\xd0\xb3", "\xd1\x85", "\xd0\xb8", "\xd0\xb9", "\xd0\xba", "\xd0\xbb", "\xd0\xbc", "\xd0\xbd", "\xd0\xbe", "\xd0\xbf", "\xd1\x8f", "\xd1\x80", "\xd1\x81", "\xd1\x82", "\xd1\x83", "\xd0\xb6", "\xd0\xb2", "\xd1\x8c", "\xd1\x8b", "\xd0\xb7", "\xd1\x88", "\xd1\x8d", "\xd1\x89", "\xd1\x87", "\xd1\x8a", "\xd0\xae", "\xd0\x90", "\xd0\x91", "\xd0\xa6", "\xd0\x94", "\xd0\x95", "\xd0\xa4", "\xd0\x93", "\xd0\xa5", "\xd0\x98", "\xd0\x99", "\xd0\x9a", "\xd0\x9b", "\xd0\x9c", "\xd0\x9d", "\xd0\x9e", "\xd0\x9f", "\xd0\xaf", "\xd0\xa0", "\xd0\xa1", "\xd0\xa2", "\xd0\xa3", "\xd0\x96", "\xd0\x92", "\xd0\xac", "\xd0\xab", "\xd0\x97", "\xd0\xa8", "\xd0\xad", "\xd0\xa9", "\xd0\xa7", "\x7f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x0000007f => "\x7f", 0x000000a4 => "\x24", 0x00000410 => "\x61", 0x00000411 => "\x62", 0x00000412 => "\x77", 0x00000413 => "\x67", 0x00000414 => "\x64", 0x00000415 => "\x65", 0x00000416 => "\x76", 0x00000417 => "\x7a", 0x00000418 => "\x69", 0x00000419 => "\x6a", 0x0000041a => "\x6b", 0x0000041b => "\x6c", 0x0000041c => "\x6d", 0x0000041d => "\x6e", 0x0000041e => "\x6f", 0x0000041f => "\x70", 0x00000420 => "\x72", 0x00000421 => "\x73", 0x00000422 => "\x74", 0x00000423 => "\x75", 0x00000424 => "\x66", 0x00000425 => "\x68", 0x00000426 => "\x63", 0x00000427 => "\x7e", 0x00000428 => "\x7b", 0x00000429 => "\x7d", 0x0000042b => "\x79", 0x0000042c => "\x78", 0x0000042d => "\x7c", 0x0000042e => "\x60", 0x0000042f => "\x71", 0x00000430 => "\x41", 0x00000431 => "\x42", 0x00000432 => "\x57", 0x00000433 => "\x47", 0x00000434 => "\x44", 0x00000435 => "\x45", 0x00000436 => "\x56", 0x00000437 => "\x5a", 0x00000438 => "\x49", 0x00000439 => "\x4a", 0x0000043a => "\x4b", 0x0000043b => "\x4c", 0x0000043c => "\x4d", 0x0000043d => "\x4e", 0x0000043e => "\x4f", 0x0000043f => "\x50", 0x00000440 => "\x52", 0x00000441 => "\x53", 0x00000442 => "\x54", 0x00000443 => "\x55", 0x00000444 => "\x46", 0x00000445 => "\x48", 0x00000446 => "\x43", 0x00000447 => "\x5e", 0x00000448 => "\x5b", 0x00000449 => "\x5d", 0x0000044a => "\x5f", 0x0000044b => "\x59", 0x0000044c => "\x58", 0x0000044d => "\x5c", 0x0000044e => "\x40", 0x0000044f => "\x51", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ISO_5427 - Conversion routines for ISO_5427 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for ISO_5427. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: ECMA registry alias ISO-IR-37 alias KOI-7 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 000000A4 | CURRENCY SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 0000044E | CYRILLIC SMALL LETTER YU 41 | 00000430 | CYRILLIC SMALL LETTER A 42 | 00000431 | CYRILLIC SMALL LETTER BE 43 | 00000446 | CYRILLIC SMALL LETTER TSE 44 | 00000434 | CYRILLIC SMALL LETTER DE 45 | 00000435 | CYRILLIC SMALL LETTER IE 46 | 00000444 | CYRILLIC SMALL LETTER EF 47 | 00000433 | CYRILLIC SMALL LETTER GHE 48 | 00000445 | CYRILLIC SMALL LETTER HA 49 | 00000438 | CYRILLIC SMALL LETTER I 4A | 00000439 | CYRILLIC SMALL LETTER SHORT I 4B | 0000043A | CYRILLIC SMALL LETTER KA 4C | 0000043B | CYRILLIC SMALL LETTER EL 4D | 0000043C | CYRILLIC SMALL LETTER EM 4E | 0000043D | CYRILLIC SMALL LETTER EN 4F | 0000043E | CYRILLIC SMALL LETTER O 50 | 0000043F | CYRILLIC SMALL LETTER PE 51 | 0000044F | CYRILLIC SMALL LETTER YA 52 | 00000440 | CYRILLIC SMALL LETTER ER 53 | 00000441 | CYRILLIC SMALL LETTER ES 54 | 00000442 | CYRILLIC SMALL LETTER TE 55 | 00000443 | CYRILLIC SMALL LETTER U 56 | 00000436 | CYRILLIC SMALL LETTER ZHE 57 | 00000432 | CYRILLIC SMALL LETTER VE 58 | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN 59 | 0000044B | CYRILLIC SMALL LETTER YERU 5A | 00000437 | CYRILLIC SMALL LETTER ZE 5B | 00000448 | CYRILLIC SMALL LETTER SHA 5C | 0000044D | CYRILLIC SMALL LETTER E 5D | 00000449 | CYRILLIC SMALL LETTER SHCHA 5E | 00000447 | CYRILLIC SMALL LETTER CHE 5F | 0000044A | CYRILLIC SMALL LETTER HARD SIGN 60 | 0000042E | CYRILLIC CAPITAL LETTER YU 61 | 00000410 | CYRILLIC CAPITAL LETTER A 62 | 00000411 | CYRILLIC CAPITAL LETTER BE 63 | 00000426 | CYRILLIC CAPITAL LETTER TSE 64 | 00000414 | CYRILLIC CAPITAL LETTER DE 65 | 00000415 | CYRILLIC CAPITAL LETTER IE 66 | 00000424 | CYRILLIC CAPITAL LETTER EF 67 | 00000413 | CYRILLIC CAPITAL LETTER GHE 68 | 00000425 | CYRILLIC CAPITAL LETTER HA 69 | 00000418 | CYRILLIC CAPITAL LETTER I 6A | 00000419 | CYRILLIC CAPITAL LETTER SHORT I 6B | 0000041A | CYRILLIC CAPITAL LETTER KA 6C | 0000041B | CYRILLIC CAPITAL LETTER EL 6D | 0000041C | CYRILLIC CAPITAL LETTER EM 6E | 0000041D | CYRILLIC CAPITAL LETTER EN 6F | 0000041E | CYRILLIC CAPITAL LETTER O 70 | 0000041F | CYRILLIC CAPITAL LETTER PE 71 | 0000042F | CYRILLIC CAPITAL LETTER YA 72 | 00000420 | CYRILLIC CAPITAL LETTER ER 73 | 00000421 | CYRILLIC CAPITAL LETTER ES 74 | 00000422 | CYRILLIC CAPITAL LETTER TE 75 | 00000423 | CYRILLIC CAPITAL LETTER U 76 | 00000416 | CYRILLIC CAPITAL LETTER ZHE 77 | 00000412 | CYRILLIC CAPITAL LETTER VE 78 | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN 79 | 0000042B | CYRILLIC CAPITAL LETTER YERU 7A | 00000417 | CYRILLIC CAPITAL LETTER ZE 7B | 00000428 | CYRILLIC CAPITAL LETTER SHA 7C | 0000042D | CYRILLIC CAPITAL LETTER E 7D | 00000429 | CYRILLIC CAPITAL LETTER SHCHA 7E | 00000427 | CYRILLIC CAPITAL LETTER CHE 7F | 0000007F | DELETE (DEL) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK])gZPZPRecodeData/EBCDIC_FR.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for EBCDIC-FR. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::EBCDIC_FR; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a7, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0060, 0x003a, 0x00a3, 0x00e0, 0x0027, 0x003d, 0x0022, 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e7, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xb0", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa7", "\x24", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xb9", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x60", "\x3a", "\xc2\xa3", "\xc3\xa0", "\x27", "\x3d", "\x22", "\xef\xbf\xbd", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa8", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa9", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa8", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa7", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a3 => "\x7b", 0x000000a7 => "\x5a", 0x000000a8 => "\xa1", 0x000000b0 => "\x4a", 0x000000e0 => "\x7c", 0x000000e7 => "\xe0", 0x000000e8 => "\xd0", 0x000000e9 => "\xc0", 0x000000f9 => "\x6a", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::EBCDIC_FR - Conversion routines for EBCDIC_FR =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for EBCDIC-FR. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 4A | 000000B0 | DEGREE SIGN 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 5A | 000000A7 | SECTION SIGN 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 6A | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 000000A3 | POUND SIGN 7C | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R A1 | 000000A8 | DIAERESIS A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z C0 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I D0 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R E0 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK];%kkRecodeData/SAMI_WS2.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for WIN-SAMI-2. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::SAMI_WS2; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x20ac, 0xfffd, 0x010c, 0x0192, 0x010d, 0x01b7, 0x0292, 0x01ee, 0x01ef, 0x0110, 0x0160, 0x2039, 0x0152, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0x0111, 0x01e6, 0x0161, 0x203a, 0x0153, 0xfffd, 0xfffd, 0x0178, 0x00a0, 0x01e7, 0x01e4, 0x00a3, 0x00a4, 0x01e5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x021e, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x021f, 0x00b0, 0x00b1, 0x01e8, 0x01e9, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x014a, 0x014b, 0x0166, 0x00bb, 0x0167, 0x00bd, 0x017d, 0x017e, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xe2\x82\xac", "\xef\xbf\xbd", "\xc4\x8c", "\xc6\x92", "\xc4\x8d", "\xc6\xb7", "\xca\x92", "\xc7\xae", "\xc7\xaf", "\xc4\x90", "\xc5\xa0", "\xe2\x80\xb9", "\xc5\x92", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\xa2", "\xe2\x80\x93", "\xe2\x80\x94", "\xc4\x91", "\xc7\xa6", "\xc5\xa1", "\xe2\x80\xba", "\xc5\x93", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc5\xb8", "\xc2\xa0", "\xc7\xa7", "\xc7\xa4", "\xc2\xa3", "\xc2\xa4", "\xc7\xa5", "\xc2\xa6", "\xc2\xa7", "\xc2\xa8", "\xc2\xa9", "\xc8\x9e", "\xc2\xab", "\xc2\xac", "\xc2\xad", "\xc2\xae", "\xc8\x9f", "\xc2\xb0", "\xc2\xb1", "\xc7\xa8", "\xc7\xa9", "\xc2\xb4", "\xc2\xb5", "\xc2\xb6", "\xc2\xb7", "\xc5\x8a", "\xc5\x8b", "\xc5\xa6", "\xc2\xbb", "\xc5\xa7", "\xc2\xbd", "\xc5\xbd", "\xc5\xbe", "\xc3\x80", "\xc3\x81", "\xc3\x82", "\xc3\x83", "\xc3\x84", "\xc3\x85", "\xc3\x86", "\xc3\x87", "\xc3\x88", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x8c", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x90", "\xc3\x91", "\xc3\x92", "\xc3\x93", "\xc3\x94", "\xc3\x95", "\xc3\x96", "\xc3\x97", "\xc3\x98", "\xc3\x99", "\xc3\x9a", "\xc3\x9b", "\xc3\x9c", "\xc3\x9d", "\xc3\x9e", "\xc3\x9f", "\xc3\xa0", "\xc3\xa1", "\xc3\xa2", "\xc3\xa3", "\xc3\xa4", "\xc3\xa5", "\xc3\xa6", "\xc3\xa7", "\xc3\xa8", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xac", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc3\xb0", "\xc3\xb1", "\xc3\xb2", "\xc3\xb3", "\xc3\xb4", "\xc3\xb5", "\xc3\xb6", "\xc3\xb7", "\xc3\xb8", "\xc3\xb9", "\xc3\xba", "\xc3\xbb", "\xc3\xbc", "\xc3\xbd", "\xc3\xbe", "\xc3\xbf", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xa0", 0x000000a3 => "\xa3", 0x000000a4 => "\xa4", 0x000000a6 => "\xa6", 0x000000a7 => "\xa7", 0x000000a8 => "\xa8", 0x000000a9 => "\xa9", 0x000000ab => "\xab", 0x000000ac => "\xac", 0x000000ad => "\xad", 0x000000ae => "\xae", 0x000000b0 => "\xb0", 0x000000b1 => "\xb1", 0x000000b4 => "\xb4", 0x000000b5 => "\xb5", 0x000000b6 => "\xb6", 0x000000b7 => "\xb7", 0x000000bb => "\xbb", 0x000000bd => "\xbd", 0x000000c0 => "\xc0", 0x000000c1 => "\xc1", 0x000000c2 => "\xc2", 0x000000c3 => "\xc3", 0x000000c4 => "\xc4", 0x000000c5 => "\xc5", 0x000000c6 => "\xc6", 0x000000c7 => "\xc7", 0x000000c8 => "\xc8", 0x000000c9 => "\xc9", 0x000000ca => "\xca", 0x000000cb => "\xcb", 0x000000cc => "\xcc", 0x000000cd => "\xcd", 0x000000ce => "\xce", 0x000000cf => "\xcf", 0x000000d0 => "\xd0", 0x000000d1 => "\xd1", 0x000000d2 => "\xd2", 0x000000d3 => "\xd3", 0x000000d4 => "\xd4", 0x000000d5 => "\xd5", 0x000000d6 => "\xd6", 0x000000d7 => "\xd7", 0x000000d8 => "\xd8", 0x000000d9 => "\xd9", 0x000000da => "\xda", 0x000000db => "\xdb", 0x000000dc => "\xdc", 0x000000dd => "\xdd", 0x000000de => "\xde", 0x000000df => "\xdf", 0x000000e0 => "\xe0", 0x000000e1 => "\xe1", 0x000000e2 => "\xe2", 0x000000e3 => "\xe3", 0x000000e4 => "\xe4", 0x000000e5 => "\xe5", 0x000000e6 => "\xe6", 0x000000e7 => "\xe7", 0x000000e8 => "\xe8", 0x000000e9 => "\xe9", 0x000000ea => "\xea", 0x000000eb => "\xeb", 0x000000ec => "\xec", 0x000000ed => "\xed", 0x000000ee => "\xee", 0x000000ef => "\xef", 0x000000f0 => "\xf0", 0x000000f1 => "\xf1", 0x000000f2 => "\xf2", 0x000000f3 => "\xf3", 0x000000f4 => "\xf4", 0x000000f5 => "\xf5", 0x000000f6 => "\xf6", 0x000000f7 => "\xf7", 0x000000f8 => "\xf8", 0x000000f9 => "\xf9", 0x000000fa => "\xfa", 0x000000fb => "\xfb", 0x000000fc => "\xfc", 0x000000fd => "\xfd", 0x000000fe => "\xfe", 0x000000ff => "\xff", 0x0000010c => "\x82", 0x0000010d => "\x84", 0x00000110 => "\x89", 0x00000111 => "\x98", 0x0000014a => "\xb8", 0x0000014b => "\xb9", 0x00000152 => "\x8c", 0x00000153 => "\x9c", 0x00000160 => "\x8a", 0x00000161 => "\x9a", 0x00000166 => "\xba", 0x00000167 => "\xbc", 0x00000178 => "\x9f", 0x0000017d => "\xbe", 0x0000017e => "\xbf", 0x00000192 => "\x83", 0x000001b7 => "\x85", 0x000001e4 => "\xa2", 0x000001e5 => "\xa5", 0x000001e6 => "\x99", 0x000001e7 => "\xa1", 0x000001e8 => "\xb2", 0x000001e9 => "\xb3", 0x000001ee => "\x87", 0x000001ef => "\x88", 0x0000021e => "\xaa", 0x0000021f => "\xaf", 0x00000292 => "\x86", 0x00002013 => "\x96", 0x00002014 => "\x97", 0x00002018 => "\x91", 0x00002019 => "\x92", 0x0000201c => "\x93", 0x0000201d => "\x94", 0x00002022 => "\x95", 0x00002039 => "\x8b", 0x0000203a => "\x9b", 0x000020ac => "\x80", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::SAMI_WS2 - Conversion routines for SAMI_WS2 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for WIN-SAMI-2. =head1 COMMENTS The following comments have been extracted from the original charmap: source: EURL:http://www2.isl.uit.no/trond/ws2t.htmlE and EURL:http://www.unicode.org/unicode/alloc/Pipeline.htmlE author: Petter Reinholdtsen Epere@td.org.uit.noE date: 1999-01-20 based on info from Trond Trosterud ETrond.Trosterud@hum.uit.noE. This charmap is based on MS CP1252, not ISO 8859/1. alias WS2 alias WINDOWS-SAMI2 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000020AC | EURO SIGN 82 | 0000010C | LATIN CAPITAL LETTER C WITH CARON 83 | 00000192 | LATIN SMALL LETTER F WITH HOOK 84 | 0000010D | LATIN SMALL LETTER C WITH CARON 85 | 000001B7 | LATIN CAPITAL LETTER EZH 86 | 00000292 | LATIN SMALL LETTER EZH 87 | 000001EE | LATIN CAPITAL LETTER EZH WITH CARON 88 | 000001EF | LATIN SMALL LETTER EZH WITH CARON 89 | 00000110 | LATIN CAPITAL LETTER D WITH STROKE 8A | 00000160 | LATIN CAPITAL LETTER S WITH CARON 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK 8C | 00000152 | LATIN CAPITAL LIGATURE OE 91 | 00002018 | LEFT SINGLE QUOTATION MARK 92 | 00002019 | RIGHT SINGLE QUOTATION MARK 93 | 0000201C | LEFT DOUBLE QUOTATION MARK 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK 95 | 00002022 | BULLET 96 | 00002013 | EN DASH 97 | 00002014 | EM DASH 98 | 00000111 | LATIN SMALL LETTER D WITH STROKE 99 | 000001E6 | LATIN CAPITAL LETTER G WITH CARON 9A | 00000161 | LATIN SMALL LETTER S WITH CARON 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 9C | 00000153 | LATIN SMALL LIGATURE OE 9F | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS A0 | 000000A0 | NO-BREAK SPACE A1 | 000001E7 | LATIN SMALL LETTER G WITH CARON A2 | 000001E4 | LATIN CAPITAL LETTER G WITH STROKE A3 | 000000A3 | POUND SIGN A4 | 000000A4 | CURRENCY SIGN A5 | 000001E5 | LATIN SMALL LETTER G WITH STROKE A6 | 000000A6 | BROKEN BAR A7 | 000000A7 | SECTION SIGN A8 | 000000A8 | DIAERESIS A9 | 000000A9 | COPYRIGHT SIGN AA | 0000021E | LATIN CAPITAL LETTER H WITH CARON AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AC | 000000AC | NOT SIGN AD | 000000AD | SOFT HYPHEN AE | 000000AE | REGISTERED SIGN AF | 0000021F | LATIN SMALL LETTER H WITH CARON B0 | 000000B0 | DEGREE SIGN B1 | 000000B1 | PLUS-MINUS SIGN B2 | 000001E8 | LATIN CAPITAL LETTER K WITH CARON B3 | 000001E9 | LATIN SMALL LETTER K WITH CARON B4 | 000000B4 | ACUTE ACCENT B5 | 000000B5 | MICRO SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000B7 | MIDDLE DOT B8 | 0000014A | LATIN CAPITAL LETTER ENG (Sami) B9 | 0000014B | LATIN SMALL LETTER ENG (Sami) BA | 00000166 | LATIN CAPITAL LETTER T WITH STROKE BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK BC | 00000167 | LATIN SMALL LETTER T WITH STROKE BD | 000000BD | VULGAR FRACTION ONE HALF BE | 0000017D | LATIN CAPITAL LETTER Z WITH CARON BF | 0000017E | LATIN SMALL LETTER Z WITH CARON C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE C6 | 000000C6 | LATIN CAPITAL LETTER AE C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS D0 | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic) D1 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS D7 | 000000D7 | MULTIPLICATION SIGN D8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS DD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE DE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic) DF | 000000DF | LATIN SMALL LETTER SHARP S (German) E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE E6 | 000000E6 | LATIN SMALL LETTER AE E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS F0 | 000000F0 | LATIN SMALL LETTER ETH (Icelandic) F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS F7 | 000000F7 | DIVISION SIGN F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE FE | 000000FE | LATIN SMALL LETTER THORN (Icelandic) FF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]cRecodeData/_Encode.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Interface to Encode. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::_Encode; use strict; use integer; use Encode; require Locale::RecodeData; use base qw (Locale::RecodeData); sub _recode { use bytes; my $retval; if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = pack "N*", @{$_[1]}; $retval = Encode::from_to ($_[1], 'UTF-32BE', $_[0]->{_to}); } elsif ($_[0]->{_to} eq 'INTERNAL') { $retval = Encode::from_to ($_[1], $_[0]->{_from}, 'UTF-32BE'); return unless defined $retval; $_[1] = [ unpack "N*", $_[1] ]; } else { $retval = Encode::from_to ($_[1], $_[0]->{_from}, $_[0]->{_to}); } return unless defined $retval; return 1; } 1; __END__ =head1 NAME Locale::RecodeData::_Encode - Internal wrapper around Encode =head1 SYNOPSIS use Locale::RecodeData::_Encode; This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module converts text with the help of Encode(3). It is tried first for conversions if libintl-perl detects the presence of Encode. =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::Recode(3), Encode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]ǻݒjjRecodeData/IBM278.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM278. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM278; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x203e, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xc2\xa0", "\xc3\xa2", "\x7b", "\xc3\xa0", "\xc3\xa1", "\xc3\xa3", "\x7d", "\xc3\xa7", "\xc3\xb1", "\xc2\xa7", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\x60", "\xc3\xaa", "\xc3\xab", "\xc3\xa8", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc3\xac", "\xc3\x9f", "\xc2\xa4", "\xc3\x85", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xc3\x82", "\x23", "\xc3\x80", "\xc3\x81", "\xc3\x83", "\x24", "\xc3\x87", "\xc3\x91", "\xc3\xb6", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xc3\xb8", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x88", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x8c", "\xc3\xa9", "\x3a", "\xc3\x84", "\xc3\x96", "\x27", "\x3d", "\x22", "\xc3\x98", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xc2\xab", "\xc2\xbb", "\xc3\xb0", "\xc3\xbd", "\xc3\xbe", "\xc2\xb1", "\xc2\xb0", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xc2\xaa", "\xc2\xba", "\xc3\xa6", "\xc2\xb8", "\xc3\x86", "\x5d", "\xc2\xb5", "\xc3\xbc", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xc2\xa1", "\xc2\xbf", "\xc3\x90", "\xc3\x9d", "\xc3\x9e", "\xc2\xae", "\xc2\xa2", "\xc2\xa3", "\xc2\xa5", "\xc2\xb7", "\xc2\xa9", "\x5b", "\xc2\xb6", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\xc2\xac", "\x7c", "\xe2\x80\xbe", "\xc2\xa8", "\xc2\xb4", "\xc3\x97", "\xc3\xa4", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xc2\xad", "\xc3\xb4", "\xc2\xa6", "\xc3\xb2", "\xc3\xb3", "\xc3\xb5", "\xc3\xa5", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xc2\xb9", "\xc3\xbb", "\x7e", "\xc3\xb9", "\xc3\xba", "\xc3\xbf", "\x5c", "\xc3\xb7", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xc2\xb2", "\xc3\x94", "\x40", "\xc3\x92", "\xc3\x93", "\xc3\x95", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xc2\xb3", "\xc3\x9b", "\xc3\x9c", "\xc3\x99", "\xc3\x9a", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000023 => "\x63", 0x00000024 => "\x67", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\xec", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\xb5", 0x0000005c => "\xe0", 0x0000005d => "\x9f", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000060 => "\x51", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\x43", 0x0000007c => "\xbb", 0x0000007d => "\x47", 0x0000007e => "\xdc", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a0 => "\x41", 0x000000a1 => "\xaa", 0x000000a2 => "\xb0", 0x000000a3 => "\xb1", 0x000000a4 => "\x5a", 0x000000a5 => "\xb2", 0x000000a6 => "\xcc", 0x000000a7 => "\x4a", 0x000000a8 => "\xbd", 0x000000a9 => "\xb4", 0x000000aa => "\x9a", 0x000000ab => "\x8a", 0x000000ac => "\xba", 0x000000ad => "\xca", 0x000000ae => "\xaf", 0x000000b0 => "\x90", 0x000000b1 => "\x8f", 0x000000b2 => "\xea", 0x000000b3 => "\xfa", 0x000000b4 => "\xbe", 0x000000b5 => "\xa0", 0x000000b6 => "\xb6", 0x000000b7 => "\xb3", 0x000000b8 => "\x9d", 0x000000b9 => "\xda", 0x000000ba => "\x9b", 0x000000bb => "\x8b", 0x000000bc => "\xb7", 0x000000bd => "\xb8", 0x000000be => "\xb9", 0x000000bf => "\xab", 0x000000c0 => "\x64", 0x000000c1 => "\x65", 0x000000c2 => "\x62", 0x000000c3 => "\x66", 0x000000c4 => "\x7b", 0x000000c5 => "\x5b", 0x000000c6 => "\x9e", 0x000000c7 => "\x68", 0x000000c8 => "\x74", 0x000000c9 => "\x71", 0x000000ca => "\x72", 0x000000cb => "\x73", 0x000000cc => "\x78", 0x000000cd => "\x75", 0x000000ce => "\x76", 0x000000cf => "\x77", 0x000000d0 => "\xac", 0x000000d1 => "\x69", 0x000000d2 => "\xed", 0x000000d3 => "\xee", 0x000000d4 => "\xeb", 0x000000d5 => "\xef", 0x000000d6 => "\x7c", 0x000000d7 => "\xbf", 0x000000d8 => "\x80", 0x000000d9 => "\xfd", 0x000000da => "\xfe", 0x000000db => "\xfb", 0x000000dc => "\xfc", 0x000000dd => "\xad", 0x000000de => "\xae", 0x000000df => "\x59", 0x000000e0 => "\x44", 0x000000e1 => "\x45", 0x000000e2 => "\x42", 0x000000e3 => "\x46", 0x000000e4 => "\xc0", 0x000000e5 => "\xd0", 0x000000e6 => "\x9c", 0x000000e7 => "\x48", 0x000000e8 => "\x54", 0x000000e9 => "\x79", 0x000000ea => "\x52", 0x000000eb => "\x53", 0x000000ec => "\x58", 0x000000ed => "\x55", 0x000000ee => "\x56", 0x000000ef => "\x57", 0x000000f0 => "\x8c", 0x000000f1 => "\x49", 0x000000f2 => "\xcd", 0x000000f3 => "\xce", 0x000000f4 => "\xcb", 0x000000f5 => "\xcf", 0x000000f6 => "\x6a", 0x000000f7 => "\xe1", 0x000000f8 => "\x70", 0x000000f9 => "\xdd", 0x000000fa => "\xde", 0x000000fb => "\xdb", 0x000000fc => "\xa1", 0x000000fd => "\x8d", 0x000000fe => "\x8e", 0x000000ff => "\xdf", 0x0000203e => "\xbc", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM278 - Conversion routines for IBM278 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM278. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP278 alias EBCDIC-CP-FI alias EBCDIC-CP-SE Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 41 | 000000A0 | NO-BREAK SPACE 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 43 | 0000007B | LEFT CURLY BRACKET 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE 47 | 0000007D | RIGHT CURLY BRACKET 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE 4A | 000000A7 | SECTION SIGN 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 51 | 00000060 | GRAVE ACCENT 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE 59 | 000000DF | LATIN SMALL LETTER SHARP S (German) 5A | 000000A4 | CURRENCY SIGN 5B | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX 63 | 00000023 | NUMBER SIGN 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE 67 | 00000024 | DOLLAR SIGN 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 6A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE 79 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 7A | 0000003A | COLON 7B | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 7C | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic) 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE 8E | 000000FE | LATIN SMALL LETTER THORN (Icelandic) 8F | 000000B1 | PLUS-MINUS SIGN 90 | 000000B0 | DEGREE SIGN 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R 9A | 000000AA | FEMININE ORDINAL INDICATOR 9B | 000000BA | MASCULINE ORDINAL INDICATOR 9C | 000000E6 | LATIN SMALL LETTER AE 9D | 000000B8 | CEDILLA 9E | 000000C6 | LATIN CAPITAL LETTER AE 9F | 0000005D | RIGHT SQUARE BRACKET A0 | 000000B5 | MICRO SIGN A1 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z AA | 000000A1 | INVERTED EXCLAMATION MARK AB | 000000BF | INVERTED QUESTION MARK AC | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic) AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE AE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic) AF | 000000AE | REGISTERED SIGN B0 | 000000A2 | CENT SIGN B1 | 000000A3 | POUND SIGN B2 | 000000A5 | YEN SIGN B3 | 000000B7 | MIDDLE DOT B4 | 000000A9 | COPYRIGHT SIGN B5 | 0000005B | LEFT SQUARE BRACKET B6 | 000000B6 | PILCROW SIGN B7 | 000000BC | VULGAR FRACTION ONE QUARTER B8 | 000000BD | VULGAR FRACTION ONE HALF B9 | 000000BE | VULGAR FRACTION THREE QUARTERS BA | 000000AC | NOT SIGN BB | 0000007C | VERTICAL LINE BC | 0000203E | OVERLINE BD | 000000A8 | DIAERESIS BE | 000000B4 | ACUTE ACCENT BF | 000000D7 | MULTIPLICATION SIGN C0 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I CA | 000000AD | SOFT HYPHEN CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX CC | 000000A6 | BROKEN BAR CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE D0 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R DA | 000000B9 | SUPERSCRIPT ONE DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX DC | 0000007E | TILDE DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS E0 | 0000005C | REVERSE SOLIDUS E1 | 000000F7 | DIVISION SIGN E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z EA | 000000B2 | SUPERSCRIPT TWO EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX EC | 00000040 | COMMERCIAL AT ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FA | 000000B3 | SUPERSCRIPT THREE FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]8 }H}HRecodeData/INIS_CYRILLIC.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for INIS-CYRILLIC. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::INIS_CYRILLIC; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x221a, 0xfffd, 0x2192, 0x222b, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03a3, 0x03bc, 0x03bd, 0x03c9, 0x03c0, 0x039e, 0x0394, 0x039b, 0x03a9, 0x042a, 0x207b, 0x207a, 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x007f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe2\x88\x9a", "\xef\xbf\xbd", "\xe2\x86\x92", "\xe2\x88\xab", "\xce\xb1", "\xce\xb2", "\xce\xb3", "\xce\xb4", "\xce\xa3", "\xce\xbc", "\xce\xbd", "\xcf\x89", "\xcf\x80", "\xce\x9e", "\xce\x94", "\xce\x9b", "\xce\xa9", "\xd0\xaa", "\xe2\x81\xbb", "\xe2\x81\xba", "\xd1\x8e", "\xd0\xb0", "\xd0\xb1", "\xd1\x86", "\xd0\xb4", "\xd0\xb5", "\xd1\x84", "\xd0\xb3", "\xd1\x85", "\xd0\xb8", "\xd0\xb9", "\xd0\xba", "\xd0\xbb", "\xd0\xbc", "\xd0\xbd", "\xd0\xbe", "\xd0\xbf", "\xd1\x8f", "\xd1\x80", "\xd1\x81", "\xd1\x82", "\xd1\x83", "\xd0\xb6", "\xd0\xb2", "\xd1\x8c", "\xd1\x8b", "\xd0\xb7", "\xd1\x88", "\xd1\x8d", "\xd1\x89", "\xd1\x87", "\xd1\x8a", "\xd0\xae", "\xd0\x90", "\xd0\x91", "\xd0\xa6", "\xd0\x94", "\xd0\x95", "\xd0\xa4", "\xd0\x93", "\xd0\xa5", "\xd0\x98", "\xd0\x99", "\xd0\x9a", "\xd0\x9b", "\xd0\x9c", "\xd0\x9d", "\xd0\x9e", "\xd0\x9f", "\xd0\xaf", "\xd0\xa0", "\xd0\xa1", "\xd0\xa2", "\xd0\xa3", "\xd0\x96", "\xd0\x92", "\xd0\xac", "\xd0\xab", "\xd0\x97", "\xd0\xa8", "\xd0\xad", "\xd0\xa9", "\xd0\xa7", "\x7f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x0000007f => "\x7f", 0x00000394 => "\x3a", 0x0000039b => "\x3b", 0x0000039e => "\x39", 0x000003a3 => "\x34", 0x000003a9 => "\x3c", 0x000003b1 => "\x30", 0x000003b2 => "\x31", 0x000003b3 => "\x32", 0x000003b4 => "\x33", 0x000003bc => "\x35", 0x000003bd => "\x36", 0x000003c0 => "\x38", 0x000003c9 => "\x37", 0x00000410 => "\x61", 0x00000411 => "\x62", 0x00000412 => "\x77", 0x00000413 => "\x67", 0x00000414 => "\x64", 0x00000415 => "\x65", 0x00000416 => "\x76", 0x00000417 => "\x7a", 0x00000418 => "\x69", 0x00000419 => "\x6a", 0x0000041a => "\x6b", 0x0000041b => "\x6c", 0x0000041c => "\x6d", 0x0000041d => "\x6e", 0x0000041e => "\x6f", 0x0000041f => "\x70", 0x00000420 => "\x72", 0x00000421 => "\x73", 0x00000422 => "\x74", 0x00000423 => "\x75", 0x00000424 => "\x66", 0x00000425 => "\x68", 0x00000426 => "\x63", 0x00000427 => "\x7e", 0x00000428 => "\x7b", 0x00000429 => "\x7d", 0x0000042a => "\x3d", 0x0000042b => "\x79", 0x0000042c => "\x78", 0x0000042d => "\x7c", 0x0000042e => "\x60", 0x0000042f => "\x71", 0x00000430 => "\x41", 0x00000431 => "\x42", 0x00000432 => "\x57", 0x00000433 => "\x47", 0x00000434 => "\x44", 0x00000435 => "\x45", 0x00000436 => "\x56", 0x00000437 => "\x5a", 0x00000438 => "\x49", 0x00000439 => "\x4a", 0x0000043a => "\x4b", 0x0000043b => "\x4c", 0x0000043c => "\x4d", 0x0000043d => "\x4e", 0x0000043e => "\x4f", 0x0000043f => "\x50", 0x00000440 => "\x52", 0x00000441 => "\x53", 0x00000442 => "\x54", 0x00000443 => "\x55", 0x00000444 => "\x46", 0x00000445 => "\x48", 0x00000446 => "\x43", 0x00000447 => "\x5e", 0x00000448 => "\x5b", 0x00000449 => "\x5d", 0x0000044a => "\x5f", 0x0000044b => "\x59", 0x0000044c => "\x58", 0x0000044d => "\x5c", 0x0000044e => "\x40", 0x0000044f => "\x51", 0x0000207a => "\x3f", 0x0000207b => "\x3e", 0x00002192 => "\x2e", 0x0000221a => "\x2c", 0x0000222b => "\x2f", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::INIS_CYRILLIC - Conversion routines for INIS_CYRILLIC =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for INIS-CYRILLIC. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: ECMA registry alias ISO-IR-51 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 2C | 0000221A | SQUARE ROOT 2E | 00002192 | RIGHTWARDS ARROW 2F | 0000222B | INTEGRAL 30 | 000003B1 | GREEK SMALL LETTER ALPHA 31 | 000003B2 | GREEK SMALL LETTER BETA 32 | 000003B3 | GREEK SMALL LETTER GAMMA 33 | 000003B4 | GREEK SMALL LETTER DELTA 34 | 000003A3 | GREEK CAPITAL LETTER SIGMA 35 | 000003BC | GREEK SMALL LETTER MU 36 | 000003BD | GREEK SMALL LETTER NU 37 | 000003C9 | GREEK SMALL LETTER OMEGA 38 | 000003C0 | GREEK SMALL LETTER PI 39 | 0000039E | GREEK CAPITAL LETTER XI 3A | 00000394 | GREEK CAPITAL LETTER DELTA 3B | 0000039B | GREEK CAPITAL LETTER LAMDA 3C | 000003A9 | GREEK CAPITAL LETTER OMEGA 3D | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN 3E | 0000207B | SUPERSCRIPT MINUS 3F | 0000207A | SUPERSCRIPT PLUS SIGN 40 | 0000044E | CYRILLIC SMALL LETTER YU 41 | 00000430 | CYRILLIC SMALL LETTER A 42 | 00000431 | CYRILLIC SMALL LETTER BE 43 | 00000446 | CYRILLIC SMALL LETTER TSE 44 | 00000434 | CYRILLIC SMALL LETTER DE 45 | 00000435 | CYRILLIC SMALL LETTER IE 46 | 00000444 | CYRILLIC SMALL LETTER EF 47 | 00000433 | CYRILLIC SMALL LETTER GHE 48 | 00000445 | CYRILLIC SMALL LETTER HA 49 | 00000438 | CYRILLIC SMALL LETTER I 4A | 00000439 | CYRILLIC SMALL LETTER SHORT I 4B | 0000043A | CYRILLIC SMALL LETTER KA 4C | 0000043B | CYRILLIC SMALL LETTER EL 4D | 0000043C | CYRILLIC SMALL LETTER EM 4E | 0000043D | CYRILLIC SMALL LETTER EN 4F | 0000043E | CYRILLIC SMALL LETTER O 50 | 0000043F | CYRILLIC SMALL LETTER PE 51 | 0000044F | CYRILLIC SMALL LETTER YA 52 | 00000440 | CYRILLIC SMALL LETTER ER 53 | 00000441 | CYRILLIC SMALL LETTER ES 54 | 00000442 | CYRILLIC SMALL LETTER TE 55 | 00000443 | CYRILLIC SMALL LETTER U 56 | 00000436 | CYRILLIC SMALL LETTER ZHE 57 | 00000432 | CYRILLIC SMALL LETTER VE 58 | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN 59 | 0000044B | CYRILLIC SMALL LETTER YERU 5A | 00000437 | CYRILLIC SMALL LETTER ZE 5B | 00000448 | CYRILLIC SMALL LETTER SHA 5C | 0000044D | CYRILLIC SMALL LETTER E 5D | 00000449 | CYRILLIC SMALL LETTER SHCHA 5E | 00000447 | CYRILLIC SMALL LETTER CHE 5F | 0000044A | CYRILLIC SMALL LETTER HARD SIGN 60 | 0000042E | CYRILLIC CAPITAL LETTER YU 61 | 00000410 | CYRILLIC CAPITAL LETTER A 62 | 00000411 | CYRILLIC CAPITAL LETTER BE 63 | 00000426 | CYRILLIC CAPITAL LETTER TSE 64 | 00000414 | CYRILLIC CAPITAL LETTER DE 65 | 00000415 | CYRILLIC CAPITAL LETTER IE 66 | 00000424 | CYRILLIC CAPITAL LETTER EF 67 | 00000413 | CYRILLIC CAPITAL LETTER GHE 68 | 00000425 | CYRILLIC CAPITAL LETTER HA 69 | 00000418 | CYRILLIC CAPITAL LETTER I 6A | 00000419 | CYRILLIC CAPITAL LETTER SHORT I 6B | 0000041A | CYRILLIC CAPITAL LETTER KA 6C | 0000041B | CYRILLIC CAPITAL LETTER EL 6D | 0000041C | CYRILLIC CAPITAL LETTER EM 6E | 0000041D | CYRILLIC CAPITAL LETTER EN 6F | 0000041E | CYRILLIC CAPITAL LETTER O 70 | 0000041F | CYRILLIC CAPITAL LETTER PE 71 | 0000042F | CYRILLIC CAPITAL LETTER YA 72 | 00000420 | CYRILLIC CAPITAL LETTER ER 73 | 00000421 | CYRILLIC CAPITAL LETTER ES 74 | 00000422 | CYRILLIC CAPITAL LETTER TE 75 | 00000423 | CYRILLIC CAPITAL LETTER U 76 | 00000416 | CYRILLIC CAPITAL LETTER ZHE 77 | 00000412 | CYRILLIC CAPITAL LETTER VE 78 | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN 79 | 0000042B | CYRILLIC CAPITAL LETTER YERU 7A | 00000417 | CYRILLIC CAPITAL LETTER ZE 7B | 00000428 | CYRILLIC CAPITAL LETTER SHA 7C | 0000042D | CYRILLIC CAPITAL LETTER E 7D | 00000429 | CYRILLIC CAPITAL LETTER SHCHA 7E | 00000427 | CYRILLIC CAPITAL LETTER CHE 7F | 0000007F | DELETE (DEL) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]1}__RecodeData/ISO_8859_11.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ISO-8859-11. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ISO_8859_11; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f, 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17, 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f, 0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, 0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f, 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37, 0x0e38, 0x0e39, 0x0e3a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0e3f, 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47, 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4e, 0x0e4f, 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, 0x0e58, 0x0e59, 0x0e5a, 0x0e5b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa0", "\xe0\xb8\x81", "\xe0\xb8\x82", "\xe0\xb8\x83", "\xe0\xb8\x84", "\xe0\xb8\x85", "\xe0\xb8\x86", "\xe0\xb8\x87", "\xe0\xb8\x88", "\xe0\xb8\x89", "\xe0\xb8\x8a", "\xe0\xb8\x8b", "\xe0\xb8\x8c", "\xe0\xb8\x8d", "\xe0\xb8\x8e", "\xe0\xb8\x8f", "\xe0\xb8\x90", "\xe0\xb8\x91", "\xe0\xb8\x92", "\xe0\xb8\x93", "\xe0\xb8\x94", "\xe0\xb8\x95", "\xe0\xb8\x96", "\xe0\xb8\x97", "\xe0\xb8\x98", "\xe0\xb8\x99", "\xe0\xb8\x9a", "\xe0\xb8\x9b", "\xe0\xb8\x9c", "\xe0\xb8\x9d", "\xe0\xb8\x9e", "\xe0\xb8\x9f", "\xe0\xb8\xa0", "\xe0\xb8\xa1", "\xe0\xb8\xa2", "\xe0\xb8\xa3", "\xe0\xb8\xa4", "\xe0\xb8\xa5", "\xe0\xb8\xa6", "\xe0\xb8\xa7", "\xe0\xb8\xa8", "\xe0\xb8\xa9", "\xe0\xb8\xaa", "\xe0\xb8\xab", "\xe0\xb8\xac", "\xe0\xb8\xad", "\xe0\xb8\xae", "\xe0\xb8\xaf", "\xe0\xb8\xb0", "\xe0\xb8\xb1", "\xe0\xb8\xb2", "\xe0\xb8\xb3", "\xe0\xb8\xb4", "\xe0\xb8\xb5", "\xe0\xb8\xb6", "\xe0\xb8\xb7", "\xe0\xb8\xb8", "\xe0\xb8\xb9", "\xe0\xb8\xba", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe0\xb8\xbf", "\xe0\xb9\x80", "\xe0\xb9\x81", "\xe0\xb9\x82", "\xe0\xb9\x83", "\xe0\xb9\x84", "\xe0\xb9\x85", "\xe0\xb9\x86", "\xe0\xb9\x87", "\xe0\xb9\x88", "\xe0\xb9\x89", "\xe0\xb9\x8a", "\xe0\xb9\x8b", "\xe0\xb9\x8c", "\xe0\xb9\x8d", "\xe0\xb9\x8e", "\xe0\xb9\x8f", "\xe0\xb9\x90", "\xe0\xb9\x91", "\xe0\xb9\x92", "\xe0\xb9\x93", "\xe0\xb9\x94", "\xe0\xb9\x95", "\xe0\xb9\x96", "\xe0\xb9\x97", "\xe0\xb9\x98", "\xe0\xb9\x99", "\xe0\xb9\x9a", "\xe0\xb9\x9b", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xa0", 0x00000e01 => "\xa1", 0x00000e02 => "\xa2", 0x00000e03 => "\xa3", 0x00000e04 => "\xa4", 0x00000e05 => "\xa5", 0x00000e06 => "\xa6", 0x00000e07 => "\xa7", 0x00000e08 => "\xa8", 0x00000e09 => "\xa9", 0x00000e0a => "\xaa", 0x00000e0b => "\xab", 0x00000e0c => "\xac", 0x00000e0d => "\xad", 0x00000e0e => "\xae", 0x00000e0f => "\xaf", 0x00000e10 => "\xb0", 0x00000e11 => "\xb1", 0x00000e12 => "\xb2", 0x00000e13 => "\xb3", 0x00000e14 => "\xb4", 0x00000e15 => "\xb5", 0x00000e16 => "\xb6", 0x00000e17 => "\xb7", 0x00000e18 => "\xb8", 0x00000e19 => "\xb9", 0x00000e1a => "\xba", 0x00000e1b => "\xbb", 0x00000e1c => "\xbc", 0x00000e1d => "\xbd", 0x00000e1e => "\xbe", 0x00000e1f => "\xbf", 0x00000e20 => "\xc0", 0x00000e21 => "\xc1", 0x00000e22 => "\xc2", 0x00000e23 => "\xc3", 0x00000e24 => "\xc4", 0x00000e25 => "\xc5", 0x00000e26 => "\xc6", 0x00000e27 => "\xc7", 0x00000e28 => "\xc8", 0x00000e29 => "\xc9", 0x00000e2a => "\xca", 0x00000e2b => "\xcb", 0x00000e2c => "\xcc", 0x00000e2d => "\xcd", 0x00000e2e => "\xce", 0x00000e2f => "\xcf", 0x00000e30 => "\xd0", 0x00000e31 => "\xd1", 0x00000e32 => "\xd2", 0x00000e33 => "\xd3", 0x00000e34 => "\xd4", 0x00000e35 => "\xd5", 0x00000e36 => "\xd6", 0x00000e37 => "\xd7", 0x00000e38 => "\xd8", 0x00000e39 => "\xd9", 0x00000e3a => "\xda", 0x00000e3f => "\xdf", 0x00000e40 => "\xe0", 0x00000e41 => "\xe1", 0x00000e42 => "\xe2", 0x00000e43 => "\xe3", 0x00000e44 => "\xe4", 0x00000e45 => "\xe5", 0x00000e46 => "\xe6", 0x00000e47 => "\xe7", 0x00000e48 => "\xe8", 0x00000e49 => "\xe9", 0x00000e4a => "\xea", 0x00000e4b => "\xeb", 0x00000e4c => "\xec", 0x00000e4d => "\xed", 0x00000e4e => "\xee", 0x00000e4f => "\xef", 0x00000e50 => "\xf0", 0x00000e51 => "\xf1", 0x00000e52 => "\xf2", 0x00000e53 => "\xf3", 0x00000e54 => "\xf4", 0x00000e55 => "\xf5", 0x00000e56 => "\xf6", 0x00000e57 => "\xf7", 0x00000e58 => "\xf8", 0x00000e59 => "\xf9", 0x00000e5a => "\xfa", 0x00000e5b => "\xfb", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ISO_8859_11 - Conversion routines for ISO-8859-11 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for ISO-8859-11. =head1 COMMENTS The following comments have been extracted from the original charmap: source: Guido Flohr Eguido.flohr@cantanea.comE The encoding ISO-8859-11 is not yet official at the time of this writing. It is based on TIS-620, but with the addition of the non-breaking space. The mapping of 0xfc-0xff is identical to Latin-1 but this should be checked. Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) A0 | 000000A0 | NO-BREAK SPACE A1 | 00000E01 | THAI CHARACTER KO KAI A2 | 00000E02 | THAI CHARACTER KHO KHAI A3 | 00000E03 | THAI CHARACTER KHO KHUAT A4 | 00000E04 | THAI CHARACTER KHO KHWAI A5 | 00000E05 | THAI CHARACTER KHO KHON A6 | 00000E06 | THAI CHARACTER KHO RAKHANG A7 | 00000E07 | THAI CHARACTER NGO NGU A8 | 00000E08 | THAI CHARACTER CHO CHAN A9 | 00000E09 | THAI CHARACTER CHO CHING AA | 00000E0A | THAI CHARACTER CHO CHANG AB | 00000E0B | THAI CHARACTER SO SO AC | 00000E0C | THAI CHARACTER CHO CHOE AD | 00000E0D | THAI CHARACTER YO YING AE | 00000E0E | THAI CHARACTER DO CHADA AF | 00000E0F | THAI CHARACTER TO PATAK B0 | 00000E10 | THAI CHARACTER THO THAN B1 | 00000E11 | THAI CHARACTER THO NANGMONTHO B2 | 00000E12 | THAI CHARACTER THO PHUTHAO B3 | 00000E13 | THAI CHARACTER NO NEN B4 | 00000E14 | THAI CHARACTER DO DEK B5 | 00000E15 | THAI CHARACTER TO TAO B6 | 00000E16 | THAI CHARACTER THO THUNG B7 | 00000E17 | THAI CHARACTER THO THAHAN B8 | 00000E18 | THAI CHARACTER THO THONG B9 | 00000E19 | THAI CHARACTER NO NU BA | 00000E1A | THAI CHARACTER BO BAIMAI BB | 00000E1B | THAI CHARACTER PO PLA BC | 00000E1C | THAI CHARACTER PHO PHUNG BD | 00000E1D | THAI CHARACTER FO FA BE | 00000E1E | THAI CHARACTER PHO PHAN BF | 00000E1F | THAI CHARACTER FO FAN C0 | 00000E20 | THAI CHARACTER PHO SAMPHAO C1 | 00000E21 | THAI CHARACTER MO MA C2 | 00000E22 | THAI CHARACTER YO YAK C3 | 00000E23 | THAI CHARACTER RO RUA C4 | 00000E24 | THAI CHARACTER RU C5 | 00000E25 | THAI CHARACTER LO LING C6 | 00000E26 | THAI CHARACTER LU C7 | 00000E27 | THAI CHARACTER WO WAEN C8 | 00000E28 | THAI CHARACTER SO SALA C9 | 00000E29 | THAI CHARACTER SO RUSI CA | 00000E2A | THAI CHARACTER SO SUA CB | 00000E2B | THAI CHARACTER HO HIP CC | 00000E2C | THAI CHARACTER LO CHULA CD | 00000E2D | THAI CHARACTER O ANG CE | 00000E2E | THAI CHARACTER HO NOKHUK CF | 00000E2F | THAI CHARACTER PAIYANNOI D0 | 00000E30 | THAI CHARACTER SARA A D1 | 00000E31 | THAI CHARACTER MAI HAN-AKAT D2 | 00000E32 | THAI CHARACTER SARA AA D3 | 00000E33 | THAI CHARACTER SARA AM D4 | 00000E34 | THAI CHARACTER SARA I D5 | 00000E35 | THAI CHARACTER SARA II D6 | 00000E36 | THAI CHARACTER SARA UE D7 | 00000E37 | THAI CHARACTER SARA UEE D8 | 00000E38 | THAI CHARACTER SARA U D9 | 00000E39 | THAI CHARACTER SARA UU DA | 00000E3A | THAI CHARACTER PHINTHU DF | 00000E3F | THAI CHARACTER SYMBOL BAHT E0 | 00000E40 | THAI CHARACTER SARA E E1 | 00000E41 | THAI CHARACTER SARA AE E2 | 00000E42 | THAI CHARACTER SARA O E3 | 00000E43 | THAI CHARACTER SARA AI MAIMUAN E4 | 00000E44 | THAI CHARACTER SARA AI MAIMALAI E5 | 00000E45 | THAI CHARACTER LAKKHANGYAO E6 | 00000E46 | THAI CHARACTER MAIYAMOK E7 | 00000E47 | THAI CHARACTER MAITAIKHU E8 | 00000E48 | THAI CHARACTER MAI EK E9 | 00000E49 | THAI CHARACTER MAI THO EA | 00000E4A | THAI CHARACTER MAI TRI EB | 00000E4B | THAI CHARACTER MAI CHATTAWA EC | 00000E4C | THAI CHARACTER THANTHAKHAT ED | 00000E4D | THAI CHARACTER NIKHAHIT EE | 00000E4E | THAI CHARACTER YAMAKKAN EF | 00000E4F | THAI CHARACTER FONGMAN F0 | 00000E50 | THAI DIGIT ZERO F1 | 00000E51 | THAI DIGIT ONE F2 | 00000E52 | THAI DIGIT TWO F3 | 00000E53 | THAI DIGIT THREE F4 | 00000E54 | THAI DIGIT FOUR F5 | 00000E55 | THAI DIGIT FIVE F6 | 00000E56 | THAI DIGIT SIX F7 | 00000E57 | THAI DIGIT SEVEN F8 | 00000E58 | THAI DIGIT EIGHT F9 | 00000E59 | THAI DIGIT NINE FA | 00000E5A | THAI CHARACTER ANGKHANKHU FB | 00000E5B | THAI CHARACTER KHOMUT =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]%V>l>lRecodeData/IBM863.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM863. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM863; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00c2, 0x00e0, 0x00b6, 0x00e7, 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x2017, 0x00c0, 0x00a7, 0x00c9, 0x00c8, 0x00ca, 0x00f4, 0x00cb, 0x00cf, 0x00fb, 0x00f9, 0x00a4, 0x00d4, 0x00dc, 0x00a2, 0x00a3, 0x00d9, 0x00db, 0x0192, 0x00a6, 0x00b4, 0x00f3, 0x00fa, 0x00a8, 0x00b8, 0x00b3, 0x00af, 0x00ce, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00be, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc3\x87", "\xc3\xbc", "\xc3\xa9", "\xc3\xa2", "\xc3\x82", "\xc3\xa0", "\xc2\xb6", "\xc3\xa7", "\xc3\xaa", "\xc3\xab", "\xc3\xa8", "\xc3\xaf", "\xc3\xae", "\xe2\x80\x97", "\xc3\x80", "\xc2\xa7", "\xc3\x89", "\xc3\x88", "\xc3\x8a", "\xc3\xb4", "\xc3\x8b", "\xc3\x8f", "\xc3\xbb", "\xc3\xb9", "\xc2\xa4", "\xc3\x94", "\xc3\x9c", "\xc2\xa2", "\xc2\xa3", "\xc3\x99", "\xc3\x9b", "\xc6\x92", "\xc2\xa6", "\xc2\xb4", "\xc3\xb3", "\xc3\xba", "\xc2\xa8", "\xc2\xb8", "\xc2\xb3", "\xc2\xaf", "\xc3\x8e", "\xe2\x8c\x90", "\xc2\xac", "\xc2\xbd", "\xc2\xbc", "\xc2\xbe", "\xc2\xab", "\xc2\xbb", "\xe2\x96\x91", "\xe2\x96\x92", "\xe2\x96\x93", "\xe2\x94\x82", "\xe2\x94\xa4", "\xe2\x95\xa1", "\xe2\x95\xa2", "\xe2\x95\x96", "\xe2\x95\x95", "\xe2\x95\xa3", "\xe2\x95\x91", "\xe2\x95\x97", "\xe2\x95\x9d", "\xe2\x95\x9c", "\xe2\x95\x9b", "\xe2\x94\x90", "\xe2\x94\x94", "\xe2\x94\xb4", "\xe2\x94\xac", "\xe2\x94\x9c", "\xe2\x94\x80", "\xe2\x94\xbc", "\xe2\x95\x9e", "\xe2\x95\x9f", "\xe2\x95\x9a", "\xe2\x95\x94", "\xe2\x95\xa9", "\xe2\x95\xa6", "\xe2\x95\xa0", "\xe2\x95\x90", "\xe2\x95\xac", "\xe2\x95\xa7", "\xe2\x95\xa8", "\xe2\x95\xa4", "\xe2\x95\xa5", "\xe2\x95\x99", "\xe2\x95\x98", "\xe2\x95\x92", "\xe2\x95\x93", "\xe2\x95\xab", "\xe2\x95\xaa", "\xe2\x94\x98", "\xe2\x94\x8c", "\xe2\x96\x88", "\xe2\x96\x84", "\xe2\x96\x8c", "\xe2\x96\x90", "\xe2\x96\x80", "\xce\xb1", "\xc3\x9f", "\xce\x93", "\xcf\x80", "\xce\xa3", "\xcf\x83", "\xc2\xb5", "\xcf\x84", "\xce\xa6", "\xce\x98", "\xce\xa9", "\xce\xb4", "\xe2\x88\x9e", "\xcf\x86", "\xce\xb5", "\xe2\x88\xa9", "\xe2\x89\xa1", "\xc2\xb1", "\xe2\x89\xa5", "\xe2\x89\xa4", "\xe2\x8c\xa0", "\xe2\x8c\xa1", "\xc3\xb7", "\xe2\x89\x88", "\xc2\xb0", "\xe2\x88\x99", "\xc2\xb7", "\xe2\x88\x9a", "\xe2\x81\xbf", "\xc2\xb2", "\xe2\x96\xa0", "\xc2\xa0", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xff", 0x000000a2 => "\x9b", 0x000000a3 => "\x9c", 0x000000a4 => "\x98", 0x000000a6 => "\xa0", 0x000000a7 => "\x8f", 0x000000a8 => "\xa4", 0x000000ab => "\xae", 0x000000ac => "\xaa", 0x000000af => "\xa7", 0x000000b0 => "\xf8", 0x000000b1 => "\xf1", 0x000000b2 => "\xfd", 0x000000b3 => "\xa6", 0x000000b4 => "\xa1", 0x000000b5 => "\xe6", 0x000000b6 => "\x86", 0x000000b7 => "\xfa", 0x000000b8 => "\xa5", 0x000000bb => "\xaf", 0x000000bc => "\xac", 0x000000bd => "\xab", 0x000000be => "\xad", 0x000000c0 => "\x8e", 0x000000c2 => "\x84", 0x000000c7 => "\x80", 0x000000c8 => "\x91", 0x000000c9 => "\x90", 0x000000ca => "\x92", 0x000000cb => "\x94", 0x000000ce => "\xa8", 0x000000cf => "\x95", 0x000000d4 => "\x99", 0x000000d9 => "\x9d", 0x000000db => "\x9e", 0x000000dc => "\x9a", 0x000000df => "\xe1", 0x000000e0 => "\x85", 0x000000e2 => "\x83", 0x000000e7 => "\x87", 0x000000e8 => "\x8a", 0x000000e9 => "\x82", 0x000000ea => "\x88", 0x000000eb => "\x89", 0x000000ee => "\x8c", 0x000000ef => "\x8b", 0x000000f3 => "\xa2", 0x000000f4 => "\x93", 0x000000f7 => "\xf6", 0x000000f9 => "\x97", 0x000000fa => "\xa3", 0x000000fb => "\x96", 0x000000fc => "\x81", 0x00000192 => "\x9f", 0x00000393 => "\xe2", 0x00000398 => "\xe9", 0x000003a3 => "\xe4", 0x000003a6 => "\xe8", 0x000003a9 => "\xea", 0x000003b1 => "\xe0", 0x000003b4 => "\xeb", 0x000003b5 => "\xee", 0x000003c0 => "\xe3", 0x000003c3 => "\xe5", 0x000003c4 => "\xe7", 0x000003c6 => "\xed", 0x00002017 => "\x8d", 0x0000207f => "\xfc", 0x00002219 => "\xf9", 0x0000221a => "\xfb", 0x0000221e => "\xec", 0x00002229 => "\xef", 0x00002248 => "\xf7", 0x00002261 => "\xf0", 0x00002264 => "\xf3", 0x00002265 => "\xf2", 0x00002310 => "\xa9", 0x00002320 => "\xf4", 0x00002321 => "\xf5", 0x00002500 => "\xc4", 0x00002502 => "\xb3", 0x0000250c => "\xda", 0x00002510 => "\xbf", 0x00002514 => "\xc0", 0x00002518 => "\xd9", 0x0000251c => "\xc3", 0x00002524 => "\xb4", 0x0000252c => "\xc2", 0x00002534 => "\xc1", 0x0000253c => "\xc5", 0x00002550 => "\xcd", 0x00002551 => "\xba", 0x00002552 => "\xd5", 0x00002553 => "\xd6", 0x00002554 => "\xc9", 0x00002555 => "\xb8", 0x00002556 => "\xb7", 0x00002557 => "\xbb", 0x00002558 => "\xd4", 0x00002559 => "\xd3", 0x0000255a => "\xc8", 0x0000255b => "\xbe", 0x0000255c => "\xbd", 0x0000255d => "\xbc", 0x0000255e => "\xc6", 0x0000255f => "\xc7", 0x00002560 => "\xcc", 0x00002561 => "\xb5", 0x00002562 => "\xb6", 0x00002563 => "\xb9", 0x00002564 => "\xd1", 0x00002565 => "\xd2", 0x00002566 => "\xcb", 0x00002567 => "\xcf", 0x00002568 => "\xd0", 0x00002569 => "\xca", 0x0000256a => "\xd8", 0x0000256b => "\xd7", 0x0000256c => "\xce", 0x00002580 => "\xdf", 0x00002584 => "\xdc", 0x00002588 => "\xdb", 0x0000258c => "\xdd", 0x00002590 => "\xde", 0x00002591 => "\xb0", 0x00002592 => "\xb1", 0x00002593 => "\xb2", 0x000025a0 => "\xfe", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM863 - Conversion routines for IBM863 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM863. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM Keyboard layouts and code pages, PN 07G4586 June 1991 alias CP863 alias 863 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 84 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX 85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 86 | 000000B6 | PILCROW SIGN 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 8B | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 8C | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 8D | 00002017 | DOUBLE LOW LINE 8E | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE 8F | 000000A7 | SECTION SIGN 90 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 91 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE 92 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX 93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX 94 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS 95 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS 96 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX 97 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 98 | 000000A4 | CURRENCY SIGN 99 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 9B | 000000A2 | CENT SIGN 9C | 000000A3 | POUND SIGN 9D | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE 9E | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX 9F | 00000192 | LATIN SMALL LETTER F WITH HOOK A0 | 000000A6 | BROKEN BAR A1 | 000000B4 | ACUTE ACCENT A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE A4 | 000000A8 | DIAERESIS A5 | 000000B8 | CEDILLA A6 | 000000B3 | SUPERSCRIPT THREE A7 | 000000AF | MACRON A8 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX A9 | 00002310 | REVERSED NOT SIGN AA | 000000AC | NOT SIGN AB | 000000BD | VULGAR FRACTION ONE HALF AC | 000000BC | VULGAR FRACTION ONE QUARTER AD | 000000BE | VULGAR FRACTION THREE QUARTERS AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK B0 | 00002591 | LIGHT SHADE B1 | 00002592 | MEDIUM SHADE B2 | 00002593 | DARK SHADE B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT B5 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE B6 | 00002562 | BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE B7 | 00002556 | BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE B8 | 00002555 | BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT BD | 0000255C | BOX DRAWINGS UP DOUBLE AND LEFT SINGLE BE | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL C6 | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE C7 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL CF | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE D0 | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE D1 | 00002564 | BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE D2 | 00002565 | BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE D3 | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE D4 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE D5 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE D6 | 00002553 | BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE D7 | 0000256B | BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE D8 | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT DB | 00002588 | FULL BLOCK DC | 00002584 | LOWER HALF BLOCK DD | 0000258C | LEFT HALF BLOCK DE | 00002590 | RIGHT HALF BLOCK DF | 00002580 | UPPER HALF BLOCK E0 | 000003B1 | GREEK SMALL LETTER ALPHA E1 | 000000DF | LATIN SMALL LETTER SHARP S (German) E2 | 00000393 | GREEK CAPITAL LETTER GAMMA E3 | 000003C0 | GREEK SMALL LETTER PI E4 | 000003A3 | GREEK CAPITAL LETTER SIGMA E5 | 000003C3 | GREEK SMALL LETTER SIGMA E6 | 000000B5 | MICRO SIGN E7 | 000003C4 | GREEK SMALL LETTER TAU E8 | 000003A6 | GREEK CAPITAL LETTER PHI E9 | 00000398 | GREEK CAPITAL LETTER THETA EA | 000003A9 | GREEK CAPITAL LETTER OMEGA EB | 000003B4 | GREEK SMALL LETTER DELTA EC | 0000221E | INFINITY ED | 000003C6 | GREEK SMALL LETTER PHI EE | 000003B5 | GREEK SMALL LETTER EPSILON EF | 00002229 | INTERSECTION F0 | 00002261 | IDENTICAL TO F1 | 000000B1 | PLUS-MINUS SIGN F2 | 00002265 | GREATER-THAN OR EQUAL TO F3 | 00002264 | LESS-THAN OR EQUAL TO F4 | 00002320 | TOP HALF INTEGRAL F5 | 00002321 | BOTTOM HALF INTEGRAL F6 | 000000F7 | DIVISION SIGN F7 | 00002248 | ALMOST EQUAL TO F8 | 000000B0 | DEGREE SIGN F9 | 00002219 | BULLET OPERATOR FA | 000000B7 | MIDDLE DOT FB | 0000221A | SQUARE ROOT FC | 0000207F | SUPERSCRIPT LATIN SMALL LETTER N FD | 000000B2 | SUPERSCRIPT TWO FE | 000025A0 | BLACK SQUARE FF | 000000A0 | NO-BREAK SPACE =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]ßPPRecodeData/EBCDIC_DK_NO.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for EBCDIC-DK-NO. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::EBCDIC_DK_NO; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0023, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00f8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0060, 0x003a, 0x00c6, 0x00d8, 0x0027, 0x003d, 0x0022, 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x005c, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x23", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa4", "\xc3\x85", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xb8", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x60", "\x3a", "\xc3\x86", "\xc3\x98", "\x27", "\x3d", "\x22", "\xef\xbf\xbd", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xbc", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa6", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa5", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x5c", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000023 => "\x4a", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005c => "\xe0", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a4 => "\x5a", 0x000000c5 => "\x5b", 0x000000c6 => "\x7b", 0x000000d8 => "\x7c", 0x000000e5 => "\xd0", 0x000000e6 => "\xc0", 0x000000f8 => "\x6a", 0x000000fc => "\xa1", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::EBCDIC_DK_NO - Conversion routines for EBCDIC_DK_NO =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for EBCDIC-DK-NO. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 repertoiremap: mnemonic,ds source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 4A | 00000023 | NUMBER SIGN 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 5A | 000000A4 | CURRENCY SIGN 5B | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 6A | 000000F8 | LATIN SMALL LETTER O WITH STROKE 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 000000C6 | LATIN CAPITAL LETTER AE 7C | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R A1 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z C0 | 000000E6 | LATIN SMALL LETTER AE C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I D0 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R E0 | 0000005C | REVERSE SOLIDUS E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK];ϢiiRecodeData/MACCYRILLIC.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for MACCYRILLIC. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::MACCYRILLIC; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x0406, 0x00ae, 0x00a9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453, 0x221e, 0x00b1, 0x2264, 0x2265, 0x0456, 0x00b5, 0x2202, 0x0408, 0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040a, 0x045a, 0x0458, 0x0405, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, 0x00bb, 0x2026, 0x00a0, 0x040b, 0x045b, 0x040c, 0x045c, 0x0455, 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x201e, 0x040e, 0x045e, 0x040f, 0x045f, 0x2116, 0x0401, 0x0451, 0x044f, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x00a4, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xd0\x90", "\xd0\x91", "\xd0\x92", "\xd0\x93", "\xd0\x94", "\xd0\x95", "\xd0\x96", "\xd0\x97", "\xd0\x98", "\xd0\x99", "\xd0\x9a", "\xd0\x9b", "\xd0\x9c", "\xd0\x9d", "\xd0\x9e", "\xd0\x9f", "\xd0\xa0", "\xd0\xa1", "\xd0\xa2", "\xd0\xa3", "\xd0\xa4", "\xd0\xa5", "\xd0\xa6", "\xd0\xa7", "\xd0\xa8", "\xd0\xa9", "\xd0\xaa", "\xd0\xab", "\xd0\xac", "\xd0\xad", "\xd0\xae", "\xd0\xaf", "\xe2\x80\xa0", "\xc2\xb0", "\xc2\xa2", "\xc2\xa3", "\xc2\xa7", "\xe2\x80\xa2", "\xc2\xb6", "\xd0\x86", "\xc2\xae", "\xc2\xa9", "\xe2\x84\xa2", "\xd0\x82", "\xd1\x92", "\xe2\x89\xa0", "\xd0\x83", "\xd1\x93", "\xe2\x88\x9e", "\xc2\xb1", "\xe2\x89\xa4", "\xe2\x89\xa5", "\xd1\x96", "\xc2\xb5", "\xe2\x88\x82", "\xd0\x88", "\xd0\x84", "\xd1\x94", "\xd0\x87", "\xd1\x97", "\xd0\x89", "\xd1\x99", "\xd0\x8a", "\xd1\x9a", "\xd1\x98", "\xd0\x85", "\xc2\xac", "\xe2\x88\x9a", "\xc6\x92", "\xe2\x89\x88", "\xe2\x88\x86", "\xc2\xab", "\xc2\xbb", "\xe2\x80\xa6", "\xc2\xa0", "\xd0\x8b", "\xd1\x9b", "\xd0\x8c", "\xd1\x9c", "\xd1\x95", "\xe2\x80\x93", "\xe2\x80\x94", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x98", "\xe2\x80\x99", "\xc3\xb7", "\xe2\x80\x9e", "\xd0\x8e", "\xd1\x9e", "\xd0\x8f", "\xd1\x9f", "\xe2\x84\x96", "\xd0\x81", "\xd1\x91", "\xd1\x8f", "\xd0\xb0", "\xd0\xb1", "\xd0\xb2", "\xd0\xb3", "\xd0\xb4", "\xd0\xb5", "\xd0\xb6", "\xd0\xb7", "\xd0\xb8", "\xd0\xb9", "\xd0\xba", "\xd0\xbb", "\xd0\xbc", "\xd0\xbd", "\xd0\xbe", "\xd0\xbf", "\xd1\x80", "\xd1\x81", "\xd1\x82", "\xd1\x83", "\xd1\x84", "\xd1\x85", "\xd1\x86", "\xd1\x87", "\xd1\x88", "\xd1\x89", "\xd1\x8a", "\xd1\x8b", "\xd1\x8c", "\xd1\x8d", "\xd1\x8e", "\xc2\xa4", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xca", 0x000000a2 => "\xa2", 0x000000a3 => "\xa3", 0x000000a4 => "\xff", 0x000000a7 => "\xa4", 0x000000a9 => "\xa9", 0x000000ab => "\xc7", 0x000000ac => "\xc2", 0x000000ae => "\xa8", 0x000000b0 => "\xa1", 0x000000b1 => "\xb1", 0x000000b5 => "\xb5", 0x000000b6 => "\xa6", 0x000000bb => "\xc8", 0x000000f7 => "\xd6", 0x00000192 => "\xc4", 0x00000401 => "\xdd", 0x00000402 => "\xab", 0x00000403 => "\xae", 0x00000404 => "\xb8", 0x00000405 => "\xc1", 0x00000406 => "\xa7", 0x00000407 => "\xba", 0x00000408 => "\xb7", 0x00000409 => "\xbc", 0x0000040a => "\xbe", 0x0000040b => "\xcb", 0x0000040c => "\xcd", 0x0000040e => "\xd8", 0x0000040f => "\xda", 0x00000410 => "\x80", 0x00000411 => "\x81", 0x00000412 => "\x82", 0x00000413 => "\x83", 0x00000414 => "\x84", 0x00000415 => "\x85", 0x00000416 => "\x86", 0x00000417 => "\x87", 0x00000418 => "\x88", 0x00000419 => "\x89", 0x0000041a => "\x8a", 0x0000041b => "\x8b", 0x0000041c => "\x8c", 0x0000041d => "\x8d", 0x0000041e => "\x8e", 0x0000041f => "\x8f", 0x00000420 => "\x90", 0x00000421 => "\x91", 0x00000422 => "\x92", 0x00000423 => "\x93", 0x00000424 => "\x94", 0x00000425 => "\x95", 0x00000426 => "\x96", 0x00000427 => "\x97", 0x00000428 => "\x98", 0x00000429 => "\x99", 0x0000042a => "\x9a", 0x0000042b => "\x9b", 0x0000042c => "\x9c", 0x0000042d => "\x9d", 0x0000042e => "\x9e", 0x0000042f => "\x9f", 0x00000430 => "\xe0", 0x00000431 => "\xe1", 0x00000432 => "\xe2", 0x00000433 => "\xe3", 0x00000434 => "\xe4", 0x00000435 => "\xe5", 0x00000436 => "\xe6", 0x00000437 => "\xe7", 0x00000438 => "\xe8", 0x00000439 => "\xe9", 0x0000043a => "\xea", 0x0000043b => "\xeb", 0x0000043c => "\xec", 0x0000043d => "\xed", 0x0000043e => "\xee", 0x0000043f => "\xef", 0x00000440 => "\xf0", 0x00000441 => "\xf1", 0x00000442 => "\xf2", 0x00000443 => "\xf3", 0x00000444 => "\xf4", 0x00000445 => "\xf5", 0x00000446 => "\xf6", 0x00000447 => "\xf7", 0x00000448 => "\xf8", 0x00000449 => "\xf9", 0x0000044a => "\xfa", 0x0000044b => "\xfb", 0x0000044c => "\xfc", 0x0000044d => "\xfd", 0x0000044e => "\xfe", 0x0000044f => "\xdf", 0x00000451 => "\xde", 0x00000452 => "\xac", 0x00000453 => "\xaf", 0x00000454 => "\xb9", 0x00000455 => "\xcf", 0x00000456 => "\xb4", 0x00000457 => "\xbb", 0x00000458 => "\xc0", 0x00000459 => "\xbd", 0x0000045a => "\xbf", 0x0000045b => "\xcc", 0x0000045c => "\xce", 0x0000045e => "\xd9", 0x0000045f => "\xdb", 0x00002013 => "\xd0", 0x00002014 => "\xd1", 0x00002018 => "\xd4", 0x00002019 => "\xd5", 0x0000201c => "\xd2", 0x0000201d => "\xd3", 0x0000201e => "\xd7", 0x00002020 => "\xa0", 0x00002022 => "\xa5", 0x00002026 => "\xc9", 0x00002116 => "\xdc", 0x00002122 => "\xaa", 0x00002202 => "\xb6", 0x00002206 => "\xc6", 0x0000221a => "\xc3", 0x0000221e => "\xb0", 0x00002248 => "\xc5", 0x00002260 => "\xad", 0x00002264 => "\xb2", 0x00002265 => "\xb3", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::MACCYRILLIC - Conversion routines for MACCYRILLIC =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for MACCYRILLIC. =head1 COMMENTS The following comments have been extracted from the original charmap: This charmap has been generated automatically from GNU libiconv conversions. Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000410 | CYRILLIC CAPITAL LETTER A 81 | 00000411 | CYRILLIC CAPITAL LETTER BE 82 | 00000412 | CYRILLIC CAPITAL LETTER VE 83 | 00000413 | CYRILLIC CAPITAL LETTER GHE 84 | 00000414 | CYRILLIC CAPITAL LETTER DE 85 | 00000415 | CYRILLIC CAPITAL LETTER IE 86 | 00000416 | CYRILLIC CAPITAL LETTER ZHE 87 | 00000417 | CYRILLIC CAPITAL LETTER ZE 88 | 00000418 | CYRILLIC CAPITAL LETTER I 89 | 00000419 | CYRILLIC CAPITAL LETTER SHORT I 8A | 0000041A | CYRILLIC CAPITAL LETTER KA 8B | 0000041B | CYRILLIC CAPITAL LETTER EL 8C | 0000041C | CYRILLIC CAPITAL LETTER EM 8D | 0000041D | CYRILLIC CAPITAL LETTER EN 8E | 0000041E | CYRILLIC CAPITAL LETTER O 8F | 0000041F | CYRILLIC CAPITAL LETTER PE 90 | 00000420 | CYRILLIC CAPITAL LETTER ER 91 | 00000421 | CYRILLIC CAPITAL LETTER ES 92 | 00000422 | CYRILLIC CAPITAL LETTER TE 93 | 00000423 | CYRILLIC CAPITAL LETTER U 94 | 00000424 | CYRILLIC CAPITAL LETTER EF 95 | 00000425 | CYRILLIC CAPITAL LETTER HA 96 | 00000426 | CYRILLIC CAPITAL LETTER TSE 97 | 00000427 | CYRILLIC CAPITAL LETTER CHE 98 | 00000428 | CYRILLIC CAPITAL LETTER SHA 99 | 00000429 | CYRILLIC CAPITAL LETTER SHCHA 9A | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN 9B | 0000042B | CYRILLIC CAPITAL LETTER YERU 9C | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN 9D | 0000042D | CYRILLIC CAPITAL LETTER E 9E | 0000042E | CYRILLIC CAPITAL LETTER YU 9F | 0000042F | CYRILLIC CAPITAL LETTER YA A0 | 00002020 | DAGGER A1 | 000000B0 | DEGREE SIGN A2 | 000000A2 | CENT SIGN A3 | 000000A3 | POUND SIGN A4 | 000000A7 | SECTION SIGN A5 | 00002022 | BULLET A6 | 000000B6 | PILCROW SIGN A7 | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I A8 | 000000AE | REGISTERED SIGN A9 | 000000A9 | COPYRIGHT SIGN AA | 00002122 | TRADE MARK SIGN AB | 00000402 | CYRILLIC CAPITAL LETTER DJE AC | 00000452 | CYRILLIC SMALL LETTER DJE AD | 00002260 | NOT EQUAL TO AE | 00000403 | CYRILLIC CAPITAL LETTER GJE AF | 00000453 | CYRILLIC SMALL LETTER GJE B0 | 0000221E | INFINITY B1 | 000000B1 | PLUS-MINUS SIGN B2 | 00002264 | LESS-THAN OR EQUAL TO B3 | 00002265 | GREATER-THAN OR EQUAL TO B4 | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I B5 | 000000B5 | MICRO SIGN B6 | 00002202 | PARTIAL DIFFERENTIAL B7 | 00000408 | CYRILLIC CAPITAL LETTER JE B8 | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE B9 | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE BA | 00000407 | CYRILLIC CAPITAL LETTER YI BB | 00000457 | CYRILLIC SMALL LETTER YI BC | 00000409 | CYRILLIC CAPITAL LETTER LJE BD | 00000459 | CYRILLIC SMALL LETTER LJE BE | 0000040A | CYRILLIC CAPITAL LETTER NJE BF | 0000045A | CYRILLIC SMALL LETTER NJE C0 | 00000458 | CYRILLIC SMALL LETTER JE C1 | 00000405 | CYRILLIC CAPITAL LETTER DZE C2 | 000000AC | NOT SIGN C3 | 0000221A | SQUARE ROOT C4 | 00000192 | LATIN SMALL LETTER F WITH HOOK C5 | 00002248 | ALMOST EQUAL TO C6 | 00002206 | INCREMENT C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK C8 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK C9 | 00002026 | HORIZONTAL ELLIPSIS CA | 000000A0 | NO-BREAK SPACE CB | 0000040B | CYRILLIC CAPITAL LETTER TSHE CC | 0000045B | CYRILLIC SMALL LETTER TSHE CD | 0000040C | CYRILLIC CAPITAL LETTER KJE CE | 0000045C | CYRILLIC SMALL LETTER KJE CF | 00000455 | CYRILLIC SMALL LETTER DZE D0 | 00002013 | EN DASH D1 | 00002014 | EM DASH D2 | 0000201C | LEFT DOUBLE QUOTATION MARK D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK D4 | 00002018 | LEFT SINGLE QUOTATION MARK D5 | 00002019 | RIGHT SINGLE QUOTATION MARK D6 | 000000F7 | DIVISION SIGN D7 | 0000201E | DOUBLE LOW-9 QUOTATION MARK D8 | 0000040E | CYRILLIC CAPITAL LETTER SHORT U D9 | 0000045E | CYRILLIC SMALL LETTER SHORT U DA | 0000040F | CYRILLIC CAPITAL LETTER DZHE DB | 0000045F | CYRILLIC SMALL LETTER DZHE DC | 00002116 | NUMERO SIGN DD | 00000401 | CYRILLIC CAPITAL LETTER IO DE | 00000451 | CYRILLIC SMALL LETTER IO DF | 0000044F | CYRILLIC SMALL LETTER YA E0 | 00000430 | CYRILLIC SMALL LETTER A E1 | 00000431 | CYRILLIC SMALL LETTER BE E2 | 00000432 | CYRILLIC SMALL LETTER VE E3 | 00000433 | CYRILLIC SMALL LETTER GHE E4 | 00000434 | CYRILLIC SMALL LETTER DE E5 | 00000435 | CYRILLIC SMALL LETTER IE E6 | 00000436 | CYRILLIC SMALL LETTER ZHE E7 | 00000437 | CYRILLIC SMALL LETTER ZE E8 | 00000438 | CYRILLIC SMALL LETTER I E9 | 00000439 | CYRILLIC SMALL LETTER SHORT I EA | 0000043A | CYRILLIC SMALL LETTER KA EB | 0000043B | CYRILLIC SMALL LETTER EL EC | 0000043C | CYRILLIC SMALL LETTER EM ED | 0000043D | CYRILLIC SMALL LETTER EN EE | 0000043E | CYRILLIC SMALL LETTER O EF | 0000043F | CYRILLIC SMALL LETTER PE F0 | 00000440 | CYRILLIC SMALL LETTER ER F1 | 00000441 | CYRILLIC SMALL LETTER ES F2 | 00000442 | CYRILLIC SMALL LETTER TE F3 | 00000443 | CYRILLIC SMALL LETTER U F4 | 00000444 | CYRILLIC SMALL LETTER EF F5 | 00000445 | CYRILLIC SMALL LETTER HA F6 | 00000446 | CYRILLIC SMALL LETTER TSE F7 | 00000447 | CYRILLIC SMALL LETTER CHE F8 | 00000448 | CYRILLIC SMALL LETTER SHA F9 | 00000449 | CYRILLIC SMALL LETTER SHCHA FA | 0000044A | CYRILLIC SMALL LETTER HARD SIGN FB | 0000044B | CYRILLIC SMALL LETTER YERU FC | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN FD | 0000044D | CYRILLIC SMALL LETTER E FE | 0000044E | CYRILLIC SMALL LETTER YU FF | 000000A4 | CURRENCY SIGN =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK];;RecodeData/INIS_8.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for INIS-8. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::INIS_8; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x039e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2192, 0x222b, 0x2070, 0x00b9, 0x00b2, 0x00b3, 0x2074, 0x2075, 0x2076, 0x2077, 0x2078, 0x2079, 0x207a, 0x207b, 0x30eb, 0x0394, 0x039b, 0x03a9, 0x2080, 0x2081, 0x2082, 0x2083, 0x2084, 0x2085, 0x2086, 0x2087, 0x2088, 0x2089, 0x03a3, 0x03bc, 0x03bd, 0x03c9, 0x03c0, 0x007f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xce\xb1", "\xce\xb2", "\xce\xb3", "\xce\xb4", "\xce\x9e", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe2\x86\x92", "\xe2\x88\xab", "\xe2\x81\xb0", "\xc2\xb9", "\xc2\xb2", "\xc2\xb3", "\xe2\x81\xb4", "\xe2\x81\xb5", "\xe2\x81\xb6", "\xe2\x81\xb7", "\xe2\x81\xb8", "\xe2\x81\xb9", "\xe2\x81\xba", "\xe2\x81\xbb", "\xe3\x83\xab", "\xce\x94", "\xce\x9b", "\xce\xa9", "\xe2\x82\x80", "\xe2\x82\x81", "\xe2\x82\x82", "\xe2\x82\x83", "\xe2\x82\x84", "\xe2\x82\x85", "\xe2\x82\x86", "\xe2\x82\x87", "\xe2\x82\x88", "\xe2\x82\x89", "\xce\xa3", "\xce\xbc", "\xce\xbd", "\xcf\x89", "\xcf\x80", "\x7f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x0000007f => "\x7f", 0x000000b2 => "\x62", 0x000000b3 => "\x63", 0x000000b9 => "\x61", 0x00000394 => "\x6d", 0x0000039b => "\x6e", 0x0000039e => "\x3e", 0x000003a3 => "\x7a", 0x000003a9 => "\x6f", 0x000003b1 => "\x3a", 0x000003b2 => "\x3b", 0x000003b3 => "\x3c", 0x000003b4 => "\x3d", 0x000003bc => "\x7b", 0x000003bd => "\x7c", 0x000003c0 => "\x7e", 0x000003c9 => "\x7d", 0x00002070 => "\x60", 0x00002074 => "\x64", 0x00002075 => "\x65", 0x00002076 => "\x66", 0x00002077 => "\x67", 0x00002078 => "\x68", 0x00002079 => "\x69", 0x0000207a => "\x6a", 0x0000207b => "\x6b", 0x00002080 => "\x70", 0x00002081 => "\x71", 0x00002082 => "\x72", 0x00002083 => "\x73", 0x00002084 => "\x74", 0x00002085 => "\x75", 0x00002086 => "\x76", 0x00002087 => "\x77", 0x00002088 => "\x78", 0x00002089 => "\x79", 0x00002192 => "\x5e", 0x0000222b => "\x5f", 0x000030eb => "\x6c", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::INIS_8 - Conversion routines for INIS_8 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for INIS-8. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 repertoiremap: mnemonic,ds source: ECMA registry alias ISO-IR-50 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 3A | 000003B1 | GREEK SMALL LETTER ALPHA 3B | 000003B2 | GREEK SMALL LETTER BETA 3C | 000003B3 | GREEK SMALL LETTER GAMMA 3D | 000003B4 | GREEK SMALL LETTER DELTA 3E | 0000039E | GREEK CAPITAL LETTER XI 5E | 00002192 | RIGHTWARDS ARROW 5F | 0000222B | INTEGRAL 60 | 00002070 | SUPERSCRIPT ZERO 61 | 000000B9 | SUPERSCRIPT ONE 62 | 000000B2 | SUPERSCRIPT TWO 63 | 000000B3 | SUPERSCRIPT THREE 64 | 00002074 | SUPERSCRIPT FOUR 65 | 00002075 | SUPERSCRIPT FIVE 66 | 00002076 | SUPERSCRIPT SIX 67 | 00002077 | SUPERSCRIPT SEVEN 68 | 00002078 | SUPERSCRIPT EIGHT 69 | 00002079 | SUPERSCRIPT NINE 6A | 0000207A | SUPERSCRIPT PLUS SIGN 6B | 0000207B | SUPERSCRIPT MINUS 6C | 000030EB | KATAKANA LETTER RU 6D | 00000394 | GREEK CAPITAL LETTER DELTA 6E | 0000039B | GREEK CAPITAL LETTER LAMDA 6F | 000003A9 | GREEK CAPITAL LETTER OMEGA 70 | 00002080 | SUBSCRIPT ZERO 71 | 00002081 | SUBSCRIPT ONE 72 | 00002082 | SUBSCRIPT TWO 73 | 00002083 | SUBSCRIPT THREE 74 | 00002084 | SUBSCRIPT FOUR 75 | 00002085 | SUBSCRIPT FIVE 76 | 00002086 | SUBSCRIPT SIX 77 | 00002087 | SUBSCRIPT SEVEN 78 | 00002088 | SUBSCRIPT EIGHT 79 | 00002089 | SUBSCRIPT NINE 7A | 000003A3 | GREEK CAPITAL LETTER SIGMA 7B | 000003BC | GREEK SMALL LETTER MU 7C | 000003BD | GREEK SMALL LETTER NU 7D | 000003C9 | GREEK SMALL LETTER OMEGA 7E | 000003C0 | GREEK SMALL LETTER PI 7F | 0000007F | DELETE (DEL) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]{jjRecodeData/IBM1047.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM1047. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM1047; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x005b, 0x00de, 0x00ae, 0x00ac, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00dd, 0x00a8, 0x00af, 0x005d, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xc2\xa0", "\xc3\xa2", "\xc3\xa4", "\xc3\xa0", "\xc3\xa1", "\xc3\xa3", "\xc3\xa5", "\xc3\xa7", "\xc3\xb1", "\xc2\xa2", "\x2e", "\x3c", "\x28", "\x2b", "\x7c", "\x26", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xa8", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc3\xac", "\xc3\x9f", "\x21", "\x24", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xc3\x82", "\xc3\x84", "\xc3\x80", "\xc3\x81", "\xc3\x83", "\xc3\x85", "\xc3\x87", "\xc3\x91", "\xc2\xa6", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xc3\xb8", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x88", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x8c", "\x60", "\x3a", "\x23", "\x40", "\x27", "\x3d", "\x22", "\xc3\x98", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xc2\xab", "\xc2\xbb", "\xc3\xb0", "\xc3\xbd", "\xc3\xbe", "\xc2\xb1", "\xc2\xb0", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xc2\xaa", "\xc2\xba", "\xc3\xa6", "\xc2\xb8", "\xc3\x86", "\xc2\xa4", "\xc2\xb5", "\x7e", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xc2\xa1", "\xc2\xbf", "\xc3\x90", "\x5b", "\xc3\x9e", "\xc2\xae", "\xc2\xac", "\xc2\xa3", "\xc2\xa5", "\xc2\xb7", "\xc2\xa9", "\xc2\xa7", "\xc2\xb6", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\xc3\x9d", "\xc2\xa8", "\xc2\xaf", "\x5d", "\xc2\xb4", "\xc3\x97", "\x7b", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xc2\xad", "\xc3\xb4", "\xc3\xb6", "\xc3\xb2", "\xc3\xb3", "\xc3\xb5", "\x7d", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xc2\xb9", "\xc3\xbb", "\xc3\xbc", "\xc3\xb9", "\xc3\xba", "\xc3\xbf", "\x5c", "\xc3\xb7", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xc2\xb2", "\xc3\x94", "\xc3\x96", "\xc3\x92", "\xc3\x93", "\xc3\x95", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xc2\xb3", "\xc3\x9b", "\xc3\x9c", "\xc3\x99", "\xc3\x9a", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x5a", 0x00000022 => "\x7f", 0x00000023 => "\x7b", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\x7c", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\xad", 0x0000005c => "\xe0", 0x0000005d => "\xbd", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\xc0", 0x0000007c => "\x4f", 0x0000007d => "\xd0", 0x0000007e => "\xa1", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a0 => "\x41", 0x000000a1 => "\xaa", 0x000000a2 => "\x4a", 0x000000a3 => "\xb1", 0x000000a4 => "\x9f", 0x000000a5 => "\xb2", 0x000000a6 => "\x6a", 0x000000a7 => "\xb5", 0x000000a8 => "\xbb", 0x000000a9 => "\xb4", 0x000000aa => "\x9a", 0x000000ab => "\x8a", 0x000000ac => "\xb0", 0x000000ad => "\xca", 0x000000ae => "\xaf", 0x000000af => "\xbc", 0x000000b0 => "\x90", 0x000000b1 => "\x8f", 0x000000b2 => "\xea", 0x000000b3 => "\xfa", 0x000000b4 => "\xbe", 0x000000b5 => "\xa0", 0x000000b6 => "\xb6", 0x000000b7 => "\xb3", 0x000000b8 => "\x9d", 0x000000b9 => "\xda", 0x000000ba => "\x9b", 0x000000bb => "\x8b", 0x000000bc => "\xb7", 0x000000bd => "\xb8", 0x000000be => "\xb9", 0x000000bf => "\xab", 0x000000c0 => "\x64", 0x000000c1 => "\x65", 0x000000c2 => "\x62", 0x000000c3 => "\x66", 0x000000c4 => "\x63", 0x000000c5 => "\x67", 0x000000c6 => "\x9e", 0x000000c7 => "\x68", 0x000000c8 => "\x74", 0x000000c9 => "\x71", 0x000000ca => "\x72", 0x000000cb => "\x73", 0x000000cc => "\x78", 0x000000cd => "\x75", 0x000000ce => "\x76", 0x000000cf => "\x77", 0x000000d0 => "\xac", 0x000000d1 => "\x69", 0x000000d2 => "\xed", 0x000000d3 => "\xee", 0x000000d4 => "\xeb", 0x000000d5 => "\xef", 0x000000d6 => "\xec", 0x000000d7 => "\xbf", 0x000000d8 => "\x80", 0x000000d9 => "\xfd", 0x000000da => "\xfe", 0x000000db => "\xfb", 0x000000dc => "\xfc", 0x000000dd => "\xba", 0x000000de => "\xae", 0x000000df => "\x59", 0x000000e0 => "\x44", 0x000000e1 => "\x45", 0x000000e2 => "\x42", 0x000000e3 => "\x46", 0x000000e4 => "\x43", 0x000000e5 => "\x47", 0x000000e6 => "\x9c", 0x000000e7 => "\x48", 0x000000e8 => "\x54", 0x000000e9 => "\x51", 0x000000ea => "\x52", 0x000000eb => "\x53", 0x000000ec => "\x58", 0x000000ed => "\x55", 0x000000ee => "\x56", 0x000000ef => "\x57", 0x000000f0 => "\x8c", 0x000000f1 => "\x49", 0x000000f2 => "\xcd", 0x000000f3 => "\xce", 0x000000f4 => "\xcb", 0x000000f5 => "\xcf", 0x000000f6 => "\xcc", 0x000000f7 => "\xe1", 0x000000f8 => "\x70", 0x000000f9 => "\xdd", 0x000000fa => "\xde", 0x000000fb => "\xdb", 0x000000fc => "\xdc", 0x000000fd => "\x8d", 0x000000fe => "\x8e", 0x000000ff => "\xdf", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM1047 - Conversion routines for IBM1047 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM1047. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM Character Data Representation Architecture Registry SC09-1391-00 p 150. alias CP1047 alias 1047 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 41 | 000000A0 | NO-BREAK SPACE 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE 47 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE 4A | 000000A2 | CENT SIGN 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 0000007C | VERTICAL LINE 50 | 00000026 | AMPERSAND 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE 59 | 000000DF | LATIN SMALL LETTER SHARP S (German) 5A | 00000021 | EXCLAMATION MARK 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE 67 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 6A | 000000A6 | BROKEN BAR 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 00000023 | NUMBER SIGN 7C | 00000040 | COMMERCIAL AT 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic) 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE 8E | 000000FE | LATIN SMALL LETTER THORN (Icelandic) 8F | 000000B1 | PLUS-MINUS SIGN 90 | 000000B0 | DEGREE SIGN 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R 9A | 000000AA | FEMININE ORDINAL INDICATOR 9B | 000000BA | MASCULINE ORDINAL INDICATOR 9C | 000000E6 | LATIN SMALL LETTER AE 9D | 000000B8 | CEDILLA 9E | 000000C6 | LATIN CAPITAL LETTER AE 9F | 000000A4 | CURRENCY SIGN A0 | 000000B5 | MICRO SIGN A1 | 0000007E | TILDE A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z AA | 000000A1 | INVERTED EXCLAMATION MARK AB | 000000BF | INVERTED QUESTION MARK AC | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic) AD | 0000005B | LEFT SQUARE BRACKET AE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic) AF | 000000AE | REGISTERED SIGN B0 | 000000AC | NOT SIGN B1 | 000000A3 | POUND SIGN B2 | 000000A5 | YEN SIGN B3 | 000000B7 | MIDDLE DOT B4 | 000000A9 | COPYRIGHT SIGN B5 | 000000A7 | SECTION SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000BC | VULGAR FRACTION ONE QUARTER B8 | 000000BD | VULGAR FRACTION ONE HALF B9 | 000000BE | VULGAR FRACTION THREE QUARTERS BA | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE BB | 000000A8 | DIAERESIS BC | 000000AF | MACRON BD | 0000005D | RIGHT SQUARE BRACKET BE | 000000B4 | ACUTE ACCENT BF | 000000D7 | MULTIPLICATION SIGN C0 | 0000007B | LEFT CURLY BRACKET C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I CA | 000000AD | SOFT HYPHEN CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX CC | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE D0 | 0000007D | RIGHT CURLY BRACKET D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R DA | 000000B9 | SUPERSCRIPT ONE DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX DC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS E0 | 0000005C | REVERSE SOLIDUS E1 | 000000F7 | DIVISION SIGN E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z EA | 000000B2 | SUPERSCRIPT TWO EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX EC | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FA | 000000B3 | SUPERSCRIPT THREE FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]A$PPRecodeData/EBCDIC_IT.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for EBCDIC-IT. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::EBCDIC_IT; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e9, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00f2, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00f9, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00ec, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e7, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xb0", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa9", "\x24", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xb2", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xb9", "\x3a", "\xc2\xa3", "\xc2\xa7", "\x27", "\x3d", "\x22", "\xef\xbf\xbd", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xac", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa0", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa8", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa7", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a3 => "\x7b", 0x000000a7 => "\x7c", 0x000000b0 => "\x4a", 0x000000e0 => "\xc0", 0x000000e7 => "\xe0", 0x000000e8 => "\xd0", 0x000000e9 => "\x5a", 0x000000ec => "\xa1", 0x000000f2 => "\x6a", 0x000000f9 => "\x79", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::EBCDIC_IT - Conversion routines for EBCDIC_IT =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for EBCDIC-IT. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 4A | 000000B0 | DEGREE SIGN 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 5A | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 6A | 000000F2 | LATIN SMALL LETTER O WITH GRAVE 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 79 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 7A | 0000003A | COLON 7B | 000000A3 | POUND SIGN 7C | 000000A7 | SECTION SIGN 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R A1 | 000000EC | LATIN SMALL LETTER I WITH GRAVE A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z C0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I D0 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R E0 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]jjRecodeData/IBM297.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM297. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM297; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x0040, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x007b, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a7, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00b5, 0x003a, 0x00a3, 0x00e0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x0060, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x005d, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x203e, 0x007e, 0x00b4, 0x00d7, 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00a6, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xc2\xa0", "\xc3\xa2", "\xc3\xa4", "\x40", "\xc3\xa1", "\xc3\xa3", "\xc3\xa5", "\x5c", "\xc3\xb1", "\xc2\xb0", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\x7b", "\xc3\xaa", "\xc3\xab", "\x7d", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc3\xac", "\xc3\x9f", "\xc2\xa7", "\x24", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xc3\x82", "\xc3\x84", "\xc3\x80", "\xc3\x81", "\xc3\x83", "\xc3\x85", "\xc3\x87", "\xc3\x91", "\xc3\xb9", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xc3\xb8", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x88", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x8c", "\xc2\xb5", "\x3a", "\xc2\xa3", "\xc3\xa0", "\x27", "\x3d", "\x22", "\xc3\x98", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xc2\xab", "\xc2\xbb", "\xc3\xb0", "\xc3\xbd", "\xc3\xbe", "\xc2\xb1", "\x5b", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xc2\xaa", "\xc2\xba", "\xc3\xa6", "\xc2\xb8", "\xc3\x86", "\xc2\xa4", "\x60", "\xc2\xa8", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xc2\xa1", "\xc2\xbf", "\xc3\x90", "\xc3\x9d", "\xc3\x9e", "\xc2\xae", "\xc2\xa2", "\x23", "\xc2\xa5", "\xc2\xb7", "\xc2\xa9", "\x5d", "\xc2\xb6", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\xc2\xac", "\x7c", "\xe2\x80\xbe", "\x7e", "\xc2\xb4", "\xc3\x97", "\xc3\xa9", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xc2\xad", "\xc3\xb4", "\xc3\xb6", "\xc3\xb2", "\xc3\xb3", "\xc3\xb5", "\xc3\xa8", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xc2\xb9", "\xc3\xbb", "\xc3\xbc", "\xc2\xa6", "\xc3\xba", "\xc3\xbf", "\xc3\xa7", "\xc3\xb7", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xc2\xb2", "\xc3\x94", "\xc3\x96", "\xc3\x92", "\xc3\x93", "\xc3\x95", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xc2\xb3", "\xc3\x9b", "\xc3\x9c", "\xc3\x99", "\xc3\x9a", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000023 => "\xb1", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\x44", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\x90", 0x0000005c => "\x48", 0x0000005d => "\xb5", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000060 => "\xa0", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\x51", 0x0000007c => "\xbb", 0x0000007d => "\x54", 0x0000007e => "\xbd", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a0 => "\x41", 0x000000a1 => "\xaa", 0x000000a2 => "\xb0", 0x000000a3 => "\x7b", 0x000000a4 => "\x9f", 0x000000a5 => "\xb2", 0x000000a6 => "\xdd", 0x000000a7 => "\x5a", 0x000000a8 => "\xa1", 0x000000a9 => "\xb4", 0x000000aa => "\x9a", 0x000000ab => "\x8a", 0x000000ac => "\xba", 0x000000ad => "\xca", 0x000000ae => "\xaf", 0x000000b0 => "\x4a", 0x000000b1 => "\x8f", 0x000000b2 => "\xea", 0x000000b3 => "\xfa", 0x000000b4 => "\xbe", 0x000000b5 => "\x79", 0x000000b6 => "\xb6", 0x000000b7 => "\xb3", 0x000000b8 => "\x9d", 0x000000b9 => "\xda", 0x000000ba => "\x9b", 0x000000bb => "\x8b", 0x000000bc => "\xb7", 0x000000bd => "\xb8", 0x000000be => "\xb9", 0x000000bf => "\xab", 0x000000c0 => "\x64", 0x000000c1 => "\x65", 0x000000c2 => "\x62", 0x000000c3 => "\x66", 0x000000c4 => "\x63", 0x000000c5 => "\x67", 0x000000c6 => "\x9e", 0x000000c7 => "\x68", 0x000000c8 => "\x74", 0x000000c9 => "\x71", 0x000000ca => "\x72", 0x000000cb => "\x73", 0x000000cc => "\x78", 0x000000cd => "\x75", 0x000000ce => "\x76", 0x000000cf => "\x77", 0x000000d0 => "\xac", 0x000000d1 => "\x69", 0x000000d2 => "\xed", 0x000000d3 => "\xee", 0x000000d4 => "\xeb", 0x000000d5 => "\xef", 0x000000d6 => "\xec", 0x000000d7 => "\xbf", 0x000000d8 => "\x80", 0x000000d9 => "\xfd", 0x000000da => "\xfe", 0x000000db => "\xfb", 0x000000dc => "\xfc", 0x000000dd => "\xad", 0x000000de => "\xae", 0x000000df => "\x59", 0x000000e0 => "\x7c", 0x000000e1 => "\x45", 0x000000e2 => "\x42", 0x000000e3 => "\x46", 0x000000e4 => "\x43", 0x000000e5 => "\x47", 0x000000e6 => "\x9c", 0x000000e7 => "\xe0", 0x000000e8 => "\xd0", 0x000000e9 => "\xc0", 0x000000ea => "\x52", 0x000000eb => "\x53", 0x000000ec => "\x58", 0x000000ed => "\x55", 0x000000ee => "\x56", 0x000000ef => "\x57", 0x000000f0 => "\x8c", 0x000000f1 => "\x49", 0x000000f2 => "\xcd", 0x000000f3 => "\xce", 0x000000f4 => "\xcb", 0x000000f5 => "\xcf", 0x000000f6 => "\xcc", 0x000000f7 => "\xe1", 0x000000f8 => "\x70", 0x000000f9 => "\x6a", 0x000000fa => "\xde", 0x000000fb => "\xdb", 0x000000fc => "\xdc", 0x000000fd => "\x8d", 0x000000fe => "\x8e", 0x000000ff => "\xdf", 0x0000203e => "\xbc", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM297 - Conversion routines for IBM297 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM297. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP297 alias EBCDIC-CP-FR Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 41 | 000000A0 | NO-BREAK SPACE 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 44 | 00000040 | COMMERCIAL AT 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE 47 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 48 | 0000005C | REVERSE SOLIDUS 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE 4A | 000000B0 | DEGREE SIGN 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 51 | 0000007B | LEFT CURLY BRACKET 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 54 | 0000007D | RIGHT CURLY BRACKET 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE 59 | 000000DF | LATIN SMALL LETTER SHARP S (German) 5A | 000000A7 | SECTION SIGN 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE 67 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 6A | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE 79 | 000000B5 | MICRO SIGN 7A | 0000003A | COLON 7B | 000000A3 | POUND SIGN 7C | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic) 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE 8E | 000000FE | LATIN SMALL LETTER THORN (Icelandic) 8F | 000000B1 | PLUS-MINUS SIGN 90 | 0000005B | LEFT SQUARE BRACKET 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R 9A | 000000AA | FEMININE ORDINAL INDICATOR 9B | 000000BA | MASCULINE ORDINAL INDICATOR 9C | 000000E6 | LATIN SMALL LETTER AE 9D | 000000B8 | CEDILLA 9E | 000000C6 | LATIN CAPITAL LETTER AE 9F | 000000A4 | CURRENCY SIGN A0 | 00000060 | GRAVE ACCENT A1 | 000000A8 | DIAERESIS A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z AA | 000000A1 | INVERTED EXCLAMATION MARK AB | 000000BF | INVERTED QUESTION MARK AC | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic) AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE AE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic) AF | 000000AE | REGISTERED SIGN B0 | 000000A2 | CENT SIGN B1 | 00000023 | NUMBER SIGN B2 | 000000A5 | YEN SIGN B3 | 000000B7 | MIDDLE DOT B4 | 000000A9 | COPYRIGHT SIGN B5 | 0000005D | RIGHT SQUARE BRACKET B6 | 000000B6 | PILCROW SIGN B7 | 000000BC | VULGAR FRACTION ONE QUARTER B8 | 000000BD | VULGAR FRACTION ONE HALF B9 | 000000BE | VULGAR FRACTION THREE QUARTERS BA | 000000AC | NOT SIGN BB | 0000007C | VERTICAL LINE BC | 0000203E | OVERLINE BD | 0000007E | TILDE BE | 000000B4 | ACUTE ACCENT BF | 000000D7 | MULTIPLICATION SIGN C0 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I CA | 000000AD | SOFT HYPHEN CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX CC | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE D0 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R DA | 000000B9 | SUPERSCRIPT ONE DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX DC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS DD | 000000A6 | BROKEN BAR DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS E0 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA E1 | 000000F7 | DIVISION SIGN E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z EA | 000000B2 | SUPERSCRIPT TWO EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX EC | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FA | 000000B3 | SUPERSCRIPT THREE FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]|&q^^RecodeData/MACHEBREW.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for MACHEBREW. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::MACHEBREW; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c4, 0xfb1f, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x20aa, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x201e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x05bc, 0xfb4b, 0xfb35, 0x2026, 0x00a0, 0x05b8, 0x05b7, 0x05b5, 0x05b6, 0x05b4, 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0xfb2a, 0xfb2b, 0x05bf, 0x05b0, 0x05b2, 0x05b1, 0x05bb, 0x05b9, 0xfffd, 0x05b3, 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x05ea, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc3\x84", "\xef\xac\x9f", "\xc3\x87", "\xc3\x89", "\xc3\x91", "\xc3\x96", "\xc3\x9c", "\xc3\xa1", "\xc3\xa0", "\xc3\xa2", "\xc3\xa4", "\xc3\xa3", "\xc3\xa5", "\xc3\xa7", "\xc3\xa9", "\xc3\xa8", "\xc3\xaa", "\xc3\xab", "\xc3\xad", "\xc3\xac", "\xc3\xae", "\xc3\xaf", "\xc3\xb1", "\xc3\xb3", "\xc3\xb2", "\xc3\xb4", "\xc3\xb6", "\xc3\xb5", "\xc3\xba", "\xc3\xb9", "\xc3\xbb", "\xc3\xbc", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe2\x82\xaa", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe2\x80\x9e", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd6\xbc", "\xef\xad\x8b", "\xef\xac\xb5", "\xe2\x80\xa6", "\xc2\xa0", "\xd6\xb8", "\xd6\xb7", "\xd6\xb5", "\xd6\xb6", "\xd6\xb4", "\xe2\x80\x93", "\xe2\x80\x94", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x98", "\xe2\x80\x99", "\xef\xac\xaa", "\xef\xac\xab", "\xd6\xbf", "\xd6\xb0", "\xd6\xb2", "\xd6\xb1", "\xd6\xbb", "\xd6\xb9", "\xef\xbf\xbd", "\xd6\xb3", "\xd7\x90", "\xd7\x91", "\xd7\x92", "\xd7\x93", "\xd7\x94", "\xd7\x95", "\xd7\x96", "\xd7\x97", "\xd7\x98", "\xd7\x99", "\xd7\x9a", "\xd7\x9b", "\xd7\x9c", "\xd7\x9d", "\xd7\x9e", "\xd7\x9f", "\xd7\xa0", "\xd7\xa1", "\xd7\xa2", "\xd7\xa3", "\xd7\xa4", "\xd7\xa5", "\xd7\xa6", "\xd7\xa7", "\xd7\xa8", "\xd7\xa9", "\xd7\xaa", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xca", 0x000000c4 => "\x80", 0x000000c7 => "\x82", 0x000000c9 => "\x83", 0x000000d1 => "\x84", 0x000000d6 => "\x85", 0x000000dc => "\x86", 0x000000e0 => "\x88", 0x000000e1 => "\x87", 0x000000e2 => "\x89", 0x000000e3 => "\x8b", 0x000000e4 => "\x8a", 0x000000e5 => "\x8c", 0x000000e7 => "\x8d", 0x000000e8 => "\x8f", 0x000000e9 => "\x8e", 0x000000ea => "\x90", 0x000000eb => "\x91", 0x000000ec => "\x93", 0x000000ed => "\x92", 0x000000ee => "\x94", 0x000000ef => "\x95", 0x000000f1 => "\x96", 0x000000f2 => "\x98", 0x000000f3 => "\x97", 0x000000f4 => "\x99", 0x000000f5 => "\x9b", 0x000000f6 => "\x9a", 0x000000f9 => "\x9d", 0x000000fa => "\x9c", 0x000000fb => "\x9e", 0x000000fc => "\x9f", 0x000005b0 => "\xd9", 0x000005b1 => "\xdb", 0x000005b2 => "\xda", 0x000005b3 => "\xdf", 0x000005b4 => "\xcf", 0x000005b5 => "\xcd", 0x000005b6 => "\xce", 0x000005b7 => "\xcc", 0x000005b8 => "\xcb", 0x000005b9 => "\xdd", 0x000005bb => "\xdc", 0x000005bc => "\xc6", 0x000005bf => "\xd8", 0x000005d0 => "\xe0", 0x000005d1 => "\xe1", 0x000005d2 => "\xe2", 0x000005d3 => "\xe3", 0x000005d4 => "\xe4", 0x000005d5 => "\xe5", 0x000005d6 => "\xe6", 0x000005d7 => "\xe7", 0x000005d8 => "\xe8", 0x000005d9 => "\xe9", 0x000005da => "\xea", 0x000005db => "\xeb", 0x000005dc => "\xec", 0x000005dd => "\xed", 0x000005de => "\xee", 0x000005df => "\xef", 0x000005e0 => "\xf0", 0x000005e1 => "\xf1", 0x000005e2 => "\xf2", 0x000005e3 => "\xf3", 0x000005e4 => "\xf4", 0x000005e5 => "\xf5", 0x000005e6 => "\xf6", 0x000005e7 => "\xf7", 0x000005e8 => "\xf8", 0x000005e9 => "\xf9", 0x000005ea => "\xfa", 0x00002013 => "\xd0", 0x00002014 => "\xd1", 0x00002018 => "\xd4", 0x00002019 => "\xd5", 0x0000201c => "\xd2", 0x0000201d => "\xd3", 0x0000201e => "\xc1", 0x00002026 => "\xc9", 0x000020aa => "\xa6", 0x0000fb1f => "\x81", 0x0000fb2a => "\xd6", 0x0000fb2b => "\xd7", 0x0000fb35 => "\xc8", 0x0000fb4b => "\xc7", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::MACHEBREW - Conversion routines for MACHEBREW =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for MACHEBREW. =head1 COMMENTS The following comments have been extracted from the original charmap: This charmap has been generated automatically from GNU libiconv conversions. Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 81 | 0000FB1F | HEBREW LIGATURE YIDDISH YOD YOD PATAH 82 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 83 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 84 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 85 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 86 | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 87 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 88 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 89 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 8A | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 8B | 000000E3 | LATIN SMALL LETTER A WITH TILDE 8C | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 8D | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 8E | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 8F | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 90 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 91 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 92 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 93 | 000000EC | LATIN SMALL LETTER I WITH GRAVE 94 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 95 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 96 | 000000F1 | LATIN SMALL LETTER N WITH TILDE 97 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE 98 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE 99 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX 9A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 9B | 000000F5 | LATIN SMALL LETTER O WITH TILDE 9C | 000000FA | LATIN SMALL LETTER U WITH ACUTE 9D | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 9E | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX 9F | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS A6 | 000020AA | NEW SHEQEL SIGN C1 | 0000201E | DOUBLE LOW-9 QUOTATION MARK C6 | 000005BC | HEBREW POINT DAGESH OR MAPIQ C7 | 0000FB4B | HEBREW LETTER VAV WITH HOLAM C8 | 0000FB35 | HEBREW LETTER VAV WITH DAGESH C9 | 00002026 | HORIZONTAL ELLIPSIS CA | 000000A0 | NO-BREAK SPACE CB | 000005B8 | HEBREW POINT QAMATS CC | 000005B7 | HEBREW POINT PATAH CD | 000005B5 | HEBREW POINT TSERE CE | 000005B6 | HEBREW POINT SEGOL CF | 000005B4 | HEBREW POINT HIRIQ D0 | 00002013 | EN DASH D1 | 00002014 | EM DASH D2 | 0000201C | LEFT DOUBLE QUOTATION MARK D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK D4 | 00002018 | LEFT SINGLE QUOTATION MARK D5 | 00002019 | RIGHT SINGLE QUOTATION MARK D6 | 0000FB2A | HEBREW LETTER SHIN WITH SHIN DOT D7 | 0000FB2B | HEBREW LETTER SHIN WITH SIN DOT D8 | 000005BF | HEBREW POINT RAFE D9 | 000005B0 | HEBREW POINT SHEVA DA | 000005B2 | HEBREW POINT HATAF PATAH DB | 000005B1 | HEBREW POINT HATAF SEGOL DC | 000005BB | HEBREW POINT QUBUTS DD | 000005B9 | HEBREW POINT HOLAM DF | 000005B3 | HEBREW POINT HATAF QAMATS E0 | 000005D0 | HEBREW LETTER ALEF E1 | 000005D1 | HEBREW LETTER BET E2 | 000005D2 | HEBREW LETTER GIMEL E3 | 000005D3 | HEBREW LETTER DALET E4 | 000005D4 | HEBREW LETTER HE E5 | 000005D5 | HEBREW LETTER VAV E6 | 000005D6 | HEBREW LETTER ZAYIN E7 | 000005D7 | HEBREW LETTER HET E8 | 000005D8 | HEBREW LETTER TET E9 | 000005D9 | HEBREW LETTER YOD EA | 000005DA | HEBREW LETTER FINAL KAF EB | 000005DB | HEBREW LETTER KAF EC | 000005DC | HEBREW LETTER LAMED ED | 000005DD | HEBREW LETTER FINAL MEM EE | 000005DE | HEBREW LETTER MEM EF | 000005DF | HEBREW LETTER FINAL NUN F0 | 000005E0 | HEBREW LETTER NUN F1 | 000005E1 | HEBREW LETTER SAMEKH F2 | 000005E2 | HEBREW LETTER AYIN F3 | 000005E3 | HEBREW LETTER FINAL PE F4 | 000005E4 | HEBREW LETTER PE F5 | 000005E5 | HEBREW LETTER FINAL TSADI F6 | 000005E6 | HEBREW LETTER TSADI F7 | 000005E7 | HEBREW LETTER QOF F8 | 000005E8 | HEBREW LETTER RESH F9 | 000005E9 | HEBREW LETTER SHIN FA | 000005EA | HEBREW LETTER TAV =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]6%akakRecodeData/HP_ROMAN8.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for HP-ROMAN8. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::HP_ROMAN8; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x00c0, 0x00c2, 0x00c8, 0x00ca, 0x00cb, 0x00ce, 0x00cf, 0x00b4, 0x02cb, 0x02c6, 0x00a8, 0x02dc, 0x00d9, 0x00db, 0x20a4, 0x00af, 0x00dd, 0x00fd, 0x00b0, 0x00c7, 0x00e7, 0x00d1, 0x00f1, 0x00a1, 0x00bf, 0x00a4, 0x00a3, 0x00a5, 0x00a7, 0x0192, 0x00a2, 0x00e2, 0x00ea, 0x00f4, 0x00fb, 0x00e1, 0x00e9, 0x00f3, 0x00fa, 0x00e0, 0x00e8, 0x00f2, 0x00f9, 0x00e4, 0x00eb, 0x00f6, 0x00fc, 0x00c5, 0x00ee, 0x00d8, 0x00c6, 0x00e5, 0x00ed, 0x00f8, 0x00e6, 0x00c4, 0x00ec, 0x00d6, 0x00dc, 0x00c9, 0x00ef, 0x00df, 0x00d4, 0x00c1, 0x00c3, 0x00e3, 0x00d0, 0x00f0, 0x00cd, 0x00cc, 0x00d3, 0x00d2, 0x00d5, 0x00f5, 0x0160, 0x0161, 0x00da, 0x0178, 0x00ff, 0x00de, 0x00fe, 0x00b7, 0x00b5, 0x00b6, 0x00be, 0x2014, 0x00bc, 0x00bd, 0x00aa, 0x00ba, 0x00ab, 0x25a0, 0x00bb, 0x00b1, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\xc2\x85", "\xc2\x86", "\xc2\x87", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\xc2\x8d", "\xc2\x8e", "\xc2\x8f", "\xc2\x90", "\xc2\x91", "\xc2\x92", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\xc2\x97", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\xc2\x9c", "\xc2\x9d", "\xc2\x9e", "\xc2\x9f", "\xc2\xa0", "\xc3\x80", "\xc3\x82", "\xc3\x88", "\xc3\x8a", "\xc3\x8b", "\xc3\x8e", "\xc3\x8f", "\xc2\xb4", "\xcb\x8b", "\xcb\x86", "\xc2\xa8", "\xcb\x9c", "\xc3\x99", "\xc3\x9b", "\xe2\x82\xa4", "\xc2\xaf", "\xc3\x9d", "\xc3\xbd", "\xc2\xb0", "\xc3\x87", "\xc3\xa7", "\xc3\x91", "\xc3\xb1", "\xc2\xa1", "\xc2\xbf", "\xc2\xa4", "\xc2\xa3", "\xc2\xa5", "\xc2\xa7", "\xc6\x92", "\xc2\xa2", "\xc3\xa2", "\xc3\xaa", "\xc3\xb4", "\xc3\xbb", "\xc3\xa1", "\xc3\xa9", "\xc3\xb3", "\xc3\xba", "\xc3\xa0", "\xc3\xa8", "\xc3\xb2", "\xc3\xb9", "\xc3\xa4", "\xc3\xab", "\xc3\xb6", "\xc3\xbc", "\xc3\x85", "\xc3\xae", "\xc3\x98", "\xc3\x86", "\xc3\xa5", "\xc3\xad", "\xc3\xb8", "\xc3\xa6", "\xc3\x84", "\xc3\xac", "\xc3\x96", "\xc3\x9c", "\xc3\x89", "\xc3\xaf", "\xc3\x9f", "\xc3\x94", "\xc3\x81", "\xc3\x83", "\xc3\xa3", "\xc3\x90", "\xc3\xb0", "\xc3\x8d", "\xc3\x8c", "\xc3\x93", "\xc3\x92", "\xc3\x95", "\xc3\xb5", "\xc5\xa0", "\xc5\xa1", "\xc3\x9a", "\xc5\xb8", "\xc3\xbf", "\xc3\x9e", "\xc3\xbe", "\xc2\xb7", "\xc2\xb5", "\xc2\xb6", "\xc2\xbe", "\xe2\x80\x94", "\xc2\xbc", "\xc2\xbd", "\xc2\xaa", "\xc2\xba", "\xc2\xab", "\xe2\x96\xa0", "\xc2\xbb", "\xc2\xb1", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000080 => "\x80", 0x00000081 => "\x81", 0x00000082 => "\x82", 0x00000083 => "\x83", 0x00000084 => "\x84", 0x00000085 => "\x85", 0x00000086 => "\x86", 0x00000087 => "\x87", 0x00000088 => "\x88", 0x00000089 => "\x89", 0x0000008a => "\x8a", 0x0000008b => "\x8b", 0x0000008c => "\x8c", 0x0000008d => "\x8d", 0x0000008e => "\x8e", 0x0000008f => "\x8f", 0x00000090 => "\x90", 0x00000091 => "\x91", 0x00000092 => "\x92", 0x00000093 => "\x93", 0x00000094 => "\x94", 0x00000095 => "\x95", 0x00000096 => "\x96", 0x00000097 => "\x97", 0x00000098 => "\x98", 0x00000099 => "\x99", 0x0000009a => "\x9a", 0x0000009b => "\x9b", 0x0000009c => "\x9c", 0x0000009d => "\x9d", 0x0000009e => "\x9e", 0x0000009f => "\x9f", 0x000000a0 => "\xa0", 0x000000a1 => "\xb8", 0x000000a2 => "\xbf", 0x000000a3 => "\xbb", 0x000000a4 => "\xba", 0x000000a5 => "\xbc", 0x000000a7 => "\xbd", 0x000000a8 => "\xab", 0x000000aa => "\xf9", 0x000000ab => "\xfb", 0x000000af => "\xb0", 0x000000b0 => "\xb3", 0x000000b1 => "\xfe", 0x000000b4 => "\xa8", 0x000000b5 => "\xf3", 0x000000b6 => "\xf4", 0x000000b7 => "\xf2", 0x000000ba => "\xfa", 0x000000bb => "\xfd", 0x000000bc => "\xf7", 0x000000bd => "\xf8", 0x000000be => "\xf5", 0x000000bf => "\xb9", 0x000000c0 => "\xa1", 0x000000c1 => "\xe0", 0x000000c2 => "\xa2", 0x000000c3 => "\xe1", 0x000000c4 => "\xd8", 0x000000c5 => "\xd0", 0x000000c6 => "\xd3", 0x000000c7 => "\xb4", 0x000000c8 => "\xa3", 0x000000c9 => "\xdc", 0x000000ca => "\xa4", 0x000000cb => "\xa5", 0x000000cc => "\xe6", 0x000000cd => "\xe5", 0x000000ce => "\xa6", 0x000000cf => "\xa7", 0x000000d0 => "\xe3", 0x000000d1 => "\xb6", 0x000000d2 => "\xe8", 0x000000d3 => "\xe7", 0x000000d4 => "\xdf", 0x000000d5 => "\xe9", 0x000000d6 => "\xda", 0x000000d8 => "\xd2", 0x000000d9 => "\xad", 0x000000da => "\xed", 0x000000db => "\xae", 0x000000dc => "\xdb", 0x000000dd => "\xb1", 0x000000de => "\xf0", 0x000000df => "\xde", 0x000000e0 => "\xc8", 0x000000e1 => "\xc4", 0x000000e2 => "\xc0", 0x000000e3 => "\xe2", 0x000000e4 => "\xcc", 0x000000e5 => "\xd4", 0x000000e6 => "\xd7", 0x000000e7 => "\xb5", 0x000000e8 => "\xc9", 0x000000e9 => "\xc5", 0x000000ea => "\xc1", 0x000000eb => "\xcd", 0x000000ec => "\xd9", 0x000000ed => "\xd5", 0x000000ee => "\xd1", 0x000000ef => "\xdd", 0x000000f0 => "\xe4", 0x000000f1 => "\xb7", 0x000000f2 => "\xca", 0x000000f3 => "\xc6", 0x000000f4 => "\xc2", 0x000000f5 => "\xea", 0x000000f6 => "\xce", 0x000000f8 => "\xd6", 0x000000f9 => "\xcb", 0x000000fa => "\xc7", 0x000000fb => "\xc3", 0x000000fc => "\xcf", 0x000000fd => "\xb2", 0x000000fe => "\xf1", 0x000000ff => "\xef", 0x00000160 => "\xeb", 0x00000161 => "\xec", 0x00000178 => "\xee", 0x00000192 => "\xbe", 0x000002c6 => "\xaa", 0x000002cb => "\xa9", 0x000002dc => "\xac", 0x00002014 => "\xf6", 0x000020a4 => "\xaf", 0x000025a0 => "\xfc", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::HP_ROMAN8 - Conversion routines for HP_ROMAN8 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for HP-ROMAN8. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: LaserJet IIP Printer User's Manual, HP part no 33471-90901, Hewlet-Packard, June 1989. alias ROMAN8 alias R8 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000080 | PADDING CHARACTER (PAD) 81 | 00000081 | HIGH OCTET PRESET (HOP) 82 | 00000082 | BREAK PERMITTED HERE (BPH) 83 | 00000083 | NO BREAK HERE (NBH) 84 | 00000084 | INDEX (IND) 85 | 00000085 | NEXT LINE (NEL) 86 | 00000086 | START OF SELECTED AREA (SSA) 87 | 00000087 | END OF SELECTED AREA (ESA) 88 | 00000088 | CHARACTER TABULATION SET (HTS) 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 8A | 0000008A | LINE TABULATION SET (VTS) 8B | 0000008B | PARTIAL LINE FORWARD (PLD) 8C | 0000008C | PARTIAL LINE BACKWARD (PLU) 8D | 0000008D | REVERSE LINE FEED (RI) 8E | 0000008E | SINGLE-SHIFT TWO (SS2) 8F | 0000008F | SINGLE-SHIFT THREE (SS3) 90 | 00000090 | DEVICE CONTROL STRING (DCS) 91 | 00000091 | PRIVATE USE ONE (PU1) 92 | 00000092 | PRIVATE USE TWO (PU2) 93 | 00000093 | SET TRANSMIT STATE (STS) 94 | 00000094 | CANCEL CHARACTER (CCH) 95 | 00000095 | MESSAGE WAITING (MW) 96 | 00000096 | START OF GUARDED AREA (SPA) 97 | 00000097 | END OF GUARDED AREA (EPA) 98 | 00000098 | START OF STRING (SOS) 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 9C | 0000009C | STRING TERMINATOR (ST) 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC) 9E | 0000009E | PRIVACY MESSAGE (PM) 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC) A0 | 000000A0 | NO-BREAK SPACE A1 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE A2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX A3 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE A4 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX A5 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS A6 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX A7 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS A8 | 000000B4 | ACUTE ACCENT A9 | 000002CB | MODIFIER LETTER GRAVE ACCENT (Mandarin Chinese fourth tone) AA | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT AB | 000000A8 | DIAERESIS AC | 000002DC | SMALL TILDE AD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE AE | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX AF | 000020A4 | LIRA SIGN B0 | 000000AF | MACRON B1 | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE B2 | 000000FD | LATIN SMALL LETTER Y WITH ACUTE B3 | 000000B0 | DEGREE SIGN B4 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA B5 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA B6 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE B7 | 000000F1 | LATIN SMALL LETTER N WITH TILDE B8 | 000000A1 | INVERTED EXCLAMATION MARK B9 | 000000BF | INVERTED QUESTION MARK BA | 000000A4 | CURRENCY SIGN BB | 000000A3 | POUND SIGN BC | 000000A5 | YEN SIGN BD | 000000A7 | SECTION SIGN BE | 00000192 | LATIN SMALL LETTER F WITH HOOK BF | 000000A2 | CENT SIGN C0 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX C1 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX C2 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX C3 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX C4 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE C5 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE C6 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE C7 | 000000FA | LATIN SMALL LETTER U WITH ACUTE C8 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE C9 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE CA | 000000F2 | LATIN SMALL LETTER O WITH GRAVE CB | 000000F9 | LATIN SMALL LETTER U WITH GRAVE CC | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS CD | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS CE | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS CF | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS D0 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE D1 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX D2 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE D3 | 000000C6 | LATIN CAPITAL LETTER AE D4 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE D5 | 000000ED | LATIN SMALL LETTER I WITH ACUTE D6 | 000000F8 | LATIN SMALL LETTER O WITH STROKE D7 | 000000E6 | LATIN SMALL LETTER AE D8 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS D9 | 000000EC | LATIN SMALL LETTER I WITH GRAVE DA | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS DB | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS DC | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE DD | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS DE | 000000DF | LATIN SMALL LETTER SHARP S (German) DF | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX E0 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE E1 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE E2 | 000000E3 | LATIN SMALL LETTER A WITH TILDE E3 | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic) E4 | 000000F0 | LATIN SMALL LETTER ETH (Icelandic) E5 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE E6 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE E7 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE E8 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE E9 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE EA | 000000F5 | LATIN SMALL LETTER O WITH TILDE EB | 00000160 | LATIN CAPITAL LETTER S WITH CARON EC | 00000161 | LATIN SMALL LETTER S WITH CARON ED | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE EE | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS EF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS F0 | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic) F1 | 000000FE | LATIN SMALL LETTER THORN (Icelandic) F2 | 000000B7 | MIDDLE DOT F3 | 000000B5 | MICRO SIGN F4 | 000000B6 | PILCROW SIGN F5 | 000000BE | VULGAR FRACTION THREE QUARTERS F6 | 00002014 | EM DASH F7 | 000000BC | VULGAR FRACTION ONE QUARTER F8 | 000000BD | VULGAR FRACTION ONE HALF F9 | 000000AA | FEMININE ORDINAL INDICATOR FA | 000000BA | MASCULINE ORDINAL INDICATOR FB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK FC | 000025A0 | BLACK SQUARE FD | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK FE | 000000B1 | PLUS-MINUS SIGN =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]E$PPRecodeData/IBM275.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM275. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM275; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00c9, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0024, 0x00c7, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e7, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e3, 0x003a, 0x00d5, 0x00c3, 0x0027, 0x003d, 0x0022, 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00f5, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e9, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x005c, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\x89", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x24", "\xc3\x87", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa7", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa3", "\x3a", "\xc3\x95", "\xc3\x83", "\x27", "\x3d", "\x22", "\xef\xbf\xbd", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x7e", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xb5", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa9", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x5c", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000024 => "\x5a", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005c => "\xe0", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007e => "\xa1", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000c3 => "\x7c", 0x000000c7 => "\x5b", 0x000000c9 => "\x4a", 0x000000d5 => "\x7b", 0x000000e3 => "\x79", 0x000000e7 => "\x6a", 0x000000e9 => "\xd0", 0x000000f5 => "\xc0", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM275 - Conversion routines for IBM275 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM275. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias EBCDIC-BR alias CP275 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 4A | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 5A | 00000024 | DOLLAR SIGN 5B | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 6A | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 79 | 000000E3 | LATIN SMALL LETTER A WITH TILDE 7A | 0000003A | COLON 7B | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE 7C | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R A1 | 0000007E | TILDE A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z C0 | 000000F5 | LATIN SMALL LETTER O WITH TILDE C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I D0 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R E0 | 0000005C | REVERSE SOLIDUS E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]+ZggRecodeData/IEC_P27_1.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IEC_P27-1. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IEC_P27_1; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x02c7, 0x2261, 0x2227, 0x2228, 0x2229, 0x222a, 0x2282, 0x2283, 0x21d0, 0x21d2, 0x2234, 0x2235, 0x2208, 0x220b, 0x2286, 0x2287, 0x222b, 0x222e, 0x221e, 0x2207, 0x2202, 0x223c, 0x2248, 0x2243, 0x2245, 0x2264, 0x2260, 0x2265, 0x2194, 0x00ac, 0x2200, 0x2203, 0x05d0, 0x25a1, 0x2225, 0x0393, 0x0394, 0x22a5, 0x2220, 0x221f, 0x0398, 0x2329, 0x232a, 0x039b, 0x2032, 0x2033, 0x039e, 0x2213, 0x03a0, 0x00b2, 0x03a3, 0x00d7, 0x00b3, 0x03a5, 0x03a6, 0x00b7, 0x03a8, 0x03a9, 0x2205, 0x21c0, 0x221a, 0x0192, 0x221d, 0x00b1, 0x00b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x2030, 0x03c0, 0x03c1, 0x03c3, 0x00f7, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x2020, 0x2190, 0x2191, 0x2192, 0x2193, 0x203e, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\xc2\x85", "\xc2\x86", "\xc2\x87", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\xc2\x8d", "\xc2\x8e", "\xc2\x8f", "\xc2\x90", "\xc2\x91", "\xc2\x92", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\xc2\x97", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\xc2\x9c", "\xc2\x9d", "\xc2\x9e", "\xc2\x9f", "\xcb\x87", "\xe2\x89\xa1", "\xe2\x88\xa7", "\xe2\x88\xa8", "\xe2\x88\xa9", "\xe2\x88\xaa", "\xe2\x8a\x82", "\xe2\x8a\x83", "\xe2\x87\x90", "\xe2\x87\x92", "\xe2\x88\xb4", "\xe2\x88\xb5", "\xe2\x88\x88", "\xe2\x88\x8b", "\xe2\x8a\x86", "\xe2\x8a\x87", "\xe2\x88\xab", "\xe2\x88\xae", "\xe2\x88\x9e", "\xe2\x88\x87", "\xe2\x88\x82", "\xe2\x88\xbc", "\xe2\x89\x88", "\xe2\x89\x83", "\xe2\x89\x85", "\xe2\x89\xa4", "\xe2\x89\xa0", "\xe2\x89\xa5", "\xe2\x86\x94", "\xc2\xac", "\xe2\x88\x80", "\xe2\x88\x83", "\xd7\x90", "\xe2\x96\xa1", "\xe2\x88\xa5", "\xce\x93", "\xce\x94", "\xe2\x8a\xa5", "\xe2\x88\xa0", "\xe2\x88\x9f", "\xce\x98", "\xe2\x8c\xa9", "\xe2\x8c\xaa", "\xce\x9b", "\xe2\x80\xb2", "\xe2\x80\xb3", "\xce\x9e", "\xe2\x88\x93", "\xce\xa0", "\xc2\xb2", "\xce\xa3", "\xc3\x97", "\xc2\xb3", "\xce\xa5", "\xce\xa6", "\xc2\xb7", "\xce\xa8", "\xce\xa9", "\xe2\x88\x85", "\xe2\x87\x80", "\xe2\x88\x9a", "\xc6\x92", "\xe2\x88\x9d", "\xc2\xb1", "\xc2\xb0", "\xce\xb1", "\xce\xb2", "\xce\xb3", "\xce\xb4", "\xce\xb5", "\xce\xb6", "\xce\xb7", "\xce\xb8", "\xce\xb9", "\xce\xba", "\xce\xbb", "\xce\xbc", "\xce\xbd", "\xce\xbe", "\xe2\x80\xb0", "\xcf\x80", "\xcf\x81", "\xcf\x83", "\xc3\xb7", "\xcf\x84", "\xcf\x85", "\xcf\x86", "\xcf\x87", "\xcf\x88", "\xcf\x89", "\xe2\x80\xa0", "\xe2\x86\x90", "\xe2\x86\x91", "\xe2\x86\x92", "\xe2\x86\x93", "\xe2\x80\xbe", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000080 => "\x80", 0x00000081 => "\x81", 0x00000082 => "\x82", 0x00000083 => "\x83", 0x00000084 => "\x84", 0x00000085 => "\x85", 0x00000086 => "\x86", 0x00000087 => "\x87", 0x00000088 => "\x88", 0x00000089 => "\x89", 0x0000008a => "\x8a", 0x0000008b => "\x8b", 0x0000008c => "\x8c", 0x0000008d => "\x8d", 0x0000008e => "\x8e", 0x0000008f => "\x8f", 0x00000090 => "\x90", 0x00000091 => "\x91", 0x00000092 => "\x92", 0x00000093 => "\x93", 0x00000094 => "\x94", 0x00000095 => "\x95", 0x00000096 => "\x96", 0x00000097 => "\x97", 0x00000098 => "\x98", 0x00000099 => "\x99", 0x0000009a => "\x9a", 0x0000009b => "\x9b", 0x0000009c => "\x9c", 0x0000009d => "\x9d", 0x0000009e => "\x9e", 0x0000009f => "\x9f", 0x000000ac => "\xbd", 0x000000b0 => "\xe0", 0x000000b1 => "\xdf", 0x000000b2 => "\xd1", 0x000000b3 => "\xd4", 0x000000b7 => "\xd7", 0x000000d7 => "\xd3", 0x000000f7 => "\xf3", 0x00000192 => "\xdd", 0x000002c7 => "\xa0", 0x00000393 => "\xc3", 0x00000394 => "\xc4", 0x00000398 => "\xc8", 0x0000039b => "\xcb", 0x0000039e => "\xce", 0x000003a0 => "\xd0", 0x000003a3 => "\xd2", 0x000003a5 => "\xd5", 0x000003a6 => "\xd6", 0x000003a8 => "\xd8", 0x000003a9 => "\xd9", 0x000003b1 => "\xe1", 0x000003b2 => "\xe2", 0x000003b3 => "\xe3", 0x000003b4 => "\xe4", 0x000003b5 => "\xe5", 0x000003b6 => "\xe6", 0x000003b7 => "\xe7", 0x000003b8 => "\xe8", 0x000003b9 => "\xe9", 0x000003ba => "\xea", 0x000003bb => "\xeb", 0x000003bc => "\xec", 0x000003bd => "\xed", 0x000003be => "\xee", 0x000003c0 => "\xf0", 0x000003c1 => "\xf1", 0x000003c3 => "\xf2", 0x000003c4 => "\xf4", 0x000003c5 => "\xf5", 0x000003c6 => "\xf6", 0x000003c7 => "\xf7", 0x000003c8 => "\xf8", 0x000003c9 => "\xf9", 0x000005d0 => "\xc0", 0x00002020 => "\xfa", 0x00002030 => "\xef", 0x00002032 => "\xcc", 0x00002033 => "\xcd", 0x0000203e => "\xff", 0x00002190 => "\xfb", 0x00002191 => "\xfc", 0x00002192 => "\xfd", 0x00002193 => "\xfe", 0x00002194 => "\xbc", 0x000021c0 => "\xdb", 0x000021d0 => "\xa8", 0x000021d2 => "\xa9", 0x00002200 => "\xbe", 0x00002202 => "\xb4", 0x00002203 => "\xbf", 0x00002205 => "\xda", 0x00002207 => "\xb3", 0x00002208 => "\xac", 0x0000220b => "\xad", 0x00002213 => "\xcf", 0x0000221a => "\xdc", 0x0000221d => "\xde", 0x0000221e => "\xb2", 0x0000221f => "\xc7", 0x00002220 => "\xc6", 0x00002225 => "\xc2", 0x00002227 => "\xa2", 0x00002228 => "\xa3", 0x00002229 => "\xa4", 0x0000222a => "\xa5", 0x0000222b => "\xb0", 0x0000222e => "\xb1", 0x00002234 => "\xaa", 0x00002235 => "\xab", 0x0000223c => "\xb5", 0x00002243 => "\xb7", 0x00002245 => "\xb8", 0x00002248 => "\xb6", 0x00002260 => "\xba", 0x00002261 => "\xa1", 0x00002264 => "\xb9", 0x00002265 => "\xbb", 0x00002282 => "\xa6", 0x00002283 => "\xa7", 0x00002286 => "\xae", 0x00002287 => "\xaf", 0x000022a5 => "\xc5", 0x00002329 => "\xc9", 0x0000232a => "\xca", 0x000025a1 => "\xc1", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IEC_P27_1 - Conversion routines for IEC_P27_1 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IEC_P27-1. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: ECMA registry alias ISO-IR-143 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000080 | PADDING CHARACTER (PAD) 81 | 00000081 | HIGH OCTET PRESET (HOP) 82 | 00000082 | BREAK PERMITTED HERE (BPH) 83 | 00000083 | NO BREAK HERE (NBH) 84 | 00000084 | INDEX (IND) 85 | 00000085 | NEXT LINE (NEL) 86 | 00000086 | START OF SELECTED AREA (SSA) 87 | 00000087 | END OF SELECTED AREA (ESA) 88 | 00000088 | CHARACTER TABULATION SET (HTS) 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 8A | 0000008A | LINE TABULATION SET (VTS) 8B | 0000008B | PARTIAL LINE FORWARD (PLD) 8C | 0000008C | PARTIAL LINE BACKWARD (PLU) 8D | 0000008D | REVERSE LINE FEED (RI) 8E | 0000008E | SINGLE-SHIFT TWO (SS2) 8F | 0000008F | SINGLE-SHIFT THREE (SS3) 90 | 00000090 | DEVICE CONTROL STRING (DCS) 91 | 00000091 | PRIVATE USE ONE (PU1) 92 | 00000092 | PRIVATE USE TWO (PU2) 93 | 00000093 | SET TRANSMIT STATE (STS) 94 | 00000094 | CANCEL CHARACTER (CCH) 95 | 00000095 | MESSAGE WAITING (MW) 96 | 00000096 | START OF GUARDED AREA (SPA) 97 | 00000097 | END OF GUARDED AREA (EPA) 98 | 00000098 | START OF STRING (SOS) 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 9C | 0000009C | STRING TERMINATOR (ST) 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC) 9E | 0000009E | PRIVACY MESSAGE (PM) 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC) A0 | 000002C7 | CARON (Mandarin Chinese third tone) A1 | 00002261 | IDENTICAL TO A2 | 00002227 | LOGICAL AND A3 | 00002228 | LOGICAL OR A4 | 00002229 | INTERSECTION A5 | 0000222A | UNION A6 | 00002282 | SUBSET OF A7 | 00002283 | SUPERSET OF A8 | 000021D0 | LEFTWARDS DOUBLE ARROW A9 | 000021D2 | RIGHTWARDS DOUBLE ARROW AA | 00002234 | THEREFORE AB | 00002235 | BECAUSE AC | 00002208 | ELEMENT OF AD | 0000220B | CONTAINS AS MEMBER AE | 00002286 | SUBSET OF OR EQUAL TO AF | 00002287 | SUPERSET OF OR EQUAL TO B0 | 0000222B | INTEGRAL B1 | 0000222E | CONTOUR INTEGRAL B2 | 0000221E | INFINITY B3 | 00002207 | NABLA B4 | 00002202 | PARTIAL DIFFERENTIAL B5 | 0000223C | TILDE OPERATOR B6 | 00002248 | ALMOST EQUAL TO B7 | 00002243 | ASYMPTOTICALLY EQUAL TO B8 | 00002245 | APPROXIMATELY EQUAL TO B9 | 00002264 | LESS-THAN OR EQUAL TO BA | 00002260 | NOT EQUAL TO BB | 00002265 | GREATER-THAN OR EQUAL TO BC | 00002194 | LEFT RIGHT ARROW BD | 000000AC | NOT SIGN BE | 00002200 | FOR ALL BF | 00002203 | THERE EXISTS C0 | 000005D0 | HEBREW LETTER ALEF C1 | 000025A1 | WHITE SQUARE C2 | 00002225 | PARALLEL TO C3 | 00000393 | GREEK CAPITAL LETTER GAMMA C4 | 00000394 | GREEK CAPITAL LETTER DELTA C5 | 000022A5 | UP TACK C6 | 00002220 | ANGLE C7 | 0000221F | RIGHT ANGLE C8 | 00000398 | GREEK CAPITAL LETTER THETA C9 | 00002329 | LEFT-POINTING ANGLE BRACKET CA | 0000232A | RIGHT-POINTING ANGLE BRACKET CB | 0000039B | GREEK CAPITAL LETTER LAMDA CC | 00002032 | PRIME CD | 00002033 | DOUBLE PRIME CE | 0000039E | GREEK CAPITAL LETTER XI CF | 00002213 | MINUS-OR-PLUS SIGN D0 | 000003A0 | GREEK CAPITAL LETTER PI D1 | 000000B2 | SUPERSCRIPT TWO D2 | 000003A3 | GREEK CAPITAL LETTER SIGMA D3 | 000000D7 | MULTIPLICATION SIGN D4 | 000000B3 | SUPERSCRIPT THREE D5 | 000003A5 | GREEK CAPITAL LETTER UPSILON D6 | 000003A6 | GREEK CAPITAL LETTER PHI D7 | 000000B7 | MIDDLE DOT D8 | 000003A8 | GREEK CAPITAL LETTER PSI D9 | 000003A9 | GREEK CAPITAL LETTER OMEGA DA | 00002205 | EMPTY SET DB | 000021C0 | RIGHTWARDS HARPOON WITH BARB UPWARDS DC | 0000221A | SQUARE ROOT DD | 00000192 | LATIN SMALL LETTER F WITH HOOK DE | 0000221D | PROPORTIONAL TO DF | 000000B1 | PLUS-MINUS SIGN E0 | 000000B0 | DEGREE SIGN E1 | 000003B1 | GREEK SMALL LETTER ALPHA E2 | 000003B2 | GREEK SMALL LETTER BETA E3 | 000003B3 | GREEK SMALL LETTER GAMMA E4 | 000003B4 | GREEK SMALL LETTER DELTA E5 | 000003B5 | GREEK SMALL LETTER EPSILON E6 | 000003B6 | GREEK SMALL LETTER ZETA E7 | 000003B7 | GREEK SMALL LETTER ETA E8 | 000003B8 | GREEK SMALL LETTER THETA E9 | 000003B9 | GREEK SMALL LETTER IOTA EA | 000003BA | GREEK SMALL LETTER KAPPA EB | 000003BB | GREEK SMALL LETTER LAMDA EC | 000003BC | GREEK SMALL LETTER MU ED | 000003BD | GREEK SMALL LETTER NU EE | 000003BE | GREEK SMALL LETTER XI EF | 00002030 | PER MILLE SIGN F0 | 000003C0 | GREEK SMALL LETTER PI F1 | 000003C1 | GREEK SMALL LETTER RHO F2 | 000003C3 | GREEK SMALL LETTER SIGMA F3 | 000000F7 | DIVISION SIGN F4 | 000003C4 | GREEK SMALL LETTER TAU F5 | 000003C5 | GREEK SMALL LETTER UPSILON F6 | 000003C6 | GREEK SMALL LETTER PHI F7 | 000003C7 | GREEK SMALL LETTER CHI F8 | 000003C8 | GREEK SMALL LETTER PSI F9 | 000003C9 | GREEK SMALL LETTER OMEGA FA | 00002020 | DAGGER FB | 00002190 | LEFTWARDS ARROW FC | 00002191 | UPWARDS ARROW FD | 00002192 | RIGHTWARDS ARROW FE | 00002193 | DOWNWARDS ARROW FF | 0000203E | OVERLINE =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]QiQiRecodeData/IBM905.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM905. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM905; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0xfffd, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0xfffd, 0x010b, 0x007b, 0x00f1, 0x00c7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x011e, 0x0130, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0xfffd, 0x010a, 0x005b, 0x00d1, 0x015f, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfffd, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0131, 0x003a, 0x00d6, 0x015e, 0x0027, 0x003d, 0x00dc, 0x02d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0127, 0x0109, 0x015d, 0x016d, 0xfffd, 0x007c, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0125, 0x011d, 0x0135, 0x02db, 0xfffd, 0x00a4, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0126, 0x0108, 0x015c, 0x016c, 0xfffd, 0x0040, 0x00b7, 0x00a3, 0x017c, 0x007d, 0x017b, 0x00a7, 0x005d, 0xfffd, 0x00bd, 0x0024, 0x0124, 0x011c, 0x0134, 0x00a8, 0x00b4, 0x00d7, 0x00e7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x0121, 0x011f, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0060, 0x00fb, 0x005c, 0x00f9, 0x00fa, 0xfffd, 0x00fc, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0023, 0x00d2, 0x00d3, 0x0120, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x0022, 0x00d9, 0x00da, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xef\xbf\xbd", "\xc3\xa2", "\xc3\xa4", "\xc3\xa0", "\xc3\xa1", "\xef\xbf\xbd", "\xc4\x8b", "\x7b", "\xc3\xb1", "\xc3\x87", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xa8", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc3\xac", "\xc3\x9f", "\xc4\x9e", "\xc4\xb0", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xc3\x82", "\xc3\x84", "\xc3\x80", "\xc3\x81", "\xef\xbf\xbd", "\xc4\x8a", "\x5b", "\xc3\x91", "\xc5\x9f", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x88", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x8c", "\xc4\xb1", "\x3a", "\xc3\x96", "\xc5\x9e", "\x27", "\x3d", "\xc3\x9c", "\xcb\x98", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xc4\xa7", "\xc4\x89", "\xc5\x9d", "\xc5\xad", "\xef\xbf\xbd", "\x7c", "\xc2\xb0", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xc4\xa5", "\xc4\x9d", "\xc4\xb5", "\xcb\x9b", "\xef\xbf\xbd", "\xc2\xa4", "\xc2\xb5", "\xc3\xb6", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xc4\xa6", "\xc4\x88", "\xc5\x9c", "\xc5\xac", "\xef\xbf\xbd", "\x40", "\xc2\xb7", "\xc2\xa3", "\xc5\xbc", "\x7d", "\xc5\xbb", "\xc2\xa7", "\x5d", "\xef\xbf\xbd", "\xc2\xbd", "\x24", "\xc4\xa4", "\xc4\x9c", "\xc4\xb4", "\xc2\xa8", "\xc2\xb4", "\xc3\x97", "\xc3\xa7", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xc2\xad", "\xc3\xb4", "\x7e", "\xc3\xb2", "\xc3\xb3", "\xc4\xa1", "\xc4\x9f", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x60", "\xc3\xbb", "\x5c", "\xc3\xb9", "\xc3\xba", "\xef\xbf\xbd", "\xc3\xbc", "\xc3\xb7", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xc2\xb2", "\xc3\x94", "\x23", "\xc3\x92", "\xc3\x93", "\xc4\xa0", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xc2\xb3", "\xc3\x9b", "\x22", "\xc3\x99", "\xc3\x9a", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\xfc", 0x00000023 => "\xec", 0x00000024 => "\xb9", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\xaf", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\x68", 0x0000005c => "\xdc", 0x0000005d => "\xb6", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000060 => "\xda", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\x48", 0x0000007c => "\x8f", 0x0000007d => "\xb3", 0x0000007e => "\xcc", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a3 => "\xb1", 0x000000a4 => "\x9f", 0x000000a7 => "\xb5", 0x000000a8 => "\xbd", 0x000000ad => "\xca", 0x000000b0 => "\x90", 0x000000b2 => "\xea", 0x000000b3 => "\xfa", 0x000000b4 => "\xbe", 0x000000b5 => "\xa0", 0x000000b7 => "\xb0", 0x000000bd => "\xb8", 0x000000c0 => "\x64", 0x000000c1 => "\x65", 0x000000c2 => "\x62", 0x000000c4 => "\x63", 0x000000c7 => "\x4a", 0x000000c8 => "\x74", 0x000000c9 => "\x71", 0x000000ca => "\x72", 0x000000cb => "\x73", 0x000000cc => "\x78", 0x000000cd => "\x75", 0x000000ce => "\x76", 0x000000cf => "\x77", 0x000000d1 => "\x69", 0x000000d2 => "\xed", 0x000000d3 => "\xee", 0x000000d4 => "\xeb", 0x000000d6 => "\x7b", 0x000000d7 => "\xbf", 0x000000d9 => "\xfd", 0x000000da => "\xfe", 0x000000db => "\xfb", 0x000000dc => "\x7f", 0x000000df => "\x59", 0x000000e0 => "\x44", 0x000000e1 => "\x45", 0x000000e2 => "\x42", 0x000000e4 => "\x43", 0x000000e7 => "\xc0", 0x000000e8 => "\x54", 0x000000e9 => "\x51", 0x000000ea => "\x52", 0x000000eb => "\x53", 0x000000ec => "\x58", 0x000000ed => "\x55", 0x000000ee => "\x56", 0x000000ef => "\x57", 0x000000f1 => "\x49", 0x000000f2 => "\xcd", 0x000000f3 => "\xce", 0x000000f4 => "\xcb", 0x000000f6 => "\xa1", 0x000000f7 => "\xe1", 0x000000f9 => "\xdd", 0x000000fa => "\xde", 0x000000fb => "\xdb", 0x000000fc => "\xe0", 0x00000108 => "\xab", 0x00000109 => "\x8b", 0x0000010a => "\x67", 0x0000010b => "\x47", 0x0000011c => "\xbb", 0x0000011d => "\x9b", 0x0000011e => "\x5a", 0x0000011f => "\xd0", 0x00000120 => "\xef", 0x00000121 => "\xcf", 0x00000124 => "\xba", 0x00000125 => "\x9a", 0x00000126 => "\xaa", 0x00000127 => "\x8a", 0x00000130 => "\x5b", 0x00000131 => "\x79", 0x00000134 => "\xbc", 0x00000135 => "\x9c", 0x0000015c => "\xac", 0x0000015d => "\x8c", 0x0000015e => "\x7c", 0x0000015f => "\x6a", 0x0000016c => "\xad", 0x0000016d => "\x8d", 0x0000017b => "\xb4", 0x0000017c => "\xb2", 0x000002d8 => "\x80", 0x000002db => "\x9d", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM905 - Conversion routines for IBM905 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM905. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990 alias CP905 alias EBCDIC-CP-TR Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 47 | 0000010B | LATIN SMALL LETTER C WITH DOT ABOVE 48 | 0000007B | LEFT CURLY BRACKET 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE 4A | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE 59 | 000000DF | LATIN SMALL LETTER SHARP S (German) 5A | 0000011E | LATIN CAPITAL LETTER G WITH BREVE 5B | 00000130 | LATIN CAPITAL LETTER I WITH DOT ABOVE 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE 67 | 0000010A | LATIN CAPITAL LETTER C WITH DOT ABOVE 68 | 0000005B | LEFT SQUARE BRACKET 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 6A | 0000015F | LATIN SMALL LETTER S WITH CEDILLA 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE 79 | 00000131 | LATIN SMALL LETTER DOTLESS I 7A | 0000003A | COLON 7B | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 7C | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 80 | 000002D8 | BREVE 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 8A | 00000127 | LATIN SMALL LETTER H WITH STROKE 8B | 00000109 | LATIN SMALL LETTER C WITH CIRCUMFLEX 8C | 0000015D | LATIN SMALL LETTER S WITH CIRCUMFLEX 8D | 0000016D | LATIN SMALL LETTER U WITH BREVE 8F | 0000007C | VERTICAL LINE 90 | 000000B0 | DEGREE SIGN 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R 9A | 00000125 | LATIN SMALL LETTER H WITH CIRCUMFLEX 9B | 0000011D | LATIN SMALL LETTER G WITH CIRCUMFLEX 9C | 00000135 | LATIN SMALL LETTER J WITH CIRCUMFLEX 9D | 000002DB | OGONEK 9F | 000000A4 | CURRENCY SIGN A0 | 000000B5 | MICRO SIGN A1 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z AA | 00000126 | LATIN CAPITAL LETTER H WITH STROKE AB | 00000108 | LATIN CAPITAL LETTER C WITH CIRCUMFLEX AC | 0000015C | LATIN CAPITAL LETTER S WITH CIRCUMFLEX AD | 0000016C | LATIN CAPITAL LETTER U WITH BREVE AF | 00000040 | COMMERCIAL AT B0 | 000000B7 | MIDDLE DOT B1 | 000000A3 | POUND SIGN B2 | 0000017C | LATIN SMALL LETTER Z WITH DOT ABOVE B3 | 0000007D | RIGHT CURLY BRACKET B4 | 0000017B | LATIN CAPITAL LETTER Z WITH DOT ABOVE B5 | 000000A7 | SECTION SIGN B6 | 0000005D | RIGHT SQUARE BRACKET B8 | 000000BD | VULGAR FRACTION ONE HALF B9 | 00000024 | DOLLAR SIGN BA | 00000124 | LATIN CAPITAL LETTER H WITH CIRCUMFLEX BB | 0000011C | LATIN CAPITAL LETTER G WITH CIRCUMFLEX BC | 00000134 | LATIN CAPITAL LETTER J WITH CIRCUMFLEX BD | 000000A8 | DIAERESIS BE | 000000B4 | ACUTE ACCENT BF | 000000D7 | MULTIPLICATION SIGN C0 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I CA | 000000AD | SOFT HYPHEN CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX CC | 0000007E | TILDE CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE CF | 00000121 | LATIN SMALL LETTER G WITH DOT ABOVE D0 | 0000011F | LATIN SMALL LETTER G WITH BREVE D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R DA | 00000060 | GRAVE ACCENT DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX DC | 0000005C | REVERSE SOLIDUS DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE E0 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS E1 | 000000F7 | DIVISION SIGN E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z EA | 000000B2 | SUPERSCRIPT TWO EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX EC | 00000023 | NUMBER SIGN ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE EF | 00000120 | LATIN CAPITAL LETTER G WITH DOT ABOVE F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FA | 000000B3 | SUPERSCRIPT THREE FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX FC | 00000022 | QUOTATION MARK FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]Vk(H(HRecodeData/NATS_DANO.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for NATS-DANO. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::NATS_DANO; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x00ab, 0x00bb, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0xe018, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00c6, 0x00d8, 0x00c5, 0x25a0, 0x005f, 0xe019, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00e6, 0x00f8, 0x00e5, 0x2013, 0x007f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\xc2\xab", "\xc2\xbb", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\xee\x80\x98", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xc3\x86", "\xc3\x98", "\xc3\x85", "\xe2\x96\xa0", "\x5f", "\xee\x80\x99", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xc3\xa6", "\xc3\xb8", "\xc3\xa5", "\xe2\x80\x93", "\x7f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005f => "\x5f", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007f => "\x7f", 0x000000ab => "\x22", 0x000000bb => "\x23", 0x000000c5 => "\x5d", 0x000000c6 => "\x5b", 0x000000d8 => "\x5c", 0x000000e5 => "\x7d", 0x000000e6 => "\x7b", 0x000000f8 => "\x7c", 0x00002013 => "\x7e", 0x000025a0 => "\x5e", 0x0000e018 => "\x40", 0x0000e019 => "\x60", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::NATS_DANO - Conversion routines for NATS_DANO =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for NATS-DANO. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: ECMA registry alias ISO-IR-9-1 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 23 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 0000E018 | Unit space A EISO-IR-8-1_40E 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 000000C6 | LATIN CAPITAL LETTER AE 5C | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE 5D | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 5E | 000025A0 | BLACK SQUARE 5F | 0000005F | LOW LINE 60 | 0000E019 | Unit space B EISO-IR-8-1_60E 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 000000E6 | LATIN SMALL LETTER AE 7C | 000000F8 | LATIN SMALL LETTER O WITH STROKE 7D | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 7E | 00002013 | EN DASH 7F | 0000007F | DELETE (DEL) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK] llRecodeData/IBM861.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM861. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM861; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, 0x00ea, 0x00eb, 0x00e8, 0x00d0, 0x00f0, 0x00de, 0x00c4, 0x00c5, 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00fe, 0x00fb, 0x00dd, 0x00fd, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x20a7, 0x0192, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00c1, 0x00cd, 0x00d3, 0x00da, 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc3\x87", "\xc3\xbc", "\xc3\xa9", "\xc3\xa2", "\xc3\xa4", "\xc3\xa0", "\xc3\xa5", "\xc3\xa7", "\xc3\xaa", "\xc3\xab", "\xc3\xa8", "\xc3\x90", "\xc3\xb0", "\xc3\x9e", "\xc3\x84", "\xc3\x85", "\xc3\x89", "\xc3\xa6", "\xc3\x86", "\xc3\xb4", "\xc3\xb6", "\xc3\xbe", "\xc3\xbb", "\xc3\x9d", "\xc3\xbd", "\xc3\x96", "\xc3\x9c", "\xc3\xb8", "\xc2\xa3", "\xc3\x98", "\xe2\x82\xa7", "\xc6\x92", "\xc3\xa1", "\xc3\xad", "\xc3\xb3", "\xc3\xba", "\xc3\x81", "\xc3\x8d", "\xc3\x93", "\xc3\x9a", "\xc2\xbf", "\xe2\x8c\x90", "\xc2\xac", "\xc2\xbd", "\xc2\xbc", "\xc2\xa1", "\xc2\xab", "\xc2\xbb", "\xe2\x96\x91", "\xe2\x96\x92", "\xe2\x96\x93", "\xe2\x94\x82", "\xe2\x94\xa4", "\xe2\x95\xa1", "\xe2\x95\xa2", "\xe2\x95\x96", "\xe2\x95\x95", "\xe2\x95\xa3", "\xe2\x95\x91", "\xe2\x95\x97", "\xe2\x95\x9d", "\xe2\x95\x9c", "\xe2\x95\x9b", "\xe2\x94\x90", "\xe2\x94\x94", "\xe2\x94\xb4", "\xe2\x94\xac", "\xe2\x94\x9c", "\xe2\x94\x80", "\xe2\x94\xbc", "\xe2\x95\x9e", "\xe2\x95\x9f", "\xe2\x95\x9a", "\xe2\x95\x94", "\xe2\x95\xa9", "\xe2\x95\xa6", "\xe2\x95\xa0", "\xe2\x95\x90", "\xe2\x95\xac", "\xe2\x95\xa7", "\xe2\x95\xa8", "\xe2\x95\xa4", "\xe2\x95\xa5", "\xe2\x95\x99", "\xe2\x95\x98", "\xe2\x95\x92", "\xe2\x95\x93", "\xe2\x95\xab", "\xe2\x95\xaa", "\xe2\x94\x98", "\xe2\x94\x8c", "\xe2\x96\x88", "\xe2\x96\x84", "\xe2\x96\x8c", "\xe2\x96\x90", "\xe2\x96\x80", "\xce\xb1", "\xc3\x9f", "\xce\x93", "\xcf\x80", "\xce\xa3", "\xcf\x83", "\xc2\xb5", "\xcf\x84", "\xce\xa6", "\xce\x98", "\xce\xa9", "\xce\xb4", "\xe2\x88\x9e", "\xcf\x86", "\xce\xb5", "\xe2\x88\xa9", "\xe2\x89\xa1", "\xc2\xb1", "\xe2\x89\xa5", "\xe2\x89\xa4", "\xe2\x8c\xa0", "\xe2\x8c\xa1", "\xc3\xb7", "\xe2\x89\x88", "\xc2\xb0", "\xe2\x88\x99", "\xc2\xb7", "\xe2\x88\x9a", "\xe2\x81\xbf", "\xc2\xb2", "\xe2\x96\xa0", "\xc2\xa0", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xff", 0x000000a1 => "\xad", 0x000000a3 => "\x9c", 0x000000ab => "\xae", 0x000000ac => "\xaa", 0x000000b0 => "\xf8", 0x000000b1 => "\xf1", 0x000000b2 => "\xfd", 0x000000b5 => "\xe6", 0x000000b7 => "\xfa", 0x000000bb => "\xaf", 0x000000bc => "\xac", 0x000000bd => "\xab", 0x000000bf => "\xa8", 0x000000c1 => "\xa4", 0x000000c4 => "\x8e", 0x000000c5 => "\x8f", 0x000000c6 => "\x92", 0x000000c7 => "\x80", 0x000000c9 => "\x90", 0x000000cd => "\xa5", 0x000000d0 => "\x8b", 0x000000d3 => "\xa6", 0x000000d6 => "\x99", 0x000000d8 => "\x9d", 0x000000da => "\xa7", 0x000000dc => "\x9a", 0x000000dd => "\x97", 0x000000de => "\x8d", 0x000000df => "\xe1", 0x000000e0 => "\x85", 0x000000e1 => "\xa0", 0x000000e2 => "\x83", 0x000000e4 => "\x84", 0x000000e5 => "\x86", 0x000000e6 => "\x91", 0x000000e7 => "\x87", 0x000000e8 => "\x8a", 0x000000e9 => "\x82", 0x000000ea => "\x88", 0x000000eb => "\x89", 0x000000ed => "\xa1", 0x000000f0 => "\x8c", 0x000000f3 => "\xa2", 0x000000f4 => "\x93", 0x000000f6 => "\x94", 0x000000f7 => "\xf6", 0x000000f8 => "\x9b", 0x000000fa => "\xa3", 0x000000fb => "\x96", 0x000000fc => "\x81", 0x000000fd => "\x98", 0x000000fe => "\x95", 0x00000192 => "\x9f", 0x00000393 => "\xe2", 0x00000398 => "\xe9", 0x000003a3 => "\xe4", 0x000003a6 => "\xe8", 0x000003a9 => "\xea", 0x000003b1 => "\xe0", 0x000003b4 => "\xeb", 0x000003b5 => "\xee", 0x000003c0 => "\xe3", 0x000003c3 => "\xe5", 0x000003c4 => "\xe7", 0x000003c6 => "\xed", 0x0000207f => "\xfc", 0x000020a7 => "\x9e", 0x00002219 => "\xf9", 0x0000221a => "\xfb", 0x0000221e => "\xec", 0x00002229 => "\xef", 0x00002248 => "\xf7", 0x00002261 => "\xf0", 0x00002264 => "\xf3", 0x00002265 => "\xf2", 0x00002310 => "\xa9", 0x00002320 => "\xf4", 0x00002321 => "\xf5", 0x00002500 => "\xc4", 0x00002502 => "\xb3", 0x0000250c => "\xda", 0x00002510 => "\xbf", 0x00002514 => "\xc0", 0x00002518 => "\xd9", 0x0000251c => "\xc3", 0x00002524 => "\xb4", 0x0000252c => "\xc2", 0x00002534 => "\xc1", 0x0000253c => "\xc5", 0x00002550 => "\xcd", 0x00002551 => "\xba", 0x00002552 => "\xd5", 0x00002553 => "\xd6", 0x00002554 => "\xc9", 0x00002555 => "\xb8", 0x00002556 => "\xb7", 0x00002557 => "\xbb", 0x00002558 => "\xd4", 0x00002559 => "\xd3", 0x0000255a => "\xc8", 0x0000255b => "\xbe", 0x0000255c => "\xbd", 0x0000255d => "\xbc", 0x0000255e => "\xc6", 0x0000255f => "\xc7", 0x00002560 => "\xcc", 0x00002561 => "\xb5", 0x00002562 => "\xb6", 0x00002563 => "\xb9", 0x00002564 => "\xd1", 0x00002565 => "\xd2", 0x00002566 => "\xcb", 0x00002567 => "\xcf", 0x00002568 => "\xd0", 0x00002569 => "\xca", 0x0000256a => "\xd8", 0x0000256b => "\xd7", 0x0000256c => "\xce", 0x00002580 => "\xdf", 0x00002584 => "\xdc", 0x00002588 => "\xdb", 0x0000258c => "\xdd", 0x00002590 => "\xde", 0x00002591 => "\xb0", 0x00002592 => "\xb1", 0x00002593 => "\xb2", 0x000025a0 => "\xfe", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM861 - Conversion routines for IBM861 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM861. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP861 alias 861 alias CP-IS Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 84 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 86 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 8B | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic) 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic) 8D | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic) 8E | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 8F | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 90 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 91 | 000000E6 | LATIN SMALL LETTER AE 92 | 000000C6 | LATIN CAPITAL LETTER AE 93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX 94 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 95 | 000000FE | LATIN SMALL LETTER THORN (Icelandic) 96 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX 97 | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE 98 | 000000FD | LATIN SMALL LETTER Y WITH ACUTE 99 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 9B | 000000F8 | LATIN SMALL LETTER O WITH STROKE 9C | 000000A3 | POUND SIGN 9D | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE 9E | 000020A7 | PESETA SIGN 9F | 00000192 | LATIN SMALL LETTER F WITH HOOK A0 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE A1 | 000000ED | LATIN SMALL LETTER I WITH ACUTE A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE A4 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE A5 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE A6 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE A7 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE A8 | 000000BF | INVERTED QUESTION MARK A9 | 00002310 | REVERSED NOT SIGN AA | 000000AC | NOT SIGN AB | 000000BD | VULGAR FRACTION ONE HALF AC | 000000BC | VULGAR FRACTION ONE QUARTER AD | 000000A1 | INVERTED EXCLAMATION MARK AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK B0 | 00002591 | LIGHT SHADE B1 | 00002592 | MEDIUM SHADE B2 | 00002593 | DARK SHADE B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT B5 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE B6 | 00002562 | BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE B7 | 00002556 | BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE B8 | 00002555 | BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT BD | 0000255C | BOX DRAWINGS UP DOUBLE AND LEFT SINGLE BE | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL C6 | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE C7 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL CF | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE D0 | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE D1 | 00002564 | BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE D2 | 00002565 | BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE D3 | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE D4 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE D5 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE D6 | 00002553 | BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE D7 | 0000256B | BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE D8 | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT DB | 00002588 | FULL BLOCK DC | 00002584 | LOWER HALF BLOCK DD | 0000258C | LEFT HALF BLOCK DE | 00002590 | RIGHT HALF BLOCK DF | 00002580 | UPPER HALF BLOCK E0 | 000003B1 | GREEK SMALL LETTER ALPHA E1 | 000000DF | LATIN SMALL LETTER SHARP S (German) E2 | 00000393 | GREEK CAPITAL LETTER GAMMA E3 | 000003C0 | GREEK SMALL LETTER PI E4 | 000003A3 | GREEK CAPITAL LETTER SIGMA E5 | 000003C3 | GREEK SMALL LETTER SIGMA E6 | 000000B5 | MICRO SIGN E7 | 000003C4 | GREEK SMALL LETTER TAU E8 | 000003A6 | GREEK CAPITAL LETTER PHI E9 | 00000398 | GREEK CAPITAL LETTER THETA EA | 000003A9 | GREEK CAPITAL LETTER OMEGA EB | 000003B4 | GREEK SMALL LETTER DELTA EC | 0000221E | INFINITY ED | 000003C6 | GREEK SMALL LETTER PHI EE | 000003B5 | GREEK SMALL LETTER EPSILON EF | 00002229 | INTERSECTION F0 | 00002261 | IDENTICAL TO F1 | 000000B1 | PLUS-MINUS SIGN F2 | 00002265 | GREATER-THAN OR EQUAL TO F3 | 00002264 | LESS-THAN OR EQUAL TO F4 | 00002320 | TOP HALF INTEGRAL F5 | 00002321 | BOTTOM HALF INTEGRAL F6 | 000000F7 | DIVISION SIGN F7 | 00002248 | ALMOST EQUAL TO F8 | 000000B0 | DEGREE SIGN F9 | 00002219 | BULLET OPERATOR FA | 000000B7 | MIDDLE DOT FB | 0000221A | SQUARE ROOT FC | 0000207F | SUPERSCRIPT LATIN SMALL LETTER N FD | 000000B2 | SUPERSCRIPT TWO FE | 000025A0 | BLACK SQUARE FF | 000000A0 | NO-BREAK SPACE =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK] -!bqqRecodeData/VISCII.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for VISCII. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::VISCII; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x1eb2, 0x0003, 0x0004, 0x1eb4, 0x1eaa, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x1ef6, 0x0015, 0x0016, 0x0017, 0x0018, 0x1ef8, 0x001a, 0x001b, 0x001c, 0x001d, 0x1ef4, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x1ea0, 0x1eae, 0x1eb0, 0x1eb6, 0x1ea4, 0x1ea6, 0x1ea8, 0x1eac, 0x1ebc, 0x1eb8, 0x1ebe, 0x1ec0, 0x1ec2, 0x1ec4, 0x1ec6, 0x1ed0, 0x1ed2, 0x1ed4, 0x1ed6, 0x1ed8, 0x1ee2, 0x1eda, 0x1edc, 0x1ede, 0x1eca, 0x1ece, 0x1ecc, 0x1ec8, 0x1ee6, 0x0168, 0x1ee4, 0x1ef2, 0x00d5, 0x1eaf, 0x1eb1, 0x1eb7, 0x1ea5, 0x1ea7, 0x1ea9, 0x1ead, 0x1ebd, 0x1eb9, 0x1ebf, 0x1ec1, 0x1ec3, 0x1ec5, 0x1ec7, 0x1ed1, 0x1ed3, 0x1ed5, 0x1ed7, 0x1ee0, 0x01a0, 0x1ed9, 0x1edd, 0x1edf, 0x1ecb, 0x1ef0, 0x1ee8, 0x1eea, 0x1eec, 0x01a1, 0x1edb, 0x01af, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x1ea2, 0x0102, 0x1eb3, 0x1eb5, 0x00c8, 0x00c9, 0x00ca, 0x1eba, 0x00cc, 0x00cd, 0x0128, 0x1ef3, 0x0110, 0x1ee9, 0x00d2, 0x00d3, 0x00d4, 0x1ea1, 0x1ef7, 0x1eeb, 0x1eed, 0x00d9, 0x00da, 0x1ef9, 0x1ef5, 0x00dd, 0x1ee1, 0x01b0, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x1ea3, 0x0103, 0x1eef, 0x1eab, 0x00e8, 0x00e9, 0x00ea, 0x1ebb, 0x00ec, 0x00ed, 0x0129, 0x1ec9, 0x0111, 0x1ef1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x1ecf, 0x1ecd, 0x1ee5, 0x00f9, 0x00fa, 0x0169, 0x1ee7, 0x00fd, 0x1ee3, 0x1eee, ); my @to_utf8 = ( "\x00", "\x01", "\xe1\xba\xb2", "\x03", "\x04", "\xe1\xba\xb4", "\xe1\xba\xaa", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xe1\xbb\xb6", "\x15", "\x16", "\x17", "\x18", "\xe1\xbb\xb8", "\x1a", "\x1b", "\x1c", "\x1d", "\xe1\xbb\xb4", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xe1\xba\xa0", "\xe1\xba\xae", "\xe1\xba\xb0", "\xe1\xba\xb6", "\xe1\xba\xa4", "\xe1\xba\xa6", "\xe1\xba\xa8", "\xe1\xba\xac", "\xe1\xba\xbc", "\xe1\xba\xb8", "\xe1\xba\xbe", "\xe1\xbb\x80", "\xe1\xbb\x82", "\xe1\xbb\x84", "\xe1\xbb\x86", "\xe1\xbb\x90", "\xe1\xbb\x92", "\xe1\xbb\x94", "\xe1\xbb\x96", "\xe1\xbb\x98", "\xe1\xbb\xa2", "\xe1\xbb\x9a", "\xe1\xbb\x9c", "\xe1\xbb\x9e", "\xe1\xbb\x8a", "\xe1\xbb\x8e", "\xe1\xbb\x8c", "\xe1\xbb\x88", "\xe1\xbb\xa6", "\xc5\xa8", "\xe1\xbb\xa4", "\xe1\xbb\xb2", "\xc3\x95", "\xe1\xba\xaf", "\xe1\xba\xb1", "\xe1\xba\xb7", "\xe1\xba\xa5", "\xe1\xba\xa7", "\xe1\xba\xa9", "\xe1\xba\xad", "\xe1\xba\xbd", "\xe1\xba\xb9", "\xe1\xba\xbf", "\xe1\xbb\x81", "\xe1\xbb\x83", "\xe1\xbb\x85", "\xe1\xbb\x87", "\xe1\xbb\x91", "\xe1\xbb\x93", "\xe1\xbb\x95", "\xe1\xbb\x97", "\xe1\xbb\xa0", "\xc6\xa0", "\xe1\xbb\x99", "\xe1\xbb\x9d", "\xe1\xbb\x9f", "\xe1\xbb\x8b", "\xe1\xbb\xb0", "\xe1\xbb\xa8", "\xe1\xbb\xaa", "\xe1\xbb\xac", "\xc6\xa1", "\xe1\xbb\x9b", "\xc6\xaf", "\xc3\x80", "\xc3\x81", "\xc3\x82", "\xc3\x83", "\xe1\xba\xa2", "\xc4\x82", "\xe1\xba\xb3", "\xe1\xba\xb5", "\xc3\x88", "\xc3\x89", "\xc3\x8a", "\xe1\xba\xba", "\xc3\x8c", "\xc3\x8d", "\xc4\xa8", "\xe1\xbb\xb3", "\xc4\x90", "\xe1\xbb\xa9", "\xc3\x92", "\xc3\x93", "\xc3\x94", "\xe1\xba\xa1", "\xe1\xbb\xb7", "\xe1\xbb\xab", "\xe1\xbb\xad", "\xc3\x99", "\xc3\x9a", "\xe1\xbb\xb9", "\xe1\xbb\xb5", "\xc3\x9d", "\xe1\xbb\xa1", "\xc6\xb0", "\xc3\xa0", "\xc3\xa1", "\xc3\xa2", "\xc3\xa3", "\xe1\xba\xa3", "\xc4\x83", "\xe1\xbb\xaf", "\xe1\xba\xab", "\xc3\xa8", "\xc3\xa9", "\xc3\xaa", "\xe1\xba\xbb", "\xc3\xac", "\xc3\xad", "\xc4\xa9", "\xe1\xbb\x89", "\xc4\x91", "\xe1\xbb\xb1", "\xc3\xb2", "\xc3\xb3", "\xc3\xb4", "\xc3\xb5", "\xe1\xbb\x8f", "\xe1\xbb\x8d", "\xe1\xbb\xa5", "\xc3\xb9", "\xc3\xba", "\xc5\xa9", "\xe1\xbb\xa7", "\xc3\xbd", "\xe1\xbb\xa3", "\xe1\xbb\xae", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000c0 => "\xc0", 0x000000c1 => "\xc1", 0x000000c2 => "\xc2", 0x000000c3 => "\xc3", 0x000000c8 => "\xc8", 0x000000c9 => "\xc9", 0x000000ca => "\xca", 0x000000cc => "\xcc", 0x000000cd => "\xcd", 0x000000d2 => "\xd2", 0x000000d3 => "\xd3", 0x000000d4 => "\xd4", 0x000000d5 => "\xa0", 0x000000d9 => "\xd9", 0x000000da => "\xda", 0x000000dd => "\xdd", 0x000000e0 => "\xe0", 0x000000e1 => "\xe1", 0x000000e2 => "\xe2", 0x000000e3 => "\xe3", 0x000000e8 => "\xe8", 0x000000e9 => "\xe9", 0x000000ea => "\xea", 0x000000ec => "\xec", 0x000000ed => "\xed", 0x000000f2 => "\xf2", 0x000000f3 => "\xf3", 0x000000f4 => "\xf4", 0x000000f5 => "\xf5", 0x000000f9 => "\xf9", 0x000000fa => "\xfa", 0x000000fd => "\xfd", 0x00000102 => "\xc5", 0x00000103 => "\xe5", 0x00000110 => "\xd0", 0x00000111 => "\xf0", 0x00000128 => "\xce", 0x00000129 => "\xee", 0x00000168 => "\x9d", 0x00000169 => "\xfb", 0x000001a0 => "\xb4", 0x000001a1 => "\xbd", 0x000001af => "\xbf", 0x000001b0 => "\xdf", 0x00001ea0 => "\x80", 0x00001ea1 => "\xd5", 0x00001ea2 => "\xc4", 0x00001ea3 => "\xe4", 0x00001ea4 => "\x84", 0x00001ea5 => "\xa4", 0x00001ea6 => "\x85", 0x00001ea7 => "\xa5", 0x00001ea8 => "\x86", 0x00001ea9 => "\xa6", 0x00001eaa => "\x06", 0x00001eab => "\xe7", 0x00001eac => "\x87", 0x00001ead => "\xa7", 0x00001eae => "\x81", 0x00001eaf => "\xa1", 0x00001eb0 => "\x82", 0x00001eb1 => "\xa2", 0x00001eb2 => "\x02", 0x00001eb3 => "\xc6", 0x00001eb4 => "\x05", 0x00001eb5 => "\xc7", 0x00001eb6 => "\x83", 0x00001eb7 => "\xa3", 0x00001eb8 => "\x89", 0x00001eb9 => "\xa9", 0x00001eba => "\xcb", 0x00001ebb => "\xeb", 0x00001ebc => "\x88", 0x00001ebd => "\xa8", 0x00001ebe => "\x8a", 0x00001ebf => "\xaa", 0x00001ec0 => "\x8b", 0x00001ec1 => "\xab", 0x00001ec2 => "\x8c", 0x00001ec3 => "\xac", 0x00001ec4 => "\x8d", 0x00001ec5 => "\xad", 0x00001ec6 => "\x8e", 0x00001ec7 => "\xae", 0x00001ec8 => "\x9b", 0x00001ec9 => "\xef", 0x00001eca => "\x98", 0x00001ecb => "\xb8", 0x00001ecc => "\x9a", 0x00001ecd => "\xf7", 0x00001ece => "\x99", 0x00001ecf => "\xf6", 0x00001ed0 => "\x8f", 0x00001ed1 => "\xaf", 0x00001ed2 => "\x90", 0x00001ed3 => "\xb0", 0x00001ed4 => "\x91", 0x00001ed5 => "\xb1", 0x00001ed6 => "\x92", 0x00001ed7 => "\xb2", 0x00001ed8 => "\x93", 0x00001ed9 => "\xb5", 0x00001eda => "\x95", 0x00001edb => "\xbe", 0x00001edc => "\x96", 0x00001edd => "\xb6", 0x00001ede => "\x97", 0x00001edf => "\xb7", 0x00001ee0 => "\xb3", 0x00001ee1 => "\xde", 0x00001ee2 => "\x94", 0x00001ee3 => "\xfe", 0x00001ee4 => "\x9e", 0x00001ee5 => "\xf8", 0x00001ee6 => "\x9c", 0x00001ee7 => "\xfc", 0x00001ee8 => "\xba", 0x00001ee9 => "\xd1", 0x00001eea => "\xbb", 0x00001eeb => "\xd7", 0x00001eec => "\xbc", 0x00001eed => "\xd8", 0x00001eee => "\xff", 0x00001eef => "\xe6", 0x00001ef0 => "\xb9", 0x00001ef1 => "\xf1", 0x00001ef2 => "\x9f", 0x00001ef3 => "\xcf", 0x00001ef4 => "\x1e", 0x00001ef5 => "\xdc", 0x00001ef6 => "\x14", 0x00001ef7 => "\xd6", 0x00001ef8 => "\x19", 0x00001ef9 => "\xdb", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::VISCII - Conversion routines for VISCII =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for VISCII. =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00001EB2 | LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00001EB4 | LATIN CAPITAL LETTER A WITH BREVE AND TILDE 06 | 00001EAA | LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00001EF6 | LATIN CAPITAL LETTER Y WITH HOOK ABOVE 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00001EF8 | LATIN CAPITAL LETTER Y WITH TILDE 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 00001EF4 | LATIN CAPITAL LETTER Y WITH DOT BELOW 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00001EA0 | LATIN CAPITAL LETTER A WITH DOT BELOW 81 | 00001EAE | LATIN CAPITAL LETTER A WITH BREVE AND ACUTE 82 | 00001EB0 | LATIN CAPITAL LETTER A WITH BREVE AND GRAVE 83 | 00001EB6 | LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW 84 | 00001EA4 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE 85 | 00001EA6 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE 86 | 00001EA8 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE 87 | 00001EAC | LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW 88 | 00001EBC | LATIN CAPITAL LETTER E WITH TILDE 89 | 00001EB8 | LATIN CAPITAL LETTER E WITH DOT BELOW 8A | 00001EBE | LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE 8B | 00001EC0 | LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE 8C | 00001EC2 | LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE 8D | 00001EC4 | LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE 8E | 00001EC6 | LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW 8F | 00001ED0 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE 90 | 00001ED2 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE 91 | 00001ED4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE 92 | 00001ED6 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE 93 | 00001ED8 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW 94 | 00001EE2 | LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW 95 | 00001EDA | LATIN CAPITAL LETTER O WITH HORN AND ACUTE 96 | 00001EDC | LATIN CAPITAL LETTER O WITH HORN AND GRAVE 97 | 00001EDE | LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE 98 | 00001ECA | LATIN CAPITAL LETTER I WITH DOT BELOW 99 | 00001ECE | LATIN CAPITAL LETTER O WITH HOOK ABOVE 9A | 00001ECC | LATIN CAPITAL LETTER O WITH DOT BELOW 9B | 00001EC8 | LATIN CAPITAL LETTER I WITH HOOK ABOVE 9C | 00001EE6 | LATIN CAPITAL LETTER U WITH HOOK ABOVE 9D | 00000168 | LATIN CAPITAL LETTER U WITH TILDE 9E | 00001EE4 | LATIN CAPITAL LETTER U WITH DOT BELOW 9F | 00001EF2 | LATIN CAPITAL LETTER Y WITH GRAVE A0 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE A1 | 00001EAF | LATIN SMALL LETTER A WITH BREVE AND ACUTE A2 | 00001EB1 | LATIN SMALL LETTER A WITH BREVE AND GRAVE A3 | 00001EB7 | LATIN SMALL LETTER A WITH BREVE AND DOT BELOW A4 | 00001EA5 | LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE A5 | 00001EA7 | LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE A6 | 00001EA9 | LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE A7 | 00001EAD | LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW A8 | 00001EBD | LATIN SMALL LETTER E WITH TILDE A9 | 00001EB9 | LATIN SMALL LETTER E WITH DOT BELOW AA | 00001EBF | LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE AB | 00001EC1 | LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE AC | 00001EC3 | LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE AD | 00001EC5 | LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE AE | 00001EC7 | LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW AF | 00001ED1 | LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE B0 | 00001ED3 | LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE B1 | 00001ED5 | LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE B2 | 00001ED7 | LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE B3 | 00001EE0 | LATIN CAPITAL LETTER O WITH HORN AND TILDE B4 | 000001A0 | LATIN CAPITAL LETTER O WITH HORN B5 | 00001ED9 | LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW B6 | 00001EDD | LATIN SMALL LETTER O WITH HORN AND GRAVE B7 | 00001EDF | LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE B8 | 00001ECB | LATIN SMALL LETTER I WITH DOT BELOW B9 | 00001EF0 | LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW BA | 00001EE8 | LATIN CAPITAL LETTER U WITH HORN AND ACUTE BB | 00001EEA | LATIN CAPITAL LETTER U WITH HORN AND GRAVE BC | 00001EEC | LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE BD | 000001A1 | LATIN SMALL LETTER O WITH HORN BE | 00001EDB | LATIN SMALL LETTER O WITH HORN AND ACUTE BF | 000001AF | LATIN CAPITAL LETTER U WITH HORN C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE C4 | 00001EA2 | LATIN CAPITAL LETTER A WITH HOOK ABOVE C5 | 00000102 | LATIN CAPITAL LETTER A WITH BREVE C6 | 00001EB3 | LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE C7 | 00001EB5 | LATIN SMALL LETTER A WITH BREVE AND TILDE C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX CB | 00001EBA | LATIN CAPITAL LETTER E WITH HOOK ABOVE CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE CE | 00000128 | LATIN CAPITAL LETTER I WITH TILDE CF | 00001EF3 | LATIN SMALL LETTER Y WITH GRAVE D0 | 00000110 | LATIN CAPITAL LETTER D WITH STROKE D1 | 00001EE9 | LATIN SMALL LETTER U WITH HORN AND ACUTE D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX D5 | 00001EA1 | LATIN SMALL LETTER A WITH DOT BELOW D6 | 00001EF7 | LATIN SMALL LETTER Y WITH HOOK ABOVE D7 | 00001EEB | LATIN SMALL LETTER U WITH HORN AND GRAVE D8 | 00001EED | LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE DB | 00001EF9 | LATIN SMALL LETTER Y WITH TILDE DC | 00001EF5 | LATIN SMALL LETTER Y WITH DOT BELOW DD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE DE | 00001EE1 | LATIN SMALL LETTER O WITH HORN AND TILDE DF | 000001B0 | LATIN SMALL LETTER U WITH HORN E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE E4 | 00001EA3 | LATIN SMALL LETTER A WITH HOOK ABOVE E5 | 00000103 | LATIN SMALL LETTER A WITH BREVE E6 | 00001EEF | LATIN SMALL LETTER U WITH HORN AND TILDE E7 | 00001EAB | LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX EB | 00001EBB | LATIN SMALL LETTER E WITH HOOK ABOVE EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE EE | 00000129 | LATIN SMALL LETTER I WITH TILDE EF | 00001EC9 | LATIN SMALL LETTER I WITH HOOK ABOVE F0 | 00000111 | LATIN SMALL LETTER D WITH STROKE F1 | 00001EF1 | LATIN SMALL LETTER U WITH HORN AND DOT BELOW F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE F6 | 00001ECF | LATIN SMALL LETTER O WITH HOOK ABOVE F7 | 00001ECD | LATIN SMALL LETTER O WITH DOT BELOW F8 | 00001EE5 | LATIN SMALL LETTER U WITH DOT BELOW F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE FB | 00000169 | LATIN SMALL LETTER U WITH TILDE FC | 00001EE7 | LATIN SMALL LETTER U WITH HOOK ABOVE FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE FE | 00001EE3 | LATIN SMALL LETTER O WITH HORN AND DOT BELOW FF | 00001EEE | LATIN CAPITAL LETTER U WITH HORN AND TILDE =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]PPRecodeData/EBCDIC_AT_DE.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for EBCDIC-AT-DE. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::EBCDIC_AT_DE; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00c4, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00dc, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0060, 0x003a, 0x0023, 0x00a7, 0x0027, 0x003d, 0x0022, 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00df, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00fc, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00d6, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\x84", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\x9c", "\x24", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xb6", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x60", "\x3a", "\x23", "\xc2\xa7", "\x27", "\x3d", "\x22", "\xef\xbf\xbd", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\x9f", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa4", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xbc", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\x96", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000023 => "\x7b", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a7 => "\x7c", 0x000000c4 => "\x4a", 0x000000d6 => "\xe0", 0x000000dc => "\x5a", 0x000000df => "\xa1", 0x000000e4 => "\xc0", 0x000000f6 => "\x6a", 0x000000fc => "\xd0", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::EBCDIC_AT_DE - Conversion routines for EBCDIC_AT_DE =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for EBCDIC-AT-DE. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 4A | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 5A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 6A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 00000023 | NUMBER SIGN 7C | 000000A7 | SECTION SIGN 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R A1 | 000000DF | LATIN SMALL LETTER SHARP S (German) A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z C0 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I D0 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R E0 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]o+ddRecodeData/IBM868.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM868. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM868; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, 0x0668, 0x0669, 0x060c, 0x061b, 0x061f, 0x0622, 0x0627, 0xfe8e, 0xe016, 0x0628, 0xfe91, 0x067e, 0xfffd, 0x0629, 0x062a, 0xfe97, 0xfffd, 0xfffd, 0x062b, 0xfe9b, 0x062c, 0xfe9f, 0xfffd, 0xfffd, 0x062d, 0xfea3, 0x062e, 0xfea7, 0x062f, 0xfffd, 0x0630, 0x0631, 0xfffd, 0x0632, 0xfffd, 0x0633, 0xfeb3, 0x0634, 0x00ab, 0x00bb, 0xfeb7, 0x0635, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0xfebb, 0x0636, 0xfebf, 0x0637, 0x2563, 0x2551, 0x2557, 0x255d, 0x0638, 0x0639, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0xfeca, 0xfecb, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0xfecc, 0x063a, 0xfece, 0xfecf, 0xfed0, 0x0641, 0xfed3, 0x0642, 0xfed7, 0xfeda, 0x2518, 0x250c, 0x2588, 0x2580, 0xfedb, 0xfffd, 0x2584, 0xfffd, 0x0644, 0xfede, 0xfee0, 0x0645, 0xfee3, 0xfffd, 0x0646, 0xfee7, 0xfffd, 0x0648, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0621, 0x00ad, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0651, 0xfe7d, 0xfffd, 0x25a0, 0x00a0, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xd9\xa0", "\xd9\xa1", "\xd9\xa2", "\xd9\xa3", "\xd9\xa4", "\xd9\xa5", "\xd9\xa6", "\xd9\xa7", "\xd9\xa8", "\xd9\xa9", "\xd8\x8c", "\xd8\x9b", "\xd8\x9f", "\xd8\xa2", "\xd8\xa7", "\xef\xba\x8e", "\xee\x80\x96", "\xd8\xa8", "\xef\xba\x91", "\xd9\xbe", "\xef\xbf\xbd", "\xd8\xa9", "\xd8\xaa", "\xef\xba\x97", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd8\xab", "\xef\xba\x9b", "\xd8\xac", "\xef\xba\x9f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd8\xad", "\xef\xba\xa3", "\xd8\xae", "\xef\xba\xa7", "\xd8\xaf", "\xef\xbf\xbd", "\xd8\xb0", "\xd8\xb1", "\xef\xbf\xbd", "\xd8\xb2", "\xef\xbf\xbd", "\xd8\xb3", "\xef\xba\xb3", "\xd8\xb4", "\xc2\xab", "\xc2\xbb", "\xef\xba\xb7", "\xd8\xb5", "\xe2\x96\x91", "\xe2\x96\x92", "\xe2\x96\x93", "\xe2\x94\x82", "\xe2\x94\xa4", "\xef\xba\xbb", "\xd8\xb6", "\xef\xba\xbf", "\xd8\xb7", "\xe2\x95\xa3", "\xe2\x95\x91", "\xe2\x95\x97", "\xe2\x95\x9d", "\xd8\xb8", "\xd8\xb9", "\xe2\x94\x90", "\xe2\x94\x94", "\xe2\x94\xb4", "\xe2\x94\xac", "\xe2\x94\x9c", "\xe2\x94\x80", "\xe2\x94\xbc", "\xef\xbb\x8a", "\xef\xbb\x8b", "\xe2\x95\x9a", "\xe2\x95\x94", "\xe2\x95\xa9", "\xe2\x95\xa6", "\xe2\x95\xa0", "\xe2\x95\x90", "\xe2\x95\xac", "\xef\xbb\x8c", "\xd8\xba", "\xef\xbb\x8e", "\xef\xbb\x8f", "\xef\xbb\x90", "\xd9\x81", "\xef\xbb\x93", "\xd9\x82", "\xef\xbb\x97", "\xef\xbb\x9a", "\xe2\x94\x98", "\xe2\x94\x8c", "\xe2\x96\x88", "\xe2\x96\x80", "\xef\xbb\x9b", "\xef\xbf\xbd", "\xe2\x96\x84", "\xef\xbf\xbd", "\xd9\x84", "\xef\xbb\x9e", "\xef\xbb\xa0", "\xd9\x85", "\xef\xbb\xa3", "\xef\xbf\xbd", "\xd9\x86", "\xef\xbb\xa7", "\xef\xbf\xbd", "\xd9\x88", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd8\xa1", "\xc2\xad", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd9\x91", "\xef\xb9\xbd", "\xef\xbf\xbd", "\xe2\x96\xa0", "\xc2\xa0", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xff", 0x000000ab => "\xae", 0x000000ad => "\xf2", 0x000000bb => "\xaf", 0x0000060c => "\x8a", 0x0000061b => "\x8b", 0x0000061f => "\x8c", 0x00000621 => "\xf1", 0x00000622 => "\x8d", 0x00000627 => "\x8e", 0x00000628 => "\x91", 0x00000629 => "\x95", 0x0000062a => "\x96", 0x0000062b => "\x9a", 0x0000062c => "\x9c", 0x0000062d => "\xa0", 0x0000062e => "\xa2", 0x0000062f => "\xa4", 0x00000630 => "\xa6", 0x00000631 => "\xa7", 0x00000632 => "\xa9", 0x00000633 => "\xab", 0x00000634 => "\xad", 0x00000635 => "\xb1", 0x00000636 => "\xb8", 0x00000637 => "\xba", 0x00000638 => "\xbf", 0x00000639 => "\xc0", 0x0000063a => "\xd2", 0x00000641 => "\xd6", 0x00000642 => "\xd8", 0x00000644 => "\xe3", 0x00000645 => "\xe6", 0x00000646 => "\xe9", 0x00000648 => "\xec", 0x00000651 => "\xfb", 0x00000660 => "\x80", 0x00000661 => "\x81", 0x00000662 => "\x82", 0x00000663 => "\x83", 0x00000664 => "\x84", 0x00000665 => "\x85", 0x00000666 => "\x86", 0x00000667 => "\x87", 0x00000668 => "\x88", 0x00000669 => "\x89", 0x0000067e => "\x93", 0x00002500 => "\xc6", 0x00002502 => "\xb5", 0x0000250c => "\xdc", 0x00002510 => "\xc1", 0x00002514 => "\xc2", 0x00002518 => "\xdb", 0x0000251c => "\xc5", 0x00002524 => "\xb6", 0x0000252c => "\xc4", 0x00002534 => "\xc3", 0x0000253c => "\xc7", 0x00002550 => "\xcf", 0x00002551 => "\xbc", 0x00002554 => "\xcb", 0x00002557 => "\xbd", 0x0000255a => "\xca", 0x0000255d => "\xbe", 0x00002560 => "\xce", 0x00002563 => "\xbb", 0x00002566 => "\xcd", 0x00002569 => "\xcc", 0x0000256c => "\xd0", 0x00002580 => "\xde", 0x00002584 => "\xe1", 0x00002588 => "\xdd", 0x00002591 => "\xb2", 0x00002592 => "\xb3", 0x00002593 => "\xb4", 0x000025a0 => "\xfe", 0x0000e016 => "\x90", 0x0000fe7d => "\xfc", 0x0000fe8e => "\x8f", 0x0000fe91 => "\x92", 0x0000fe97 => "\x97", 0x0000fe9b => "\x9b", 0x0000fe9f => "\x9d", 0x0000fea3 => "\xa1", 0x0000fea7 => "\xa3", 0x0000feb3 => "\xac", 0x0000feb7 => "\xb0", 0x0000febb => "\xb7", 0x0000febf => "\xb9", 0x0000feca => "\xc8", 0x0000fecb => "\xc9", 0x0000fecc => "\xd1", 0x0000fece => "\xd3", 0x0000fecf => "\xd4", 0x0000fed0 => "\xd5", 0x0000fed3 => "\xd7", 0x0000fed7 => "\xd9", 0x0000feda => "\xda", 0x0000fedb => "\xdf", 0x0000fede => "\xe4", 0x0000fee0 => "\xe5", 0x0000fee3 => "\xe7", 0x0000fee7 => "\xea", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x8c"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM868 - Conversion routines for IBM868 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM868. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP868 alias CP-AR Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000660 | ARABIC-INDIC DIGIT ZERO 81 | 00000661 | ARABIC-INDIC DIGIT ONE 82 | 00000662 | ARABIC-INDIC DIGIT TWO 83 | 00000663 | ARABIC-INDIC DIGIT THREE 84 | 00000664 | ARABIC-INDIC DIGIT FOUR 85 | 00000665 | ARABIC-INDIC DIGIT FIVE 86 | 00000666 | ARABIC-INDIC DIGIT SIX 87 | 00000667 | ARABIC-INDIC DIGIT SEVEN 88 | 00000668 | ARABIC-INDIC DIGIT EIGHT 89 | 00000669 | ARABIC-INDIC DIGIT NINE 8A | 0000060C | ARABIC COMMA 8B | 0000061B | ARABIC SEMICOLON 8C | 0000061F | ARABIC QUESTION MARK 8D | 00000622 | ARABIC LETTER ALEF WITH MADDA ABOVE 8E | 00000627 | ARABIC LETTER ALEF 8F | 0000FE8E | ARABIC LETTER ALEF FINAL FORM 90 | 0000E016 | ARABIC LETTER ALEF FINAL FORM COMPATIBILITY EIBM868_90E 91 | 00000628 | ARABIC LETTER BEH 92 | 0000FE91 | ARABIC LETTER BEH INITIAL FORM 93 | 0000067E | ARABIC LETTER PEH 95 | 00000629 | ARABIC LETTER TEH MARBUTA 96 | 0000062A | ARABIC LETTER TEH 97 | 0000FE97 | ARABIC LETTER TEH INITIAL FORM 9A | 0000062B | ARABIC LETTER THEH 9B | 0000FE9B | ARABIC LETTER THEH INITIAL FORM 9C | 0000062C | ARABIC LETTER JEEM 9D | 0000FE9F | ARABIC LETTER JEEM INITIAL FORM A0 | 0000062D | ARABIC LETTER HAH A1 | 0000FEA3 | ARABIC LETTER HAH INITIAL FORM A2 | 0000062E | ARABIC LETTER KHAH A3 | 0000FEA7 | ARABIC LETTER KHAH INITIAL FORM A4 | 0000062F | ARABIC LETTER DAL A6 | 00000630 | ARABIC LETTER THAL A7 | 00000631 | ARABIC LETTER REH A9 | 00000632 | ARABIC LETTER ZAIN AB | 00000633 | ARABIC LETTER SEEN AC | 0000FEB3 | ARABIC LETTER SEEN INITIAL FORM AD | 00000634 | ARABIC LETTER SHEEN AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK B0 | 0000FEB7 | ARABIC LETTER SHEEN INITIAL FORM B1 | 00000635 | ARABIC LETTER SAD B2 | 00002591 | LIGHT SHADE B3 | 00002592 | MEDIUM SHADE B4 | 00002593 | DARK SHADE B5 | 00002502 | BOX DRAWINGS LIGHT VERTICAL B6 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT B7 | 0000FEBB | ARABIC LETTER SAD INITIAL FORM B8 | 00000636 | ARABIC LETTER DAD B9 | 0000FEBF | ARABIC LETTER DAD INITIAL FORM BA | 00000637 | ARABIC LETTER TAH BB | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT BC | 00002551 | BOX DRAWINGS DOUBLE VERTICAL BD | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT BE | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT BF | 00000638 | ARABIC LETTER ZAH C0 | 00000639 | ARABIC LETTER AIN C1 | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT C2 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT C3 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL C4 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL C5 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT C6 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL C7 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL C8 | 0000FECA | ARABIC LETTER AIN FINAL FORM C9 | 0000FECB | ARABIC LETTER AIN INITIAL FORM CA | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT CB | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT CC | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL CD | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL CE | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT CF | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL D0 | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL D1 | 0000FECC | ARABIC LETTER AIN MEDIAL FORM D2 | 0000063A | ARABIC LETTER GHAIN D3 | 0000FECE | ARABIC LETTER GHAIN FINAL FORM D4 | 0000FECF | ARABIC LETTER GHAIN INITIAL FORM D5 | 0000FED0 | ARABIC LETTER GHAIN MEDIAL FORM D6 | 00000641 | ARABIC LETTER FEH D7 | 0000FED3 | ARABIC LETTER FEH INITIAL FORM D8 | 00000642 | ARABIC LETTER QAF D9 | 0000FED7 | ARABIC LETTER QAF INITIAL FORM DA | 0000FEDA | ARABIC LETTER KAF FINAL FORM DB | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT DC | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT DD | 00002588 | FULL BLOCK DE | 00002580 | UPPER HALF BLOCK DF | 0000FEDB | ARABIC LETTER KAF INITIAL FORM E1 | 00002584 | LOWER HALF BLOCK E3 | 00000644 | ARABIC LETTER LAM E4 | 0000FEDE | ARABIC LETTER LAM FINAL FORM E5 | 0000FEE0 | ARABIC LETTER LAM MEDIAL FORM E6 | 00000645 | ARABIC LETTER MEEM E7 | 0000FEE3 | ARABIC LETTER MEEM INITIAL FORM E9 | 00000646 | ARABIC LETTER NOON EA | 0000FEE7 | ARABIC LETTER NOON INITIAL FORM EC | 00000648 | ARABIC LETTER WAW F1 | 00000621 | ARABIC LETTER HAMZA F2 | 000000AD | SOFT HYPHEN FB | 00000651 | ARABIC SHADDA FC | 0000FE7D | ARABIC SHADDA MEDIAL FORM FE | 000025A0 | BLACK SQUARE FF | 000000A0 | NO-BREAK SPACE =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]Sw"iiRecodeData/MACTURKISH.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for MACTURKISH. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::MACTURKISH; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, 0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, 0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x00c6, 0x00d8, 0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211, 0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x00e6, 0x00f8, 0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, 0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153, 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, 0x00ff, 0x0178, 0x011e, 0x011f, 0x0130, 0x0131, 0x015e, 0x015f, 0x2021, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4, 0xfffd, 0x00d2, 0x00da, 0x00db, 0x00d9, 0xfffd, 0x02c6, 0x02dc, 0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc3\x84", "\xc3\x85", "\xc3\x87", "\xc3\x89", "\xc3\x91", "\xc3\x96", "\xc3\x9c", "\xc3\xa1", "\xc3\xa0", "\xc3\xa2", "\xc3\xa4", "\xc3\xa3", "\xc3\xa5", "\xc3\xa7", "\xc3\xa9", "\xc3\xa8", "\xc3\xaa", "\xc3\xab", "\xc3\xad", "\xc3\xac", "\xc3\xae", "\xc3\xaf", "\xc3\xb1", "\xc3\xb3", "\xc3\xb2", "\xc3\xb4", "\xc3\xb6", "\xc3\xb5", "\xc3\xba", "\xc3\xb9", "\xc3\xbb", "\xc3\xbc", "\xe2\x80\xa0", "\xc2\xb0", "\xc2\xa2", "\xc2\xa3", "\xc2\xa7", "\xe2\x80\xa2", "\xc2\xb6", "\xc3\x9f", "\xc2\xae", "\xc2\xa9", "\xe2\x84\xa2", "\xc2\xb4", "\xc2\xa8", "\xe2\x89\xa0", "\xc3\x86", "\xc3\x98", "\xe2\x88\x9e", "\xc2\xb1", "\xe2\x89\xa4", "\xe2\x89\xa5", "\xc2\xa5", "\xc2\xb5", "\xe2\x88\x82", "\xe2\x88\x91", "\xe2\x88\x8f", "\xcf\x80", "\xe2\x88\xab", "\xc2\xaa", "\xc2\xba", "\xe2\x84\xa6", "\xc3\xa6", "\xc3\xb8", "\xc2\xbf", "\xc2\xa1", "\xc2\xac", "\xe2\x88\x9a", "\xc6\x92", "\xe2\x89\x88", "\xe2\x88\x86", "\xc2\xab", "\xc2\xbb", "\xe2\x80\xa6", "\xc2\xa0", "\xc3\x80", "\xc3\x83", "\xc3\x95", "\xc5\x92", "\xc5\x93", "\xe2\x80\x93", "\xe2\x80\x94", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x98", "\xe2\x80\x99", "\xc3\xb7", "\xe2\x97\x8a", "\xc3\xbf", "\xc5\xb8", "\xc4\x9e", "\xc4\x9f", "\xc4\xb0", "\xc4\xb1", "\xc5\x9e", "\xc5\x9f", "\xe2\x80\xa1", "\xc2\xb7", "\xe2\x80\x9a", "\xe2\x80\x9e", "\xe2\x80\xb0", "\xc3\x82", "\xc3\x8a", "\xc3\x81", "\xc3\x8b", "\xc3\x88", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x8c", "\xc3\x93", "\xc3\x94", "\xef\xbf\xbd", "\xc3\x92", "\xc3\x9a", "\xc3\x9b", "\xc3\x99", "\xef\xbf\xbd", "\xcb\x86", "\xcb\x9c", "\xc2\xaf", "\xcb\x98", "\xcb\x99", "\xcb\x9a", "\xc2\xb8", "\xcb\x9d", "\xcb\x9b", "\xcb\x87", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xca", 0x000000a1 => "\xc1", 0x000000a2 => "\xa2", 0x000000a3 => "\xa3", 0x000000a5 => "\xb4", 0x000000a7 => "\xa4", 0x000000a8 => "\xac", 0x000000a9 => "\xa9", 0x000000aa => "\xbb", 0x000000ab => "\xc7", 0x000000ac => "\xc2", 0x000000ae => "\xa8", 0x000000af => "\xf8", 0x000000b0 => "\xa1", 0x000000b1 => "\xb1", 0x000000b4 => "\xab", 0x000000b5 => "\xb5", 0x000000b6 => "\xa6", 0x000000b7 => "\xe1", 0x000000b8 => "\xfc", 0x000000ba => "\xbc", 0x000000bb => "\xc8", 0x000000bf => "\xc0", 0x000000c0 => "\xcb", 0x000000c1 => "\xe7", 0x000000c2 => "\xe5", 0x000000c3 => "\xcc", 0x000000c4 => "\x80", 0x000000c5 => "\x81", 0x000000c6 => "\xae", 0x000000c7 => "\x82", 0x000000c8 => "\xe9", 0x000000c9 => "\x83", 0x000000ca => "\xe6", 0x000000cb => "\xe8", 0x000000cc => "\xed", 0x000000cd => "\xea", 0x000000ce => "\xeb", 0x000000cf => "\xec", 0x000000d1 => "\x84", 0x000000d2 => "\xf1", 0x000000d3 => "\xee", 0x000000d4 => "\xef", 0x000000d5 => "\xcd", 0x000000d6 => "\x85", 0x000000d8 => "\xaf", 0x000000d9 => "\xf4", 0x000000da => "\xf2", 0x000000db => "\xf3", 0x000000dc => "\x86", 0x000000df => "\xa7", 0x000000e0 => "\x88", 0x000000e1 => "\x87", 0x000000e2 => "\x89", 0x000000e3 => "\x8b", 0x000000e4 => "\x8a", 0x000000e5 => "\x8c", 0x000000e6 => "\xbe", 0x000000e7 => "\x8d", 0x000000e8 => "\x8f", 0x000000e9 => "\x8e", 0x000000ea => "\x90", 0x000000eb => "\x91", 0x000000ec => "\x93", 0x000000ed => "\x92", 0x000000ee => "\x94", 0x000000ef => "\x95", 0x000000f1 => "\x96", 0x000000f2 => "\x98", 0x000000f3 => "\x97", 0x000000f4 => "\x99", 0x000000f5 => "\x9b", 0x000000f6 => "\x9a", 0x000000f7 => "\xd6", 0x000000f8 => "\xbf", 0x000000f9 => "\x9d", 0x000000fa => "\x9c", 0x000000fb => "\x9e", 0x000000fc => "\x9f", 0x000000ff => "\xd8", 0x0000011e => "\xda", 0x0000011f => "\xdb", 0x00000130 => "\xdc", 0x00000131 => "\xdd", 0x00000152 => "\xce", 0x00000153 => "\xcf", 0x0000015e => "\xde", 0x0000015f => "\xdf", 0x00000178 => "\xd9", 0x00000192 => "\xc4", 0x000002c6 => "\xf6", 0x000002c7 => "\xff", 0x000002d8 => "\xf9", 0x000002d9 => "\xfa", 0x000002da => "\xfb", 0x000002db => "\xfe", 0x000002dc => "\xf7", 0x000002dd => "\xfd", 0x000003c0 => "\xb9", 0x00002013 => "\xd0", 0x00002014 => "\xd1", 0x00002018 => "\xd4", 0x00002019 => "\xd5", 0x0000201a => "\xe2", 0x0000201c => "\xd2", 0x0000201d => "\xd3", 0x0000201e => "\xe3", 0x00002020 => "\xa0", 0x00002021 => "\xe0", 0x00002022 => "\xa5", 0x00002026 => "\xc9", 0x00002030 => "\xe4", 0x00002122 => "\xaa", 0x00002126 => "\xbd", 0x00002202 => "\xb6", 0x00002206 => "\xc6", 0x0000220f => "\xb8", 0x00002211 => "\xb7", 0x0000221a => "\xc3", 0x0000221e => "\xb0", 0x0000222b => "\xba", 0x00002248 => "\xc5", 0x00002260 => "\xad", 0x00002264 => "\xb2", 0x00002265 => "\xb3", 0x000025ca => "\xd7", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::MACTURKISH - Conversion routines for MACTURKISH =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for MACTURKISH. =head1 COMMENTS The following comments have been extracted from the original charmap: This charmap has been generated automatically from GNU libiconv conversions. Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 81 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 82 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 83 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 84 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 85 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 86 | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 87 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 88 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 89 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 8A | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 8B | 000000E3 | LATIN SMALL LETTER A WITH TILDE 8C | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 8D | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 8E | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 8F | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 90 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 91 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 92 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 93 | 000000EC | LATIN SMALL LETTER I WITH GRAVE 94 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 95 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 96 | 000000F1 | LATIN SMALL LETTER N WITH TILDE 97 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE 98 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE 99 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX 9A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 9B | 000000F5 | LATIN SMALL LETTER O WITH TILDE 9C | 000000FA | LATIN SMALL LETTER U WITH ACUTE 9D | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 9E | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX 9F | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS A0 | 00002020 | DAGGER A1 | 000000B0 | DEGREE SIGN A2 | 000000A2 | CENT SIGN A3 | 000000A3 | POUND SIGN A4 | 000000A7 | SECTION SIGN A5 | 00002022 | BULLET A6 | 000000B6 | PILCROW SIGN A7 | 000000DF | LATIN SMALL LETTER SHARP S A8 | 000000AE | REGISTERED SIGN A9 | 000000A9 | COPYRIGHT SIGN AA | 00002122 | TRADE MARK SIGN AB | 000000B4 | ACUTE ACCENT AC | 000000A8 | DIAERESIS AD | 00002260 | NOT EQUAL TO AE | 000000C6 | LATIN CAPITAL LETTER AE AF | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE B0 | 0000221E | INFINITY B1 | 000000B1 | PLUS-MINUS SIGN B2 | 00002264 | LESS-THAN OR EQUAL TO B3 | 00002265 | GREATER-THAN OR EQUAL TO B4 | 000000A5 | YEN SIGN B5 | 000000B5 | MICRO SIGN B6 | 00002202 | PARTIAL DIFFERENTIAL B7 | 00002211 | N-ARY SUMMATION B8 | 0000220F | N-ARY PRODUCT B9 | 000003C0 | GREEK SMALL LETTER PI BA | 0000222B | INTEGRAL BB | 000000AA | FEMININE ORDINAL INDICATOR BC | 000000BA | MASCULINE ORDINAL INDICATOR BD | 00002126 | OHM SIGN BE | 000000E6 | LATIN SMALL LETTER AE BF | 000000F8 | LATIN SMALL LETTER O WITH STROKE C0 | 000000BF | INVERTED QUESTION MARK C1 | 000000A1 | INVERTED EXCLAMATION MARK C2 | 000000AC | NOT SIGN C3 | 0000221A | SQUARE ROOT C4 | 00000192 | LATIN SMALL LETTER F WITH HOOK C5 | 00002248 | ALMOST EQUAL TO C6 | 00002206 | INCREMENT C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK C8 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK C9 | 00002026 | HORIZONTAL ELLIPSIS CA | 000000A0 | NO-BREAK SPACE CB | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE CC | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE CD | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE CE | 00000152 | LATIN CAPITAL LIGATURE OE CF | 00000153 | LATIN SMALL LIGATURE OE D0 | 00002013 | EN DASH D1 | 00002014 | EM DASH D2 | 0000201C | LEFT DOUBLE QUOTATION MARK D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK D4 | 00002018 | LEFT SINGLE QUOTATION MARK D5 | 00002019 | RIGHT SINGLE QUOTATION MARK D6 | 000000F7 | DIVISION SIGN D7 | 000025CA | LOZENGE D8 | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS D9 | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS DA | 0000011E | LATIN CAPITAL LETTER G WITH BREVE DB | 0000011F | LATIN SMALL LETTER G WITH BREVE DC | 00000130 | LATIN CAPITAL LETTER I WITH DOT ABOVE DD | 00000131 | LATIN SMALL LETTER DOTLESS I DE | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA DF | 0000015F | LATIN SMALL LETTER S WITH CEDILLA E0 | 00002021 | DOUBLE DAGGER E1 | 000000B7 | MIDDLE DOT E2 | 0000201A | SINGLE LOW-9 QUOTATION MARK E3 | 0000201E | DOUBLE LOW-9 QUOTATION MARK E4 | 00002030 | PER MILLE SIGN E5 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX E6 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX E7 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE E8 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS E9 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE EA | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE EB | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX EC | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS ED | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE EF | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX F1 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE F2 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE F3 | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX F4 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE F6 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT F7 | 000002DC | SMALL TILDE F8 | 000000AF | MACRON F9 | 000002D8 | BREVE FA | 000002D9 | DOT ABOVE FB | 000002DA | RING ABOVE FC | 000000B8 | CEDILLA FD | 000002DD | DOUBLE ACUTE ACCENT FE | 000002DB | OGONEK FF | 000002C7 | CARON =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]zkkRecodeData/IBM037.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM037. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM037; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xc2\xa0", "\xc3\xa2", "\xc3\xa4", "\xc3\xa0", "\xc3\xa1", "\xc3\xa3", "\xc3\xa5", "\xc3\xa7", "\xc3\xb1", "\xc2\xa2", "\x2e", "\x3c", "\x28", "\x2b", "\x7c", "\x26", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xa8", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc3\xac", "\xc3\x9f", "\x21", "\x24", "\x2a", "\x29", "\x3b", "\xc2\xac", "\x2d", "\x2f", "\xc3\x82", "\xc3\x84", "\xc3\x80", "\xc3\x81", "\xc3\x83", "\xc3\x85", "\xc3\x87", "\xc3\x91", "\xc2\xa6", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xc3\xb8", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x88", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x8c", "\x60", "\x3a", "\x23", "\x40", "\x27", "\x3d", "\x22", "\xc3\x98", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xc2\xab", "\xc2\xbb", "\xc3\xb0", "\xc3\xbd", "\xc3\xbe", "\xc2\xb1", "\xc2\xb0", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xc2\xaa", "\xc2\xba", "\xc3\xa6", "\xc2\xb8", "\xc3\x86", "\xc2\xa4", "\xc2\xb5", "\x7e", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xc2\xa1", "\xc2\xbf", "\xc3\x90", "\xc3\x9d", "\xc3\x9e", "\xc2\xae", "\x5e", "\xc2\xa3", "\xc2\xa5", "\xc2\xb7", "\xc2\xa9", "\xc2\xa7", "\xc2\xb6", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\x5b", "\x5d", "\xc2\xaf", "\xc2\xa8", "\xc2\xb4", "\xc3\x97", "\x7b", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xc2\xad", "\xc3\xb4", "\xc3\xb6", "\xc3\xb2", "\xc3\xb3", "\xc3\xb5", "\x7d", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xc2\xb9", "\xc3\xbb", "\xc3\xbc", "\xc3\xb9", "\xc3\xba", "\xc3\xbf", "\x5c", "\xc3\xb7", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xc2\xb2", "\xc3\x94", "\xc3\x96", "\xc3\x92", "\xc3\x93", "\xc3\x95", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xc2\xb3", "\xc3\x9b", "\xc3\x9c", "\xc3\x99", "\xc3\x9a", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x5a", 0x00000022 => "\x7f", 0x00000023 => "\x7b", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\x7c", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\xba", 0x0000005c => "\xe0", 0x0000005d => "\xbb", 0x0000005e => "\xb0", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\xc0", 0x0000007c => "\x4f", 0x0000007d => "\xd0", 0x0000007e => "\xa1", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a0 => "\x41", 0x000000a1 => "\xaa", 0x000000a2 => "\x4a", 0x000000a3 => "\xb1", 0x000000a4 => "\x9f", 0x000000a5 => "\xb2", 0x000000a6 => "\x6a", 0x000000a7 => "\xb5", 0x000000a8 => "\xbd", 0x000000a9 => "\xb4", 0x000000aa => "\x9a", 0x000000ab => "\x8a", 0x000000ac => "\x5f", 0x000000ad => "\xca", 0x000000ae => "\xaf", 0x000000af => "\xbc", 0x000000b0 => "\x90", 0x000000b1 => "\x8f", 0x000000b2 => "\xea", 0x000000b3 => "\xfa", 0x000000b4 => "\xbe", 0x000000b5 => "\xa0", 0x000000b6 => "\xb6", 0x000000b7 => "\xb3", 0x000000b8 => "\x9d", 0x000000b9 => "\xda", 0x000000ba => "\x9b", 0x000000bb => "\x8b", 0x000000bc => "\xb7", 0x000000bd => "\xb8", 0x000000be => "\xb9", 0x000000bf => "\xab", 0x000000c0 => "\x64", 0x000000c1 => "\x65", 0x000000c2 => "\x62", 0x000000c3 => "\x66", 0x000000c4 => "\x63", 0x000000c5 => "\x67", 0x000000c6 => "\x9e", 0x000000c7 => "\x68", 0x000000c8 => "\x74", 0x000000c9 => "\x71", 0x000000ca => "\x72", 0x000000cb => "\x73", 0x000000cc => "\x78", 0x000000cd => "\x75", 0x000000ce => "\x76", 0x000000cf => "\x77", 0x000000d0 => "\xac", 0x000000d1 => "\x69", 0x000000d2 => "\xed", 0x000000d3 => "\xee", 0x000000d4 => "\xeb", 0x000000d5 => "\xef", 0x000000d6 => "\xec", 0x000000d7 => "\xbf", 0x000000d8 => "\x80", 0x000000d9 => "\xfd", 0x000000da => "\xfe", 0x000000db => "\xfb", 0x000000dc => "\xfc", 0x000000dd => "\xad", 0x000000de => "\xae", 0x000000df => "\x59", 0x000000e0 => "\x44", 0x000000e1 => "\x45", 0x000000e2 => "\x42", 0x000000e3 => "\x46", 0x000000e4 => "\x43", 0x000000e5 => "\x47", 0x000000e6 => "\x9c", 0x000000e7 => "\x48", 0x000000e8 => "\x54", 0x000000e9 => "\x51", 0x000000ea => "\x52", 0x000000eb => "\x53", 0x000000ec => "\x58", 0x000000ed => "\x55", 0x000000ee => "\x56", 0x000000ef => "\x57", 0x000000f0 => "\x8c", 0x000000f1 => "\x49", 0x000000f2 => "\xcd", 0x000000f3 => "\xce", 0x000000f4 => "\xcb", 0x000000f5 => "\xcf", 0x000000f6 => "\xcc", 0x000000f7 => "\xe1", 0x000000f8 => "\x70", 0x000000f9 => "\xdd", 0x000000fa => "\xde", 0x000000fb => "\xdb", 0x000000fc => "\xdc", 0x000000fd => "\x8d", 0x000000fe => "\x8e", 0x000000ff => "\xdf", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM037 - Conversion routines for IBM037 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM037. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP037 alias EBCDIC-CP-US alias EBCDIC-CP-CA alias EBCDIC-CP-WT alias EBCDIC-CP-NL Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 41 | 000000A0 | NO-BREAK SPACE 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE 47 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE 4A | 000000A2 | CENT SIGN 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 0000007C | VERTICAL LINE 50 | 00000026 | AMPERSAND 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE 59 | 000000DF | LATIN SMALL LETTER SHARP S (German) 5A | 00000021 | EXCLAMATION MARK 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 000000AC | NOT SIGN 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE 67 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 6A | 000000A6 | BROKEN BAR 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 00000023 | NUMBER SIGN 7C | 00000040 | COMMERCIAL AT 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic) 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE 8E | 000000FE | LATIN SMALL LETTER THORN (Icelandic) 8F | 000000B1 | PLUS-MINUS SIGN 90 | 000000B0 | DEGREE SIGN 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R 9A | 000000AA | FEMININE ORDINAL INDICATOR 9B | 000000BA | MASCULINE ORDINAL INDICATOR 9C | 000000E6 | LATIN SMALL LETTER AE 9D | 000000B8 | CEDILLA 9E | 000000C6 | LATIN CAPITAL LETTER AE 9F | 000000A4 | CURRENCY SIGN A0 | 000000B5 | MICRO SIGN A1 | 0000007E | TILDE A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z AA | 000000A1 | INVERTED EXCLAMATION MARK AB | 000000BF | INVERTED QUESTION MARK AC | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic) AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE AE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic) AF | 000000AE | REGISTERED SIGN B0 | 0000005E | CIRCUMFLEX ACCENT B1 | 000000A3 | POUND SIGN B2 | 000000A5 | YEN SIGN B3 | 000000B7 | MIDDLE DOT B4 | 000000A9 | COPYRIGHT SIGN B5 | 000000A7 | SECTION SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000BC | VULGAR FRACTION ONE QUARTER B8 | 000000BD | VULGAR FRACTION ONE HALF B9 | 000000BE | VULGAR FRACTION THREE QUARTERS BA | 0000005B | LEFT SQUARE BRACKET BB | 0000005D | RIGHT SQUARE BRACKET BC | 000000AF | MACRON BD | 000000A8 | DIAERESIS BE | 000000B4 | ACUTE ACCENT BF | 000000D7 | MULTIPLICATION SIGN C0 | 0000007B | LEFT CURLY BRACKET C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I CA | 000000AD | SOFT HYPHEN CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX CC | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE D0 | 0000007D | RIGHT CURLY BRACKET D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R DA | 000000B9 | SUPERSCRIPT ONE DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX DC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS E0 | 0000005C | REVERSE SOLIDUS E1 | 000000F7 | DIVISION SIGN E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z EA | 000000B2 | SUPERSCRIPT TWO EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX EC | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FA | 000000B3 | SUPERSCRIPT THREE FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]HPyOORecodeData/EBCDIC_FI_SE_A.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for EBCDIC-FI-SE-A. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::EBCDIC_FI_SE_A; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00f6, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e5, 0x00c5, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x00e4, 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xb6", "\x2e", "\x3c", "\x28", "\x2b", "\x7c", "\x26", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa5", "\xc3\x85", "\x2a", "\x29", "\x3b", "\xc2\xac", "\x2d", "\x2f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa6", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x3a", "\xc3\x84", "\xc3\x96", "\x27", "\x3d", "\xc3\xa4", "\xef\xbf\xbd", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005f => "\x6d", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007c => "\x4f", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a6 => "\x6a", 0x000000ac => "\x5f", 0x000000c4 => "\x7b", 0x000000c5 => "\x5b", 0x000000d6 => "\x7c", 0x000000e4 => "\x7f", 0x000000e5 => "\x5a", 0x000000f6 => "\x4a", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::EBCDIC_FI_SE_A - Conversion routines for EBCDIC_FI_SE_A =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for EBCDIC-FI-SE-A. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 4A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 0000007C | VERTICAL LINE 50 | 00000026 | AMPERSAND 5A | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 5B | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 000000AC | NOT SIGN 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 6A | 000000A6 | BROKEN BAR 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 7A | 0000003A | COLON 7B | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 7C | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK] eOsRecodeData/UTF_8.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for UTF-8 (perl < 5.8.0). # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::UTF_8; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { return $_[0]->_fromInternal ($_[1]); } else { return $_[0]->_toInternal ($_[1]); } } # This routine assumes that the internal representation is always sane # and contains valid codes only. sub _fromInternal { $_[1] = join '', map { if ($_ <= 0x7f) { chr $_; } elsif ($_ <= 0x7ff) { pack ("C2", (0xc0 | (($_ >> 6) & 0x1f)), (0x80 | ($_ & 0x3f))); } elsif ($_ <= 0xffff) { pack ("C3", (0xe0 | (($_ >> 12) & 0xf)), (0x80 | (($_ >> 6) & 0x3f)), (0x80 | ($_ & 0x3f))); } elsif ($_ <= 0x1fffff) { pack ("C4", (0xf0 | (($_ >> 18) & 0x7)), (0x80 | (($_ >> 12) & 0x3f)), (0x80 | (($_ >> 6) & 0x3f)), (0x80 | ($_ & 0x3f))); } elsif ($_ <= 0x3ffffff) { pack ("C5", (0xf0 | (($_ >> 24) & 0x3)), (0x80 | (($_ >> 18) & 0x3f)), (0x80 | (($_ >> 12) & 0x3f)), (0x80 | (($_ >> 6) & 0x3f)), (0x80 | ($_ & 0x3f))); } else { pack ("C6", (0xf0 | (($_ >> 30) & 0x3)), (0x80 | (($_ >> 24) & 0x1)), (0x80 | (($_ >> 18) & 0x3f)), (0x80 | (($_ >> 12) & 0x3f)), (0x80 | (($_ >> 6) & 0x3f)), (0x80 | ($_ & 0x3f))); } } @{$_[1]}; return 1; } # Decode UTF-8 into integers. We do not bother to care about possibly # configured replacement characters here and simply fall back to 0xfffd. # Rationale: the internal format is never output directly and the other # encoders will handle the replacement character correctly. sub _toInternal { if ($] >= 5.006) { $_[1] = [ unpack "U*", $_[1] ]; return 1; } # Sigh, we have to decode ourselves. FIXME: Should be optimized. # The routine is awfully slow. # It also does not necessarily detect illegal multi-byte sequences. my @chars = (); my @bytes = unpack "C*", $_[1]; BYTE: while (@bytes) { my $byte = shift @bytes; if ($byte < 0x80) { push @chars, $byte; } elsif ($byte < 0xc0 || $byte > 0xfd) { push @chars, 0xfffd; } else { my $num_bytes; my $char; if ($byte < 0xe0) { $char = $byte & 0x1f; $num_bytes = 1; } elsif ($byte < 0xf0) { $char = $byte & 0xf; $num_bytes = 2; } elsif ($byte < 0xf8) { $char = $byte & 0x7; $num_bytes = 3; } elsif ($byte < 0xfc) { $char = $byte & 0x3; $num_bytes = 4; } else { $char = $byte & 0x1; $num_bytes = 5; } for (my $i = 0; $i < $num_bytes; ++$i) { my $next = shift @bytes; if (!defined $next || $next < 0x80 || $next > 0xbf) { push @chars, 0xfffd; next BYTE; } else { $char <<= 6; $char |= $next & 0x3f; } } push @chars, $char; } } $_[1] = \@chars; return 1; } 1; __END__ =head1 NAME Locale::RecodeData::UTF_8 - Conversion routines for UTF-8 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This modules contains the conversion tables for UTF-8. It is capable of converting from UTF-8 to the internal format of libintl-perl and vice versa. It is only suitable for Perl versions E= 5.8.0. However, you do not have to bother about version checking, Locale::Recode(3) will do that for you. =head1 CHARACTER TABLE See http://www.unicode.org/. =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]+\29G9GRecodeData/IBM903.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM903. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM903; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM903 - Conversion routines for IBM903 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM903. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP903 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]n(j(jRecodeData/CP1250.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for CP1250. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::CP1250; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x20ac, 0xfffd, 0x201a, 0xfffd, 0x201e, 0x2026, 0x2020, 0x2021, 0xfffd, 0x2030, 0x0160, 0x2039, 0x015a, 0x0164, 0x017d, 0x0179, 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0xfffd, 0x2122, 0x0161, 0x203a, 0x015b, 0x0165, 0x017e, 0x017a, 0x00a0, 0x02c7, 0x02d8, 0x0141, 0x00a4, 0x0104, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x015e, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x017b, 0x00b0, 0x00b1, 0x02db, 0x0142, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x0105, 0x015f, 0x00bb, 0x013d, 0x02dd, 0x013e, 0x017c, 0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7, 0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e, 0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7, 0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df, 0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7, 0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f, 0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7, 0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xe2\x82\xac", "\xef\xbf\xbd", "\xe2\x80\x9a", "\xef\xbf\xbd", "\xe2\x80\x9e", "\xe2\x80\xa6", "\xe2\x80\xa0", "\xe2\x80\xa1", "\xef\xbf\xbd", "\xe2\x80\xb0", "\xc5\xa0", "\xe2\x80\xb9", "\xc5\x9a", "\xc5\xa4", "\xc5\xbd", "\xc5\xb9", "\xef\xbf\xbd", "\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\xa2", "\xe2\x80\x93", "\xe2\x80\x94", "\xef\xbf\xbd", "\xe2\x84\xa2", "\xc5\xa1", "\xe2\x80\xba", "\xc5\x9b", "\xc5\xa5", "\xc5\xbe", "\xc5\xba", "\xc2\xa0", "\xcb\x87", "\xcb\x98", "\xc5\x81", "\xc2\xa4", "\xc4\x84", "\xc2\xa6", "\xc2\xa7", "\xc2\xa8", "\xc2\xa9", "\xc5\x9e", "\xc2\xab", "\xc2\xac", "\xc2\xad", "\xc2\xae", "\xc5\xbb", "\xc2\xb0", "\xc2\xb1", "\xcb\x9b", "\xc5\x82", "\xc2\xb4", "\xc2\xb5", "\xc2\xb6", "\xc2\xb7", "\xc2\xb8", "\xc4\x85", "\xc5\x9f", "\xc2\xbb", "\xc4\xbd", "\xcb\x9d", "\xc4\xbe", "\xc5\xbc", "\xc5\x94", "\xc3\x81", "\xc3\x82", "\xc4\x82", "\xc3\x84", "\xc4\xb9", "\xc4\x86", "\xc3\x87", "\xc4\x8c", "\xc3\x89", "\xc4\x98", "\xc3\x8b", "\xc4\x9a", "\xc3\x8d", "\xc3\x8e", "\xc4\x8e", "\xc4\x90", "\xc5\x83", "\xc5\x87", "\xc3\x93", "\xc3\x94", "\xc5\x90", "\xc3\x96", "\xc3\x97", "\xc5\x98", "\xc5\xae", "\xc3\x9a", "\xc5\xb0", "\xc3\x9c", "\xc3\x9d", "\xc5\xa2", "\xc3\x9f", "\xc5\x95", "\xc3\xa1", "\xc3\xa2", "\xc4\x83", "\xc3\xa4", "\xc4\xba", "\xc4\x87", "\xc3\xa7", "\xc4\x8d", "\xc3\xa9", "\xc4\x99", "\xc3\xab", "\xc4\x9b", "\xc3\xad", "\xc3\xae", "\xc4\x8f", "\xc4\x91", "\xc5\x84", "\xc5\x88", "\xc3\xb3", "\xc3\xb4", "\xc5\x91", "\xc3\xb6", "\xc3\xb7", "\xc5\x99", "\xc5\xaf", "\xc3\xba", "\xc5\xb1", "\xc3\xbc", "\xc3\xbd", "\xc5\xa3", "\xcb\x99", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xa0", 0x000000a4 => "\xa4", 0x000000a6 => "\xa6", 0x000000a7 => "\xa7", 0x000000a8 => "\xa8", 0x000000a9 => "\xa9", 0x000000ab => "\xab", 0x000000ac => "\xac", 0x000000ad => "\xad", 0x000000ae => "\xae", 0x000000b0 => "\xb0", 0x000000b1 => "\xb1", 0x000000b4 => "\xb4", 0x000000b5 => "\xb5", 0x000000b6 => "\xb6", 0x000000b7 => "\xb7", 0x000000b8 => "\xb8", 0x000000bb => "\xbb", 0x000000c1 => "\xc1", 0x000000c2 => "\xc2", 0x000000c4 => "\xc4", 0x000000c7 => "\xc7", 0x000000c9 => "\xc9", 0x000000cb => "\xcb", 0x000000cd => "\xcd", 0x000000ce => "\xce", 0x000000d3 => "\xd3", 0x000000d4 => "\xd4", 0x000000d6 => "\xd6", 0x000000d7 => "\xd7", 0x000000da => "\xda", 0x000000dc => "\xdc", 0x000000dd => "\xdd", 0x000000df => "\xdf", 0x000000e1 => "\xe1", 0x000000e2 => "\xe2", 0x000000e4 => "\xe4", 0x000000e7 => "\xe7", 0x000000e9 => "\xe9", 0x000000eb => "\xeb", 0x000000ed => "\xed", 0x000000ee => "\xee", 0x000000f3 => "\xf3", 0x000000f4 => "\xf4", 0x000000f6 => "\xf6", 0x000000f7 => "\xf7", 0x000000fa => "\xfa", 0x000000fc => "\xfc", 0x000000fd => "\xfd", 0x00000102 => "\xc3", 0x00000103 => "\xe3", 0x00000104 => "\xa5", 0x00000105 => "\xb9", 0x00000106 => "\xc6", 0x00000107 => "\xe6", 0x0000010c => "\xc8", 0x0000010d => "\xe8", 0x0000010e => "\xcf", 0x0000010f => "\xef", 0x00000110 => "\xd0", 0x00000111 => "\xf0", 0x00000118 => "\xca", 0x00000119 => "\xea", 0x0000011a => "\xcc", 0x0000011b => "\xec", 0x00000139 => "\xc5", 0x0000013a => "\xe5", 0x0000013d => "\xbc", 0x0000013e => "\xbe", 0x00000141 => "\xa3", 0x00000142 => "\xb3", 0x00000143 => "\xd1", 0x00000144 => "\xf1", 0x00000147 => "\xd2", 0x00000148 => "\xf2", 0x00000150 => "\xd5", 0x00000151 => "\xf5", 0x00000154 => "\xc0", 0x00000155 => "\xe0", 0x00000158 => "\xd8", 0x00000159 => "\xf8", 0x0000015a => "\x8c", 0x0000015b => "\x9c", 0x0000015e => "\xaa", 0x0000015f => "\xba", 0x00000160 => "\x8a", 0x00000161 => "\x9a", 0x00000162 => "\xde", 0x00000163 => "\xfe", 0x00000164 => "\x8d", 0x00000165 => "\x9d", 0x0000016e => "\xd9", 0x0000016f => "\xf9", 0x00000170 => "\xdb", 0x00000171 => "\xfb", 0x00000179 => "\x8f", 0x0000017a => "\x9f", 0x0000017b => "\xaf", 0x0000017c => "\xbf", 0x0000017d => "\x8e", 0x0000017e => "\x9e", 0x000002c7 => "\xa1", 0x000002d8 => "\xa2", 0x000002d9 => "\xff", 0x000002db => "\xb2", 0x000002dd => "\xbd", 0x00002013 => "\x96", 0x00002014 => "\x97", 0x00002018 => "\x91", 0x00002019 => "\x92", 0x0000201a => "\x82", 0x0000201c => "\x93", 0x0000201d => "\x94", 0x0000201e => "\x84", 0x00002020 => "\x86", 0x00002021 => "\x87", 0x00002022 => "\x95", 0x00002026 => "\x85", 0x00002030 => "\x89", 0x00002039 => "\x8b", 0x0000203a => "\x9b", 0x000020ac => "\x80", 0x00002122 => "\x99", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::CP1250 - Conversion routines for CP1250 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for CP1250. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 repertoiremap: mnemonic,ds source: UNICODE 1.0 alias MS-EE Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000020AC | EURO SIGN 82 | 0000201A | SINGLE LOW-9 QUOTATION MARK 84 | 0000201E | DOUBLE LOW-9 QUOTATION MARK 85 | 00002026 | HORIZONTAL ELLIPSIS 86 | 00002020 | DAGGER 87 | 00002021 | DOUBLE DAGGER 89 | 00002030 | PER MILLE SIGN 8A | 00000160 | LATIN CAPITAL LETTER S WITH CARON 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK 8C | 0000015A | LATIN CAPITAL LETTER S WITH ACUTE 8D | 00000164 | LATIN CAPITAL LETTER T WITH CARON 8E | 0000017D | LATIN CAPITAL LETTER Z WITH CARON 8F | 00000179 | LATIN CAPITAL LETTER Z WITH ACUTE 91 | 00002018 | LEFT SINGLE QUOTATION MARK 92 | 00002019 | RIGHT SINGLE QUOTATION MARK 93 | 0000201C | LEFT DOUBLE QUOTATION MARK 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK 95 | 00002022 | BULLET 96 | 00002013 | EN DASH 97 | 00002014 | EM DASH 99 | 00002122 | TRADE MARK SIGN 9A | 00000161 | LATIN SMALL LETTER S WITH CARON 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 9C | 0000015B | LATIN SMALL LETTER S WITH ACUTE 9D | 00000165 | LATIN SMALL LETTER T WITH CARON 9E | 0000017E | LATIN SMALL LETTER Z WITH CARON 9F | 0000017A | LATIN SMALL LETTER Z WITH ACUTE A0 | 000000A0 | NO-BREAK SPACE A1 | 000002C7 | CARON (Mandarin Chinese third tone) A2 | 000002D8 | BREVE A3 | 00000141 | LATIN CAPITAL LETTER L WITH STROKE A4 | 000000A4 | CURRENCY SIGN A5 | 00000104 | LATIN CAPITAL LETTER A WITH OGONEK A6 | 000000A6 | BROKEN BAR A7 | 000000A7 | SECTION SIGN A8 | 000000A8 | DIAERESIS A9 | 000000A9 | COPYRIGHT SIGN AA | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AC | 000000AC | NOT SIGN AD | 000000AD | SOFT HYPHEN AE | 000000AE | REGISTERED SIGN AF | 0000017B | LATIN CAPITAL LETTER Z WITH DOT ABOVE B0 | 000000B0 | DEGREE SIGN B1 | 000000B1 | PLUS-MINUS SIGN B2 | 000002DB | OGONEK B3 | 00000142 | LATIN SMALL LETTER L WITH STROKE B4 | 000000B4 | ACUTE ACCENT B5 | 000000B5 | MICRO SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000B7 | MIDDLE DOT B8 | 000000B8 | CEDILLA B9 | 00000105 | LATIN SMALL LETTER A WITH OGONEK BA | 0000015F | LATIN SMALL LETTER S WITH CEDILLA BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK BC | 0000013D | LATIN CAPITAL LETTER L WITH CARON BD | 000002DD | DOUBLE ACUTE ACCENT BE | 0000013E | LATIN SMALL LETTER L WITH CARON BF | 0000017C | LATIN SMALL LETTER Z WITH DOT ABOVE C0 | 00000154 | LATIN CAPITAL LETTER R WITH ACUTE C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX C3 | 00000102 | LATIN CAPITAL LETTER A WITH BREVE C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS C5 | 00000139 | LATIN CAPITAL LETTER L WITH ACUTE C6 | 00000106 | LATIN CAPITAL LETTER C WITH ACUTE C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA C8 | 0000010C | LATIN CAPITAL LETTER C WITH CARON C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE CA | 00000118 | LATIN CAPITAL LETTER E WITH OGONEK CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS CC | 0000011A | LATIN CAPITAL LETTER E WITH CARON CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX CF | 0000010E | LATIN CAPITAL LETTER D WITH CARON D0 | 00000110 | LATIN CAPITAL LETTER D WITH STROKE D1 | 00000143 | LATIN CAPITAL LETTER N WITH ACUTE D2 | 00000147 | LATIN CAPITAL LETTER N WITH CARON D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX D5 | 00000150 | LATIN CAPITAL LETTER O WITH DOUBLE ACUTE D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS D7 | 000000D7 | MULTIPLICATION SIGN D8 | 00000158 | LATIN CAPITAL LETTER R WITH CARON D9 | 0000016E | LATIN CAPITAL LETTER U WITH RING ABOVE DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE DB | 00000170 | LATIN CAPITAL LETTER U WITH DOUBLE ACUTE DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS DD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE DE | 00000162 | LATIN CAPITAL LETTER T WITH CEDILLA DF | 000000DF | LATIN SMALL LETTER SHARP S (German) E0 | 00000155 | LATIN SMALL LETTER R WITH ACUTE E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX E3 | 00000103 | LATIN SMALL LETTER A WITH BREVE E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS E5 | 0000013A | LATIN SMALL LETTER L WITH ACUTE E6 | 00000107 | LATIN SMALL LETTER C WITH ACUTE E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA E8 | 0000010D | LATIN SMALL LETTER C WITH CARON E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE EA | 00000119 | LATIN SMALL LETTER E WITH OGONEK EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS EC | 0000011B | LATIN SMALL LETTER E WITH CARON ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX EF | 0000010F | LATIN SMALL LETTER D WITH CARON F0 | 00000111 | LATIN SMALL LETTER D WITH STROKE F1 | 00000144 | LATIN SMALL LETTER N WITH ACUTE F2 | 00000148 | LATIN SMALL LETTER N WITH CARON F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX F5 | 00000151 | LATIN SMALL LETTER O WITH DOUBLE ACUTE F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS F7 | 000000F7 | DIVISION SIGN F8 | 00000159 | LATIN SMALL LETTER R WITH CARON F9 | 0000016F | LATIN SMALL LETTER U WITH RING ABOVE FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE FB | 00000171 | LATIN SMALL LETTER U WITH DOUBLE ACUTE FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE FE | 00000163 | LATIN SMALL LETTER T WITH CEDILLA FF | 000002D9 | DOT ABOVE (Mandarin Chinese light tone) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK].\, # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::CP1256; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x20ac, 0x067e, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, 0x02c6, 0x2030, 0x0679, 0x2039, 0x0152, 0x0686, 0x0698, 0x0688, 0x06af, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0x06a9, 0x2122, 0x0691, 0x203a, 0x0153, 0x200c, 0x200d, 0x06ba, 0x00a0, 0x060c, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x06be, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x061b, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x061f, 0x06c1, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00d7, 0x0637, 0x0638, 0x0639, 0x063a, 0x0640, 0x0641, 0x0642, 0x0643, 0x00e0, 0x0644, 0x00e2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x0649, 0x064a, 0x00ee, 0x00ef, 0x064b, 0x064c, 0x064d, 0x064e, 0x00f4, 0x064f, 0x0650, 0x00f7, 0x0651, 0x00f9, 0x0652, 0x00fb, 0x00fc, 0x200e, 0x200f, 0x06d2, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xe2\x82\xac", "\xd9\xbe", "\xe2\x80\x9a", "\xc6\x92", "\xe2\x80\x9e", "\xe2\x80\xa6", "\xe2\x80\xa0", "\xe2\x80\xa1", "\xcb\x86", "\xe2\x80\xb0", "\xd9\xb9", "\xe2\x80\xb9", "\xc5\x92", "\xda\x86", "\xda\x98", "\xda\x88", "\xda\xaf", "\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\xa2", "\xe2\x80\x93", "\xe2\x80\x94", "\xda\xa9", "\xe2\x84\xa2", "\xda\x91", "\xe2\x80\xba", "\xc5\x93", "\xe2\x80\x8c", "\xe2\x80\x8d", "\xda\xba", "\xc2\xa0", "\xd8\x8c", "\xc2\xa2", "\xc2\xa3", "\xc2\xa4", "\xc2\xa5", "\xc2\xa6", "\xc2\xa7", "\xc2\xa8", "\xc2\xa9", "\xda\xbe", "\xc2\xab", "\xc2\xac", "\xc2\xad", "\xc2\xae", "\xc2\xaf", "\xc2\xb0", "\xc2\xb1", "\xc2\xb2", "\xc2\xb3", "\xc2\xb4", "\xc2\xb5", "\xc2\xb6", "\xc2\xb7", "\xc2\xb8", "\xc2\xb9", "\xd8\x9b", "\xc2\xbb", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\xd8\x9f", "\xdb\x81", "\xd8\xa1", "\xd8\xa2", "\xd8\xa3", "\xd8\xa4", "\xd8\xa5", "\xd8\xa6", "\xd8\xa7", "\xd8\xa8", "\xd8\xa9", "\xd8\xaa", "\xd8\xab", "\xd8\xac", "\xd8\xad", "\xd8\xae", "\xd8\xaf", "\xd8\xb0", "\xd8\xb1", "\xd8\xb2", "\xd8\xb3", "\xd8\xb4", "\xd8\xb5", "\xd8\xb6", "\xc3\x97", "\xd8\xb7", "\xd8\xb8", "\xd8\xb9", "\xd8\xba", "\xd9\x80", "\xd9\x81", "\xd9\x82", "\xd9\x83", "\xc3\xa0", "\xd9\x84", "\xc3\xa2", "\xd9\x85", "\xd9\x86", "\xd9\x87", "\xd9\x88", "\xc3\xa7", "\xc3\xa8", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xd9\x89", "\xd9\x8a", "\xc3\xae", "\xc3\xaf", "\xd9\x8b", "\xd9\x8c", "\xd9\x8d", "\xd9\x8e", "\xc3\xb4", "\xd9\x8f", "\xd9\x90", "\xc3\xb7", "\xd9\x91", "\xc3\xb9", "\xd9\x92", "\xc3\xbb", "\xc3\xbc", "\xe2\x80\x8e", "\xe2\x80\x8f", "\xdb\x92", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xa0", 0x000000a2 => "\xa2", 0x000000a3 => "\xa3", 0x000000a4 => "\xa4", 0x000000a5 => "\xa5", 0x000000a6 => "\xa6", 0x000000a7 => "\xa7", 0x000000a8 => "\xa8", 0x000000a9 => "\xa9", 0x000000ab => "\xab", 0x000000ac => "\xac", 0x000000ad => "\xad", 0x000000ae => "\xae", 0x000000af => "\xaf", 0x000000b0 => "\xb0", 0x000000b1 => "\xb1", 0x000000b2 => "\xb2", 0x000000b3 => "\xb3", 0x000000b4 => "\xb4", 0x000000b5 => "\xb5", 0x000000b6 => "\xb6", 0x000000b7 => "\xb7", 0x000000b8 => "\xb8", 0x000000b9 => "\xb9", 0x000000bb => "\xbb", 0x000000bc => "\xbc", 0x000000bd => "\xbd", 0x000000be => "\xbe", 0x000000d7 => "\xd7", 0x000000e0 => "\xe0", 0x000000e2 => "\xe2", 0x000000e7 => "\xe7", 0x000000e8 => "\xe8", 0x000000e9 => "\xe9", 0x000000ea => "\xea", 0x000000eb => "\xeb", 0x000000ee => "\xee", 0x000000ef => "\xef", 0x000000f4 => "\xf4", 0x000000f7 => "\xf7", 0x000000f9 => "\xf9", 0x000000fb => "\xfb", 0x000000fc => "\xfc", 0x00000152 => "\x8c", 0x00000153 => "\x9c", 0x00000192 => "\x83", 0x000002c6 => "\x88", 0x0000060c => "\xa1", 0x0000061b => "\xba", 0x0000061f => "\xbf", 0x00000621 => "\xc1", 0x00000622 => "\xc2", 0x00000623 => "\xc3", 0x00000624 => "\xc4", 0x00000625 => "\xc5", 0x00000626 => "\xc6", 0x00000627 => "\xc7", 0x00000628 => "\xc8", 0x00000629 => "\xc9", 0x0000062a => "\xca", 0x0000062b => "\xcb", 0x0000062c => "\xcc", 0x0000062d => "\xcd", 0x0000062e => "\xce", 0x0000062f => "\xcf", 0x00000630 => "\xd0", 0x00000631 => "\xd1", 0x00000632 => "\xd2", 0x00000633 => "\xd3", 0x00000634 => "\xd4", 0x00000635 => "\xd5", 0x00000636 => "\xd6", 0x00000637 => "\xd8", 0x00000638 => "\xd9", 0x00000639 => "\xda", 0x0000063a => "\xdb", 0x00000640 => "\xdc", 0x00000641 => "\xdd", 0x00000642 => "\xde", 0x00000643 => "\xdf", 0x00000644 => "\xe1", 0x00000645 => "\xe3", 0x00000646 => "\xe4", 0x00000647 => "\xe5", 0x00000648 => "\xe6", 0x00000649 => "\xec", 0x0000064a => "\xed", 0x0000064b => "\xf0", 0x0000064c => "\xf1", 0x0000064d => "\xf2", 0x0000064e => "\xf3", 0x0000064f => "\xf5", 0x00000650 => "\xf6", 0x00000651 => "\xf8", 0x00000652 => "\xfa", 0x00000679 => "\x8a", 0x0000067e => "\x81", 0x00000686 => "\x8d", 0x00000688 => "\x8f", 0x00000691 => "\x9a", 0x00000698 => "\x8e", 0x000006a9 => "\x98", 0x000006af => "\x90", 0x000006ba => "\x9f", 0x000006be => "\xaa", 0x000006c1 => "\xc0", 0x000006d2 => "\xff", 0x0000200c => "\x9d", 0x0000200d => "\x9e", 0x0000200e => "\xfd", 0x0000200f => "\xfe", 0x00002013 => "\x96", 0x00002014 => "\x97", 0x00002018 => "\x91", 0x00002019 => "\x92", 0x0000201a => "\x82", 0x0000201c => "\x93", 0x0000201d => "\x94", 0x0000201e => "\x84", 0x00002020 => "\x86", 0x00002021 => "\x87", 0x00002022 => "\x95", 0x00002026 => "\x85", 0x00002030 => "\x89", 0x00002039 => "\x8b", 0x0000203a => "\x9b", 0x000020ac => "\x80", 0x00002122 => "\x99", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::CP1256 - Conversion routines for CP1256 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for CP1256. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 repertoiremap: mnemonic,ds source: UNICODE 1.0 alias MS-ARAB Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000020AC | EURO SIGN 81 | 0000067E | ARABIC LETTER PEH 82 | 0000201A | SINGLE LOW-9 QUOTATION MARK 83 | 00000192 | LATIN SMALL LETTER F WITH HOOK 84 | 0000201E | DOUBLE LOW-9 QUOTATION MARK 85 | 00002026 | HORIZONTAL ELLIPSIS 86 | 00002020 | DAGGER 87 | 00002021 | DOUBLE DAGGER 88 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT 89 | 00002030 | PER MILLE SIGN 8A | 00000679 | ARABIC LETTER TTEH 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK 8C | 00000152 | LATIN CAPITAL LIGATURE OE 8D | 00000686 | ARABIC LETTER TCHEH 8E | 00000698 | ARABIC LETTER JEH 8F | 00000688 | ARABIC LETTER DDAL 90 | 000006AF | ARABIC LETTER GAF 91 | 00002018 | LEFT SINGLE QUOTATION MARK 92 | 00002019 | RIGHT SINGLE QUOTATION MARK 93 | 0000201C | LEFT DOUBLE QUOTATION MARK 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK 95 | 00002022 | BULLET 96 | 00002013 | EN DASH 97 | 00002014 | EM DASH 98 | 000006A9 | ARABIC LETTER KEHEH 99 | 00002122 | TRADE MARK SIGN 9A | 00000691 | ARABIC LETTER RREH 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 9C | 00000153 | LATIN SMALL LIGATURE OE 9D | 0000200C | ZERO WIDTH NON-JOINER 9E | 0000200D | ZERO WIDTH JOINER 9F | 000006BA | ARABIC LETTER NOON A0 | 000000A0 | NO-BREAK SPACE A1 | 0000060C | ARABIC COMMA A2 | 000000A2 | CENT SIGN A3 | 000000A3 | POUND SIGN A4 | 000000A4 | CURRENCY SIGN A5 | 000000A5 | YEN SIGN A6 | 000000A6 | BROKEN BAR A7 | 000000A7 | SECTION SIGN A8 | 000000A8 | DIAERESIS A9 | 000000A9 | COPYRIGHT SIGN AA | 000006BE | ARABIC LETTER HEH DOACHASHMEE AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AC | 000000AC | NOT SIGN AD | 000000AD | SOFT HYPHEN AE | 000000AE | REGISTERED SIGN AF | 000000AF | MACRON B0 | 000000B0 | DEGREE SIGN B1 | 000000B1 | PLUS-MINUS SIGN B2 | 000000B2 | SUPERSCRIPT TWO B3 | 000000B3 | SUPERSCRIPT THREE B4 | 000000B4 | ACUTE ACCENT B5 | 000000B5 | MICRO SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000B7 | MIDDLE DOT B8 | 000000B8 | CEDILLA B9 | 000000B9 | SUPERSCRIPT ONE BA | 0000061B | ARABIC SEMICOLON BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK BC | 000000BC | VULGAR FRACTION ONE QUARTER BD | 000000BD | VULGAR FRACTION ONE HALF BE | 000000BE | VULGAR FRACTION THREE QUARTERS BF | 0000061F | ARABIC QUESTION MARK C0 | 000006C1 | ARABIC LETTER HEH GOAL C1 | 00000621 | ARABIC LETTER HAMZA C2 | 00000622 | ARABIC LETTER ALEF WITH MADDA ABOVE C3 | 00000623 | ARABIC LETTER ALEF WITH HAMZA ABOVE C4 | 00000624 | ARABIC LETTER WAW WITH HAMZA ABOVE C5 | 00000625 | ARABIC LETTER ALEF WITH HAMZA BELOW C6 | 00000626 | ARABIC LETTER YEH WITH HAMZA ABOVE C7 | 00000627 | ARABIC LETTER ALEF C8 | 00000628 | ARABIC LETTER BEH C9 | 00000629 | ARABIC LETTER TEH MARBUTA CA | 0000062A | ARABIC LETTER TEH CB | 0000062B | ARABIC LETTER THEH CC | 0000062C | ARABIC LETTER JEEM CD | 0000062D | ARABIC LETTER HAH CE | 0000062E | ARABIC LETTER KHAH CF | 0000062F | ARABIC LETTER DAL D0 | 00000630 | ARABIC LETTER THAL D1 | 00000631 | ARABIC LETTER REH D2 | 00000632 | ARABIC LETTER ZAIN D3 | 00000633 | ARABIC LETTER SEEN D4 | 00000634 | ARABIC LETTER SHEEN D5 | 00000635 | ARABIC LETTER SAD D6 | 00000636 | ARABIC LETTER DAD D7 | 000000D7 | MULTIPLICATION SIGN D8 | 00000637 | ARABIC LETTER TAH D9 | 00000638 | ARABIC LETTER ZAH DA | 00000639 | ARABIC LETTER AIN DB | 0000063A | ARABIC LETTER GHAIN DC | 00000640 | ARABIC TATWEEL DD | 00000641 | ARABIC LETTER FEH DE | 00000642 | ARABIC LETTER QAF DF | 00000643 | ARABIC LETTER KAF E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE E1 | 00000644 | ARABIC LETTER LAM E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX E3 | 00000645 | ARABIC LETTER MEEM E4 | 00000646 | ARABIC LETTER NOON E5 | 00000647 | ARABIC LETTER HEH E6 | 00000648 | ARABIC LETTER WAW E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS EC | 00000649 | ARABIC LETTER ALEF MAKSURA ED | 0000064A | ARABIC LETTER YEH EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS F0 | 0000064B | ARABIC FATHATAN F1 | 0000064C | ARABIC DAMMATAN F2 | 0000064D | ARABIC KASRATAN F3 | 0000064E | ARABIC FATHA F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX F5 | 0000064F | ARABIC DAMMA F6 | 00000650 | ARABIC KASRA F7 | 000000F7 | DIVISION SIGN F8 | 00000651 | ARABIC SHADDA F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE FA | 00000652 | ARABIC SUKUN FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS FD | 0000200E | LEFT-TO-RIGHT MARK FE | 0000200F | RIGHT-TO-LEFT MARK FF | 000006D2 | ARABIC LETTER YEH BARREE =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]zTiiRecodeData/MAC_IS.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for MAC-IS. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::MAC_IS; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, 0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, 0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x00c6, 0x00d8, 0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211, 0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x03a9, 0x00e6, 0x00f8, 0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x0394, 0x00ab, 0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153, 0x2014, 0x2013, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25c6, 0x00ff, 0x0178, 0x2044, 0x00a4, 0x0110, 0x0111, 0x00de, 0x00fe, 0x2021, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4, 0xe01e, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0xfffd, 0xfffd, 0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc3\x84", "\xc3\x85", "\xc3\x87", "\xc3\x89", "\xc3\x91", "\xc3\x96", "\xc3\x9c", "\xc3\xa1", "\xc3\xa0", "\xc3\xa2", "\xc3\xa4", "\xc3\xa3", "\xc3\xa5", "\xc3\xa7", "\xc3\xa9", "\xc3\xa8", "\xc3\xaa", "\xc3\xab", "\xc3\xad", "\xc3\xac", "\xc3\xae", "\xc3\xaf", "\xc3\xb1", "\xc3\xb3", "\xc3\xb2", "\xc3\xb4", "\xc3\xb6", "\xc3\xb5", "\xc3\xba", "\xc3\xb9", "\xc3\xbb", "\xc3\xbc", "\xe2\x80\xa0", "\xc2\xb0", "\xc2\xa2", "\xc2\xa3", "\xc2\xa7", "\xe2\x80\xa2", "\xc2\xb6", "\xc3\x9f", "\xc2\xae", "\xc2\xa9", "\xe2\x84\xa2", "\xc2\xb4", "\xc2\xa8", "\xe2\x89\xa0", "\xc3\x86", "\xc3\x98", "\xe2\x88\x9e", "\xc2\xb1", "\xe2\x89\xa4", "\xe2\x89\xa5", "\xc2\xa5", "\xc2\xb5", "\xe2\x88\x82", "\xe2\x88\x91", "\xe2\x88\x8f", "\xcf\x80", "\xe2\x88\xab", "\xc2\xaa", "\xc2\xba", "\xce\xa9", "\xc3\xa6", "\xc3\xb8", "\xc2\xbf", "\xc2\xa1", "\xc2\xac", "\xe2\x88\x9a", "\xc6\x92", "\xe2\x89\x88", "\xce\x94", "\xc2\xab", "\xc2\xbb", "\xe2\x80\xa6", "\xc2\xa0", "\xc3\x80", "\xc3\x83", "\xc3\x95", "\xc5\x92", "\xc5\x93", "\xe2\x80\x94", "\xe2\x80\x93", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x98", "\xe2\x80\x99", "\xc3\xb7", "\xe2\x97\x86", "\xc3\xbf", "\xc5\xb8", "\xe2\x81\x84", "\xc2\xa4", "\xc4\x90", "\xc4\x91", "\xc3\x9e", "\xc3\xbe", "\xe2\x80\xa1", "\xc2\xb7", "\xe2\x80\x9a", "\xe2\x80\x9e", "\xe2\x80\xb0", "\xc3\x82", "\xc3\x8a", "\xc3\x81", "\xc3\x8b", "\xc3\x88", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x8c", "\xc3\x93", "\xc3\x94", "\xee\x80\x9e", "\xc3\x92", "\xc3\x9a", "\xc3\x9b", "\xc3\x99", "\xc4\xb1", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xaf", "\xcb\x98", "\xcb\x99", "\xcb\x9a", "\xc2\xb8", "\xcb\x9d", "\xcb\x9b", "\xcb\x87", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xca", 0x000000a1 => "\xc1", 0x000000a2 => "\xa2", 0x000000a3 => "\xa3", 0x000000a4 => "\xdb", 0x000000a5 => "\xb4", 0x000000a7 => "\xa4", 0x000000a8 => "\xac", 0x000000a9 => "\xa9", 0x000000aa => "\xbb", 0x000000ab => "\xc7", 0x000000ac => "\xc2", 0x000000ae => "\xa8", 0x000000af => "\xf8", 0x000000b0 => "\xa1", 0x000000b1 => "\xb1", 0x000000b4 => "\xab", 0x000000b5 => "\xb5", 0x000000b6 => "\xa6", 0x000000b7 => "\xe1", 0x000000b8 => "\xfc", 0x000000ba => "\xbc", 0x000000bb => "\xc8", 0x000000bf => "\xc0", 0x000000c0 => "\xcb", 0x000000c1 => "\xe7", 0x000000c2 => "\xe5", 0x000000c3 => "\xcc", 0x000000c4 => "\x80", 0x000000c5 => "\x81", 0x000000c6 => "\xae", 0x000000c7 => "\x82", 0x000000c8 => "\xe9", 0x000000c9 => "\x83", 0x000000ca => "\xe6", 0x000000cb => "\xe8", 0x000000cc => "\xed", 0x000000cd => "\xea", 0x000000ce => "\xeb", 0x000000cf => "\xec", 0x000000d1 => "\x84", 0x000000d2 => "\xf1", 0x000000d3 => "\xee", 0x000000d4 => "\xef", 0x000000d5 => "\xcd", 0x000000d6 => "\x85", 0x000000d8 => "\xaf", 0x000000d9 => "\xf4", 0x000000da => "\xf2", 0x000000db => "\xf3", 0x000000dc => "\x86", 0x000000de => "\xde", 0x000000df => "\xa7", 0x000000e0 => "\x88", 0x000000e1 => "\x87", 0x000000e2 => "\x89", 0x000000e3 => "\x8b", 0x000000e4 => "\x8a", 0x000000e5 => "\x8c", 0x000000e6 => "\xbe", 0x000000e7 => "\x8d", 0x000000e8 => "\x8f", 0x000000e9 => "\x8e", 0x000000ea => "\x90", 0x000000eb => "\x91", 0x000000ec => "\x93", 0x000000ed => "\x92", 0x000000ee => "\x94", 0x000000ef => "\x95", 0x000000f1 => "\x96", 0x000000f2 => "\x98", 0x000000f3 => "\x97", 0x000000f4 => "\x99", 0x000000f5 => "\x9b", 0x000000f6 => "\x9a", 0x000000f7 => "\xd6", 0x000000f8 => "\xbf", 0x000000f9 => "\x9d", 0x000000fa => "\x9c", 0x000000fb => "\x9e", 0x000000fc => "\x9f", 0x000000fe => "\xdf", 0x000000ff => "\xd8", 0x00000110 => "\xdc", 0x00000111 => "\xdd", 0x00000131 => "\xf5", 0x00000152 => "\xce", 0x00000153 => "\xcf", 0x00000178 => "\xd9", 0x00000192 => "\xc4", 0x000002c7 => "\xff", 0x000002d8 => "\xf9", 0x000002d9 => "\xfa", 0x000002da => "\xfb", 0x000002db => "\xfe", 0x000002dd => "\xfd", 0x00000394 => "\xc6", 0x000003a9 => "\xbd", 0x000003c0 => "\xb9", 0x00002013 => "\xd1", 0x00002014 => "\xd0", 0x00002018 => "\xd4", 0x00002019 => "\xd5", 0x0000201a => "\xe2", 0x0000201c => "\xd2", 0x0000201d => "\xd3", 0x0000201e => "\xe3", 0x00002020 => "\xa0", 0x00002021 => "\xe0", 0x00002022 => "\xa5", 0x00002026 => "\xc9", 0x00002030 => "\xe4", 0x00002044 => "\xda", 0x00002122 => "\xaa", 0x00002202 => "\xb6", 0x0000220f => "\xb8", 0x00002211 => "\xb7", 0x0000221a => "\xc3", 0x0000221e => "\xb0", 0x0000222b => "\xba", 0x00002248 => "\xc5", 0x00002260 => "\xad", 0x00002264 => "\xb2", 0x00002265 => "\xb3", 0x000025c6 => "\xd7", 0x0000e01e => "\xf0", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::MAC_IS - Conversion routines for MAC-IS =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for MAC-IS. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 81 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 82 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 83 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 84 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 85 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 86 | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 87 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 88 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 89 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 8A | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 8B | 000000E3 | LATIN SMALL LETTER A WITH TILDE 8C | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 8D | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 8E | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 8F | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 90 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 91 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 92 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 93 | 000000EC | LATIN SMALL LETTER I WITH GRAVE 94 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 95 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 96 | 000000F1 | LATIN SMALL LETTER N WITH TILDE 97 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE 98 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE 99 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX 9A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 9B | 000000F5 | LATIN SMALL LETTER O WITH TILDE 9C | 000000FA | LATIN SMALL LETTER U WITH ACUTE 9D | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 9E | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX 9F | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS A0 | 00002020 | DAGGER A1 | 000000B0 | DEGREE SIGN A2 | 000000A2 | CENT SIGN A3 | 000000A3 | POUND SIGN A4 | 000000A7 | SECTION SIGN A5 | 00002022 | BULLET A6 | 000000B6 | PILCROW SIGN A7 | 000000DF | LATIN SMALL LETTER SHARP S (German) A8 | 000000AE | REGISTERED SIGN A9 | 000000A9 | COPYRIGHT SIGN AA | 00002122 | TRADE MARK SIGN AB | 000000B4 | ACUTE ACCENT AC | 000000A8 | DIAERESIS AD | 00002260 | NOT EQUAL TO AE | 000000C6 | LATIN CAPITAL LETTER AE AF | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE B0 | 0000221E | INFINITY B1 | 000000B1 | PLUS-MINUS SIGN B2 | 00002264 | LESS-THAN OR EQUAL TO B3 | 00002265 | GREATER-THAN OR EQUAL TO B4 | 000000A5 | YEN SIGN B5 | 000000B5 | MICRO SIGN B6 | 00002202 | PARTIAL DIFFERENTIAL B7 | 00002211 | N-ARY SUMMATION B8 | 0000220F | N-ARY PRODUCT B9 | 000003C0 | GREEK SMALL LETTER PI BA | 0000222B | INTEGRAL BB | 000000AA | FEMININE ORDINAL INDICATOR BC | 000000BA | MASCULINE ORDINAL INDICATOR BD | 000003A9 | GREEK CAPITAL LETTER OMEGA BE | 000000E6 | LATIN SMALL LETTER AE BF | 000000F8 | LATIN SMALL LETTER O WITH STROKE C0 | 000000BF | INVERTED QUESTION MARK C1 | 000000A1 | INVERTED EXCLAMATION MARK C2 | 000000AC | NOT SIGN C3 | 0000221A | SQUARE ROOT C4 | 00000192 | LATIN SMALL LETTER F WITH HOOK C5 | 00002248 | ALMOST EQUAL TO C6 | 00000394 | GREEK CAPITAL LETTER DELTA C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK C8 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK C9 | 00002026 | HORIZONTAL ELLIPSIS CA | 000000A0 | NO-BREAK SPACE CB | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE CC | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE CD | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE CE | 00000152 | LATIN CAPITAL LIGATURE OE CF | 00000153 | LATIN SMALL LIGATURE OE D0 | 00002014 | EM DASH D1 | 00002013 | EN DASH D2 | 0000201C | LEFT DOUBLE QUOTATION MARK D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK D4 | 00002018 | LEFT SINGLE QUOTATION MARK D5 | 00002019 | RIGHT SINGLE QUOTATION MARK D6 | 000000F7 | DIVISION SIGN D7 | 000025C6 | BLACK DIAMOND D8 | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS D9 | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS DA | 00002044 | FRACTION SLASH DB | 000000A4 | CURRENCY SIGN DC | 00000110 | LATIN CAPITAL LETTER D WITH STROKE DD | 00000111 | LATIN SMALL LETTER D WITH STROKE DE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic) DF | 000000FE | LATIN SMALL LETTER THORN (Icelandic) E0 | 00002021 | DOUBLE DAGGER E1 | 000000B7 | MIDDLE DOT E2 | 0000201A | SINGLE LOW-9 QUOTATION MARK E3 | 0000201E | DOUBLE LOW-9 QUOTATION MARK E4 | 00002030 | PER MILLE SIGN E5 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX E6 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX E7 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE E8 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS E9 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE EA | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE EB | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX EC | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS ED | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE EF | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX F0 | 0000E01E | APPLE LOGO (Macintosh_F0) F1 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE F2 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE F3 | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX F4 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE F5 | 00000131 | LATIN SMALL LETTER DOTLESS I F8 | 000000AF | MACRON F9 | 000002D8 | BREVE FA | 000002D9 | DOT ABOVE (Mandarin Chinese light tone) FB | 000002DA | RING ABOVE FC | 000000B8 | CEDILLA FD | 000002DD | DOUBLE ACUTE ACCENT FE | 000002DB | OGONEK FF | 000002C7 | CARON (Mandarin Chinese third tone) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]¶llRecodeData/IBM437.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM437. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM437; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, 0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc3\x87", "\xc3\xbc", "\xc3\xa9", "\xc3\xa2", "\xc3\xa4", "\xc3\xa0", "\xc3\xa5", "\xc3\xa7", "\xc3\xaa", "\xc3\xab", "\xc3\xa8", "\xc3\xaf", "\xc3\xae", "\xc3\xac", "\xc3\x84", "\xc3\x85", "\xc3\x89", "\xc3\xa6", "\xc3\x86", "\xc3\xb4", "\xc3\xb6", "\xc3\xb2", "\xc3\xbb", "\xc3\xb9", "\xc3\xbf", "\xc3\x96", "\xc3\x9c", "\xc2\xa2", "\xc2\xa3", "\xc2\xa5", "\xe2\x82\xa7", "\xc6\x92", "\xc3\xa1", "\xc3\xad", "\xc3\xb3", "\xc3\xba", "\xc3\xb1", "\xc3\x91", "\xc2\xaa", "\xc2\xba", "\xc2\xbf", "\xe2\x8c\x90", "\xc2\xac", "\xc2\xbd", "\xc2\xbc", "\xc2\xa1", "\xc2\xab", "\xc2\xbb", "\xe2\x96\x91", "\xe2\x96\x92", "\xe2\x96\x93", "\xe2\x94\x82", "\xe2\x94\xa4", "\xe2\x95\xa1", "\xe2\x95\xa2", "\xe2\x95\x96", "\xe2\x95\x95", "\xe2\x95\xa3", "\xe2\x95\x91", "\xe2\x95\x97", "\xe2\x95\x9d", "\xe2\x95\x9c", "\xe2\x95\x9b", "\xe2\x94\x90", "\xe2\x94\x94", "\xe2\x94\xb4", "\xe2\x94\xac", "\xe2\x94\x9c", "\xe2\x94\x80", "\xe2\x94\xbc", "\xe2\x95\x9e", "\xe2\x95\x9f", "\xe2\x95\x9a", "\xe2\x95\x94", "\xe2\x95\xa9", "\xe2\x95\xa6", "\xe2\x95\xa0", "\xe2\x95\x90", "\xe2\x95\xac", "\xe2\x95\xa7", "\xe2\x95\xa8", "\xe2\x95\xa4", "\xe2\x95\xa5", "\xe2\x95\x99", "\xe2\x95\x98", "\xe2\x95\x92", "\xe2\x95\x93", "\xe2\x95\xab", "\xe2\x95\xaa", "\xe2\x94\x98", "\xe2\x94\x8c", "\xe2\x96\x88", "\xe2\x96\x84", "\xe2\x96\x8c", "\xe2\x96\x90", "\xe2\x96\x80", "\xce\xb1", "\xc3\x9f", "\xce\x93", "\xcf\x80", "\xce\xa3", "\xcf\x83", "\xc2\xb5", "\xcf\x84", "\xce\xa6", "\xce\x98", "\xce\xa9", "\xce\xb4", "\xe2\x88\x9e", "\xcf\x86", "\xce\xb5", "\xe2\x88\xa9", "\xe2\x89\xa1", "\xc2\xb1", "\xe2\x89\xa5", "\xe2\x89\xa4", "\xe2\x8c\xa0", "\xe2\x8c\xa1", "\xc3\xb7", "\xe2\x89\x88", "\xc2\xb0", "\xe2\x88\x99", "\xc2\xb7", "\xe2\x88\x9a", "\xe2\x81\xbf", "\xc2\xb2", "\xe2\x96\xa0", "\xc2\xa0", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xff", 0x000000a1 => "\xad", 0x000000a2 => "\x9b", 0x000000a3 => "\x9c", 0x000000a5 => "\x9d", 0x000000aa => "\xa6", 0x000000ab => "\xae", 0x000000ac => "\xaa", 0x000000b0 => "\xf8", 0x000000b1 => "\xf1", 0x000000b2 => "\xfd", 0x000000b5 => "\xe6", 0x000000b7 => "\xfa", 0x000000ba => "\xa7", 0x000000bb => "\xaf", 0x000000bc => "\xac", 0x000000bd => "\xab", 0x000000bf => "\xa8", 0x000000c4 => "\x8e", 0x000000c5 => "\x8f", 0x000000c6 => "\x92", 0x000000c7 => "\x80", 0x000000c9 => "\x90", 0x000000d1 => "\xa5", 0x000000d6 => "\x99", 0x000000dc => "\x9a", 0x000000df => "\xe1", 0x000000e0 => "\x85", 0x000000e1 => "\xa0", 0x000000e2 => "\x83", 0x000000e4 => "\x84", 0x000000e5 => "\x86", 0x000000e6 => "\x91", 0x000000e7 => "\x87", 0x000000e8 => "\x8a", 0x000000e9 => "\x82", 0x000000ea => "\x88", 0x000000eb => "\x89", 0x000000ec => "\x8d", 0x000000ed => "\xa1", 0x000000ee => "\x8c", 0x000000ef => "\x8b", 0x000000f1 => "\xa4", 0x000000f2 => "\x95", 0x000000f3 => "\xa2", 0x000000f4 => "\x93", 0x000000f6 => "\x94", 0x000000f7 => "\xf6", 0x000000f9 => "\x97", 0x000000fa => "\xa3", 0x000000fb => "\x96", 0x000000fc => "\x81", 0x000000ff => "\x98", 0x00000192 => "\x9f", 0x00000393 => "\xe2", 0x00000398 => "\xe9", 0x000003a3 => "\xe4", 0x000003a6 => "\xe8", 0x000003a9 => "\xea", 0x000003b1 => "\xe0", 0x000003b4 => "\xeb", 0x000003b5 => "\xee", 0x000003c0 => "\xe3", 0x000003c3 => "\xe5", 0x000003c4 => "\xe7", 0x000003c6 => "\xed", 0x0000207f => "\xfc", 0x000020a7 => "\x9e", 0x00002219 => "\xf9", 0x0000221a => "\xfb", 0x0000221e => "\xec", 0x00002229 => "\xef", 0x00002248 => "\xf7", 0x00002261 => "\xf0", 0x00002264 => "\xf3", 0x00002265 => "\xf2", 0x00002310 => "\xa9", 0x00002320 => "\xf4", 0x00002321 => "\xf5", 0x00002500 => "\xc4", 0x00002502 => "\xb3", 0x0000250c => "\xda", 0x00002510 => "\xbf", 0x00002514 => "\xc0", 0x00002518 => "\xd9", 0x0000251c => "\xc3", 0x00002524 => "\xb4", 0x0000252c => "\xc2", 0x00002534 => "\xc1", 0x0000253c => "\xc5", 0x00002550 => "\xcd", 0x00002551 => "\xba", 0x00002552 => "\xd5", 0x00002553 => "\xd6", 0x00002554 => "\xc9", 0x00002555 => "\xb8", 0x00002556 => "\xb7", 0x00002557 => "\xbb", 0x00002558 => "\xd4", 0x00002559 => "\xd3", 0x0000255a => "\xc8", 0x0000255b => "\xbe", 0x0000255c => "\xbd", 0x0000255d => "\xbc", 0x0000255e => "\xc6", 0x0000255f => "\xc7", 0x00002560 => "\xcc", 0x00002561 => "\xb5", 0x00002562 => "\xb6", 0x00002563 => "\xb9", 0x00002564 => "\xd1", 0x00002565 => "\xd2", 0x00002566 => "\xcb", 0x00002567 => "\xcf", 0x00002568 => "\xd0", 0x00002569 => "\xca", 0x0000256a => "\xd8", 0x0000256b => "\xd7", 0x0000256c => "\xce", 0x00002580 => "\xdf", 0x00002584 => "\xdc", 0x00002588 => "\xdb", 0x0000258c => "\xdd", 0x00002590 => "\xde", 0x00002591 => "\xb0", 0x00002592 => "\xb1", 0x00002593 => "\xb2", 0x000025a0 => "\xfe", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM437 - Conversion routines for IBM437 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM437. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP437 alias 437 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 84 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 86 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 8B | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 8C | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 8D | 000000EC | LATIN SMALL LETTER I WITH GRAVE 8E | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 8F | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 90 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 91 | 000000E6 | LATIN SMALL LETTER AE 92 | 000000C6 | LATIN CAPITAL LETTER AE 93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX 94 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 95 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE 96 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX 97 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 98 | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS 99 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 9B | 000000A2 | CENT SIGN 9C | 000000A3 | POUND SIGN 9D | 000000A5 | YEN SIGN 9E | 000020A7 | PESETA SIGN 9F | 00000192 | LATIN SMALL LETTER F WITH HOOK A0 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE A1 | 000000ED | LATIN SMALL LETTER I WITH ACUTE A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE A4 | 000000F1 | LATIN SMALL LETTER N WITH TILDE A5 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE A6 | 000000AA | FEMININE ORDINAL INDICATOR A7 | 000000BA | MASCULINE ORDINAL INDICATOR A8 | 000000BF | INVERTED QUESTION MARK A9 | 00002310 | REVERSED NOT SIGN AA | 000000AC | NOT SIGN AB | 000000BD | VULGAR FRACTION ONE HALF AC | 000000BC | VULGAR FRACTION ONE QUARTER AD | 000000A1 | INVERTED EXCLAMATION MARK AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK B0 | 00002591 | LIGHT SHADE B1 | 00002592 | MEDIUM SHADE B2 | 00002593 | DARK SHADE B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT B5 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE B6 | 00002562 | BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE B7 | 00002556 | BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE B8 | 00002555 | BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT BD | 0000255C | BOX DRAWINGS UP DOUBLE AND LEFT SINGLE BE | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL C6 | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE C7 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL CF | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE D0 | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE D1 | 00002564 | BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE D2 | 00002565 | BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE D3 | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE D4 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE D5 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE D6 | 00002553 | BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE D7 | 0000256B | BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE D8 | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT DB | 00002588 | FULL BLOCK DC | 00002584 | LOWER HALF BLOCK DD | 0000258C | LEFT HALF BLOCK DE | 00002590 | RIGHT HALF BLOCK DF | 00002580 | UPPER HALF BLOCK E0 | 000003B1 | GREEK SMALL LETTER ALPHA E1 | 000000DF | LATIN SMALL LETTER SHARP S (German) E2 | 00000393 | GREEK CAPITAL LETTER GAMMA E3 | 000003C0 | GREEK SMALL LETTER PI E4 | 000003A3 | GREEK CAPITAL LETTER SIGMA E5 | 000003C3 | GREEK SMALL LETTER SIGMA E6 | 000000B5 | MICRO SIGN E7 | 000003C4 | GREEK SMALL LETTER TAU E8 | 000003A6 | GREEK CAPITAL LETTER PHI E9 | 00000398 | GREEK CAPITAL LETTER THETA EA | 000003A9 | GREEK CAPITAL LETTER OMEGA EB | 000003B4 | GREEK SMALL LETTER DELTA EC | 0000221E | INFINITY ED | 000003C6 | GREEK SMALL LETTER PHI EE | 000003B5 | GREEK SMALL LETTER EPSILON EF | 00002229 | INTERSECTION F0 | 00002261 | IDENTICAL TO F1 | 000000B1 | PLUS-MINUS SIGN F2 | 00002265 | GREATER-THAN OR EQUAL TO F3 | 00002264 | LESS-THAN OR EQUAL TO F4 | 00002320 | TOP HALF INTEGRAL F5 | 00002321 | BOTTOM HALF INTEGRAL F6 | 000000F7 | DIVISION SIGN F7 | 00002248 | ALMOST EQUAL TO F8 | 000000B0 | DEGREE SIGN F9 | 00002219 | BULLET OPERATOR FA | 000000B7 | MIDDLE DOT FB | 0000221A | SQUARE ROOT FC | 0000207F | SUPERSCRIPT LATIN SMALL LETTER N FD | 000000B2 | SUPERSCRIPT TWO FE | 000025A0 | BLACK SQUARE FF | 000000A0 | NO-BREAK SPACE =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]8yjjRecodeData/IBM285.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM285. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM285; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x0024, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x00a3, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x203e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x005b, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x005d, 0x007e, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xc2\xa0", "\xc3\xa2", "\xc3\xa4", "\xc3\xa0", "\xc3\xa1", "\xc3\xa3", "\xc3\xa5", "\xc3\xa7", "\xc3\xb1", "\x24", "\x2e", "\x3c", "\x28", "\x2b", "\x7c", "\x26", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xa8", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc3\xac", "\xc3\x9f", "\x21", "\xc2\xa3", "\x2a", "\x29", "\x3b", "\xc2\xac", "\x2d", "\x2f", "\xc3\x82", "\xc3\x84", "\xc3\x80", "\xc3\x81", "\xc3\x83", "\xc3\x85", "\xc3\x87", "\xc3\x91", "\xc2\xa6", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xc3\xb8", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x88", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x8c", "\x60", "\x3a", "\x23", "\x40", "\x27", "\x3d", "\x22", "\xc3\x98", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xc2\xab", "\xc2\xbb", "\xc3\xb0", "\xc3\xbd", "\xc3\xbe", "\xc2\xb1", "\xc2\xb0", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xc2\xaa", "\xc2\xba", "\xc3\xa6", "\xc2\xb8", "\xc3\x86", "\xc2\xa4", "\xc2\xb5", "\xe2\x80\xbe", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xc2\xa1", "\xc2\xbf", "\xc3\x90", "\xc3\x9d", "\xc3\x9e", "\xc2\xae", "\xc2\xa2", "\x5b", "\xc2\xa5", "\xc2\xb7", "\xc2\xa9", "\xc2\xa7", "\xc2\xb6", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\x5e", "\x5d", "\x7e", "\xc2\xa8", "\xc2\xb4", "\xc3\x97", "\x7b", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xc2\xad", "\xc3\xb4", "\xc3\xb6", "\xc3\xb2", "\xc3\xb3", "\xc3\xb5", "\x7d", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xc2\xb9", "\xc3\xbb", "\xc3\xbc", "\xc3\xb9", "\xc3\xba", "\xc3\xbf", "\x5c", "\xc3\xb7", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xc2\xb2", "\xc3\x94", "\xc3\x96", "\xc3\x92", "\xc3\x93", "\xc3\x95", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xc2\xb3", "\xc3\x9b", "\xc3\x9c", "\xc3\x99", "\xc3\x9a", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x5a", 0x00000022 => "\x7f", 0x00000023 => "\x7b", 0x00000024 => "\x4a", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\x7c", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\xb1", 0x0000005c => "\xe0", 0x0000005d => "\xbb", 0x0000005e => "\xba", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\xc0", 0x0000007c => "\x4f", 0x0000007d => "\xd0", 0x0000007e => "\xbc", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a0 => "\x41", 0x000000a1 => "\xaa", 0x000000a2 => "\xb0", 0x000000a3 => "\x5b", 0x000000a4 => "\x9f", 0x000000a5 => "\xb2", 0x000000a6 => "\x6a", 0x000000a7 => "\xb5", 0x000000a8 => "\xbd", 0x000000a9 => "\xb4", 0x000000aa => "\x9a", 0x000000ab => "\x8a", 0x000000ac => "\x5f", 0x000000ad => "\xca", 0x000000ae => "\xaf", 0x000000b0 => "\x90", 0x000000b1 => "\x8f", 0x000000b2 => "\xea", 0x000000b3 => "\xfa", 0x000000b4 => "\xbe", 0x000000b5 => "\xa0", 0x000000b6 => "\xb6", 0x000000b7 => "\xb3", 0x000000b8 => "\x9d", 0x000000b9 => "\xda", 0x000000ba => "\x9b", 0x000000bb => "\x8b", 0x000000bc => "\xb7", 0x000000bd => "\xb8", 0x000000be => "\xb9", 0x000000bf => "\xab", 0x000000c0 => "\x64", 0x000000c1 => "\x65", 0x000000c2 => "\x62", 0x000000c3 => "\x66", 0x000000c4 => "\x63", 0x000000c5 => "\x67", 0x000000c6 => "\x9e", 0x000000c7 => "\x68", 0x000000c8 => "\x74", 0x000000c9 => "\x71", 0x000000ca => "\x72", 0x000000cb => "\x73", 0x000000cc => "\x78", 0x000000cd => "\x75", 0x000000ce => "\x76", 0x000000cf => "\x77", 0x000000d0 => "\xac", 0x000000d1 => "\x69", 0x000000d2 => "\xed", 0x000000d3 => "\xee", 0x000000d4 => "\xeb", 0x000000d5 => "\xef", 0x000000d6 => "\xec", 0x000000d7 => "\xbf", 0x000000d8 => "\x80", 0x000000d9 => "\xfd", 0x000000da => "\xfe", 0x000000db => "\xfb", 0x000000dc => "\xfc", 0x000000dd => "\xad", 0x000000de => "\xae", 0x000000df => "\x59", 0x000000e0 => "\x44", 0x000000e1 => "\x45", 0x000000e2 => "\x42", 0x000000e3 => "\x46", 0x000000e4 => "\x43", 0x000000e5 => "\x47", 0x000000e6 => "\x9c", 0x000000e7 => "\x48", 0x000000e8 => "\x54", 0x000000e9 => "\x51", 0x000000ea => "\x52", 0x000000eb => "\x53", 0x000000ec => "\x58", 0x000000ed => "\x55", 0x000000ee => "\x56", 0x000000ef => "\x57", 0x000000f0 => "\x8c", 0x000000f1 => "\x49", 0x000000f2 => "\xcd", 0x000000f3 => "\xce", 0x000000f4 => "\xcb", 0x000000f5 => "\xcf", 0x000000f6 => "\xcc", 0x000000f7 => "\xe1", 0x000000f8 => "\x70", 0x000000f9 => "\xdd", 0x000000fa => "\xde", 0x000000fb => "\xdb", 0x000000fc => "\xdc", 0x000000fd => "\x8d", 0x000000fe => "\x8e", 0x000000ff => "\xdf", 0x0000203e => "\xa1", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM285 - Conversion routines for IBM285 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM285. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP285 alias EBCDIC-CP-GB Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 41 | 000000A0 | NO-BREAK SPACE 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE 47 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE 4A | 00000024 | DOLLAR SIGN 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 0000007C | VERTICAL LINE 50 | 00000026 | AMPERSAND 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE 59 | 000000DF | LATIN SMALL LETTER SHARP S (German) 5A | 00000021 | EXCLAMATION MARK 5B | 000000A3 | POUND SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 000000AC | NOT SIGN 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE 67 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 6A | 000000A6 | BROKEN BAR 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 00000023 | NUMBER SIGN 7C | 00000040 | COMMERCIAL AT 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic) 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE 8E | 000000FE | LATIN SMALL LETTER THORN (Icelandic) 8F | 000000B1 | PLUS-MINUS SIGN 90 | 000000B0 | DEGREE SIGN 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R 9A | 000000AA | FEMININE ORDINAL INDICATOR 9B | 000000BA | MASCULINE ORDINAL INDICATOR 9C | 000000E6 | LATIN SMALL LETTER AE 9D | 000000B8 | CEDILLA 9E | 000000C6 | LATIN CAPITAL LETTER AE 9F | 000000A4 | CURRENCY SIGN A0 | 000000B5 | MICRO SIGN A1 | 0000203E | OVERLINE A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z AA | 000000A1 | INVERTED EXCLAMATION MARK AB | 000000BF | INVERTED QUESTION MARK AC | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic) AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE AE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic) AF | 000000AE | REGISTERED SIGN B0 | 000000A2 | CENT SIGN B1 | 0000005B | LEFT SQUARE BRACKET B2 | 000000A5 | YEN SIGN B3 | 000000B7 | MIDDLE DOT B4 | 000000A9 | COPYRIGHT SIGN B5 | 000000A7 | SECTION SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000BC | VULGAR FRACTION ONE QUARTER B8 | 000000BD | VULGAR FRACTION ONE HALF B9 | 000000BE | VULGAR FRACTION THREE QUARTERS BA | 0000005E | CIRCUMFLEX ACCENT BB | 0000005D | RIGHT SQUARE BRACKET BC | 0000007E | TILDE BD | 000000A8 | DIAERESIS BE | 000000B4 | ACUTE ACCENT BF | 000000D7 | MULTIPLICATION SIGN C0 | 0000007B | LEFT CURLY BRACKET C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I CA | 000000AD | SOFT HYPHEN CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX CC | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE D0 | 0000007D | RIGHT CURLY BRACKET D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R DA | 000000B9 | SUPERSCRIPT ONE DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX DC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS E0 | 0000005C | REVERSE SOLIDUS E1 | 000000F7 | DIVISION SIGN E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z EA | 000000B2 | SUPERSCRIPT TWO EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX EC | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FA | 000000B3 | SUPERSCRIPT THREE FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]UhhRecodeData/IBM869.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM869. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM869; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0386, 0xfffd, 0x00b7, 0x00ac, 0x00a6, 0x2018, 0x2019, 0x0388, 0x2015, 0x0389, 0x038a, 0x03aa, 0x038c, 0xfffd, 0xfffd, 0x038e, 0x03ab, 0x00a9, 0x038f, 0x00b2, 0x00b3, 0x03ac, 0x00a3, 0x03ad, 0x03ae, 0x03af, 0x03ca, 0x0390, 0x03cc, 0x03cd, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x00bd, 0x0398, 0x0399, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039a, 0x039b, 0x039c, 0x039d, 0x2563, 0x2551, 0x2557, 0x255d, 0x039e, 0x039f, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x03a0, 0x03a1, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03b1, 0x03b2, 0x03b3, 0x2518, 0x250c, 0x2588, 0x2584, 0x03b4, 0x03b5, 0x2580, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c2, 0x03c4, 0x0384, 0x00ad, 0x00b1, 0x03c5, 0x03c6, 0x03c7, 0x00a7, 0x03c8, 0x0385, 0x00b0, 0x00a8, 0x03c9, 0x03cb, 0x03b0, 0x03ce, 0x25a0, 0x00a0, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xce\x86", "\xef\xbf\xbd", "\xc2\xb7", "\xc2\xac", "\xc2\xa6", "\xe2\x80\x98", "\xe2\x80\x99", "\xce\x88", "\xe2\x80\x95", "\xce\x89", "\xce\x8a", "\xce\xaa", "\xce\x8c", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xce\x8e", "\xce\xab", "\xc2\xa9", "\xce\x8f", "\xc2\xb2", "\xc2\xb3", "\xce\xac", "\xc2\xa3", "\xce\xad", "\xce\xae", "\xce\xaf", "\xcf\x8a", "\xce\x90", "\xcf\x8c", "\xcf\x8d", "\xce\x91", "\xce\x92", "\xce\x93", "\xce\x94", "\xce\x95", "\xce\x96", "\xce\x97", "\xc2\xbd", "\xce\x98", "\xce\x99", "\xc2\xab", "\xc2\xbb", "\xe2\x96\x91", "\xe2\x96\x92", "\xe2\x96\x93", "\xe2\x94\x82", "\xe2\x94\xa4", "\xce\x9a", "\xce\x9b", "\xce\x9c", "\xce\x9d", "\xe2\x95\xa3", "\xe2\x95\x91", "\xe2\x95\x97", "\xe2\x95\x9d", "\xce\x9e", "\xce\x9f", "\xe2\x94\x90", "\xe2\x94\x94", "\xe2\x94\xb4", "\xe2\x94\xac", "\xe2\x94\x9c", "\xe2\x94\x80", "\xe2\x94\xbc", "\xce\xa0", "\xce\xa1", "\xe2\x95\x9a", "\xe2\x95\x94", "\xe2\x95\xa9", "\xe2\x95\xa6", "\xe2\x95\xa0", "\xe2\x95\x90", "\xe2\x95\xac", "\xce\xa3", "\xce\xa4", "\xce\xa5", "\xce\xa6", "\xce\xa7", "\xce\xa8", "\xce\xa9", "\xce\xb1", "\xce\xb2", "\xce\xb3", "\xe2\x94\x98", "\xe2\x94\x8c", "\xe2\x96\x88", "\xe2\x96\x84", "\xce\xb4", "\xce\xb5", "\xe2\x96\x80", "\xce\xb6", "\xce\xb7", "\xce\xb8", "\xce\xb9", "\xce\xba", "\xce\xbb", "\xce\xbc", "\xce\xbd", "\xce\xbe", "\xce\xbf", "\xcf\x80", "\xcf\x81", "\xcf\x83", "\xcf\x82", "\xcf\x84", "\xce\x84", "\xc2\xad", "\xc2\xb1", "\xcf\x85", "\xcf\x86", "\xcf\x87", "\xc2\xa7", "\xcf\x88", "\xce\x85", "\xc2\xb0", "\xc2\xa8", "\xcf\x89", "\xcf\x8b", "\xce\xb0", "\xcf\x8e", "\xe2\x96\xa0", "\xc2\xa0", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xff", 0x000000a3 => "\x9c", 0x000000a6 => "\x8a", 0x000000a7 => "\xf5", 0x000000a8 => "\xf9", 0x000000a9 => "\x97", 0x000000ab => "\xae", 0x000000ac => "\x89", 0x000000ad => "\xf0", 0x000000b0 => "\xf8", 0x000000b1 => "\xf1", 0x000000b2 => "\x99", 0x000000b3 => "\x9a", 0x000000b7 => "\x88", 0x000000bb => "\xaf", 0x000000bd => "\xab", 0x00000384 => "\xef", 0x00000385 => "\xf7", 0x00000386 => "\x86", 0x00000388 => "\x8d", 0x00000389 => "\x8f", 0x0000038a => "\x90", 0x0000038c => "\x92", 0x0000038e => "\x95", 0x0000038f => "\x98", 0x00000390 => "\xa1", 0x00000391 => "\xa4", 0x00000392 => "\xa5", 0x00000393 => "\xa6", 0x00000394 => "\xa7", 0x00000395 => "\xa8", 0x00000396 => "\xa9", 0x00000397 => "\xaa", 0x00000398 => "\xac", 0x00000399 => "\xad", 0x0000039a => "\xb5", 0x0000039b => "\xb6", 0x0000039c => "\xb7", 0x0000039d => "\xb8", 0x0000039e => "\xbd", 0x0000039f => "\xbe", 0x000003a0 => "\xc6", 0x000003a1 => "\xc7", 0x000003a3 => "\xcf", 0x000003a4 => "\xd0", 0x000003a5 => "\xd1", 0x000003a6 => "\xd2", 0x000003a7 => "\xd3", 0x000003a8 => "\xd4", 0x000003a9 => "\xd5", 0x000003aa => "\x91", 0x000003ab => "\x96", 0x000003ac => "\x9b", 0x000003ad => "\x9d", 0x000003ae => "\x9e", 0x000003af => "\x9f", 0x000003b0 => "\xfc", 0x000003b1 => "\xd6", 0x000003b2 => "\xd7", 0x000003b3 => "\xd8", 0x000003b4 => "\xdd", 0x000003b5 => "\xde", 0x000003b6 => "\xe0", 0x000003b7 => "\xe1", 0x000003b8 => "\xe2", 0x000003b9 => "\xe3", 0x000003ba => "\xe4", 0x000003bb => "\xe5", 0x000003bc => "\xe6", 0x000003bd => "\xe7", 0x000003be => "\xe8", 0x000003bf => "\xe9", 0x000003c0 => "\xea", 0x000003c1 => "\xeb", 0x000003c2 => "\xed", 0x000003c3 => "\xec", 0x000003c4 => "\xee", 0x000003c5 => "\xf2", 0x000003c6 => "\xf3", 0x000003c7 => "\xf4", 0x000003c8 => "\xf6", 0x000003c9 => "\xfa", 0x000003ca => "\xa0", 0x000003cb => "\xfb", 0x000003cc => "\xa2", 0x000003cd => "\xa3", 0x000003ce => "\xfd", 0x00002015 => "\x8e", 0x00002018 => "\x8b", 0x00002019 => "\x8c", 0x00002500 => "\xc4", 0x00002502 => "\xb3", 0x0000250c => "\xda", 0x00002510 => "\xbf", 0x00002514 => "\xc0", 0x00002518 => "\xd9", 0x0000251c => "\xc3", 0x00002524 => "\xb4", 0x0000252c => "\xc2", 0x00002534 => "\xc1", 0x0000253c => "\xc5", 0x00002550 => "\xcd", 0x00002551 => "\xba", 0x00002554 => "\xc9", 0x00002557 => "\xbb", 0x0000255a => "\xc8", 0x0000255d => "\xbc", 0x00002560 => "\xcc", 0x00002563 => "\xb9", 0x00002566 => "\xcb", 0x00002569 => "\xca", 0x0000256c => "\xce", 0x00002580 => "\xdf", 0x00002584 => "\xdc", 0x00002588 => "\xdb", 0x00002591 => "\xb0", 0x00002592 => "\xb1", 0x00002593 => "\xb2", 0x000025a0 => "\xfe", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM869 - Conversion routines for IBM869 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM869. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM Keyboard layouts and code pages, PN 07G4586 June 1991 alias CP869 alias 869 alias CP-GR Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 86 | 00000386 | GREEK CAPITAL LETTER ALPHA WITH TONOS 88 | 000000B7 | MIDDLE DOT 89 | 000000AC | NOT SIGN 8A | 000000A6 | BROKEN BAR 8B | 00002018 | LEFT SINGLE QUOTATION MARK 8C | 00002019 | RIGHT SINGLE QUOTATION MARK 8D | 00000388 | GREEK CAPITAL LETTER EPSILON WITH TONOS 8E | 00002015 | HORIZONTAL BAR 8F | 00000389 | GREEK CAPITAL LETTER ETA WITH TONOS 90 | 0000038A | GREEK CAPITAL LETTER IOTA WITH TONOS 91 | 000003AA | GREEK CAPITAL LETTER IOTA WITH DIALYTIKA 92 | 0000038C | GREEK CAPITAL LETTER OMICRON WITH TONOS 95 | 0000038E | GREEK CAPITAL LETTER UPSILON WITH TONOS 96 | 000003AB | GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA 97 | 000000A9 | COPYRIGHT SIGN 98 | 0000038F | GREEK CAPITAL LETTER OMEGA WITH TONOS 99 | 000000B2 | SUPERSCRIPT TWO 9A | 000000B3 | SUPERSCRIPT THREE 9B | 000003AC | GREEK SMALL LETTER ALPHA WITH TONOS 9C | 000000A3 | POUND SIGN 9D | 000003AD | GREEK SMALL LETTER EPSILON WITH TONOS 9E | 000003AE | GREEK SMALL LETTER ETA WITH TONOS 9F | 000003AF | GREEK SMALL LETTER IOTA WITH TONOS A0 | 000003CA | GREEK SMALL LETTER IOTA WITH DIALYTIKA A1 | 00000390 | GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS A2 | 000003CC | GREEK SMALL LETTER OMICRON WITH TONOS A3 | 000003CD | GREEK SMALL LETTER UPSILON WITH TONOS A4 | 00000391 | GREEK CAPITAL LETTER ALPHA A5 | 00000392 | GREEK CAPITAL LETTER BETA A6 | 00000393 | GREEK CAPITAL LETTER GAMMA A7 | 00000394 | GREEK CAPITAL LETTER DELTA A8 | 00000395 | GREEK CAPITAL LETTER EPSILON A9 | 00000396 | GREEK CAPITAL LETTER ZETA AA | 00000397 | GREEK CAPITAL LETTER ETA AB | 000000BD | VULGAR FRACTION ONE HALF AC | 00000398 | GREEK CAPITAL LETTER THETA AD | 00000399 | GREEK CAPITAL LETTER IOTA AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK B0 | 00002591 | LIGHT SHADE B1 | 00002592 | MEDIUM SHADE B2 | 00002593 | DARK SHADE B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT B5 | 0000039A | GREEK CAPITAL LETTER KAPPA B6 | 0000039B | GREEK CAPITAL LETTER LAMDA B7 | 0000039C | GREEK CAPITAL LETTER MU B8 | 0000039D | GREEK CAPITAL LETTER NU B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT BD | 0000039E | GREEK CAPITAL LETTER XI BE | 0000039F | GREEK CAPITAL LETTER OMICRON BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL C6 | 000003A0 | GREEK CAPITAL LETTER PI C7 | 000003A1 | GREEK CAPITAL LETTER RHO C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL CF | 000003A3 | GREEK CAPITAL LETTER SIGMA D0 | 000003A4 | GREEK CAPITAL LETTER TAU D1 | 000003A5 | GREEK CAPITAL LETTER UPSILON D2 | 000003A6 | GREEK CAPITAL LETTER PHI D3 | 000003A7 | GREEK CAPITAL LETTER CHI D4 | 000003A8 | GREEK CAPITAL LETTER PSI D5 | 000003A9 | GREEK CAPITAL LETTER OMEGA D6 | 000003B1 | GREEK SMALL LETTER ALPHA D7 | 000003B2 | GREEK SMALL LETTER BETA D8 | 000003B3 | GREEK SMALL LETTER GAMMA D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT DB | 00002588 | FULL BLOCK DC | 00002584 | LOWER HALF BLOCK DD | 000003B4 | GREEK SMALL LETTER DELTA DE | 000003B5 | GREEK SMALL LETTER EPSILON DF | 00002580 | UPPER HALF BLOCK E0 | 000003B6 | GREEK SMALL LETTER ZETA E1 | 000003B7 | GREEK SMALL LETTER ETA E2 | 000003B8 | GREEK SMALL LETTER THETA E3 | 000003B9 | GREEK SMALL LETTER IOTA E4 | 000003BA | GREEK SMALL LETTER KAPPA E5 | 000003BB | GREEK SMALL LETTER LAMDA E6 | 000003BC | GREEK SMALL LETTER MU E7 | 000003BD | GREEK SMALL LETTER NU E8 | 000003BE | GREEK SMALL LETTER XI E9 | 000003BF | GREEK SMALL LETTER OMICRON EA | 000003C0 | GREEK SMALL LETTER PI EB | 000003C1 | GREEK SMALL LETTER RHO EC | 000003C3 | GREEK SMALL LETTER SIGMA ED | 000003C2 | GREEK SMALL LETTER FINAL SIGMA EE | 000003C4 | GREEK SMALL LETTER TAU EF | 00000384 | GREEK TONOS F0 | 000000AD | SOFT HYPHEN F1 | 000000B1 | PLUS-MINUS SIGN F2 | 000003C5 | GREEK SMALL LETTER UPSILON F3 | 000003C6 | GREEK SMALL LETTER PHI F4 | 000003C7 | GREEK SMALL LETTER CHI F5 | 000000A7 | SECTION SIGN F6 | 000003C8 | GREEK SMALL LETTER PSI F7 | 00000385 | GREEK DIALYTIKA TONOS F8 | 000000B0 | DEGREE SIGN F9 | 000000A8 | DIAERESIS FA | 000003C9 | GREEK SMALL LETTER OMEGA FB | 000003CB | GREEK SMALL LETTER UPSILON WITH DIALYTIKA FC | 000003B0 | GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS FD | 000003CE | GREEK SMALL LETTER OMEGA WITH TONOS FE | 000025A0 | BLACK SQUARE FF | 000000A0 | NO-BREAK SPACE =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]Q4_C_CRecodeData/ISO_8859_1.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ISO-8859-1. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ISO_8859_1; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); use constant TO_UTF8 => [ "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\xc2\x85", "\xc2\x86", "\xc2\x87", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\xc2\x8d", "\xc2\x8e", "\xc2\x8f", "\xc2\x90", "\xc2\x91", "\xc2\x92", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\xc2\x97", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\xc2\x9c", "\xc2\x9d", "\xc2\x9e", "\xc2\x9f", "\xc2\xa0", "\xc2\xa1", "\xc2\xa2", "\xc2\xa3", "\xc2\xa4", "\xc2\xa5", "\xc2\xa6", "\xc2\xa7", "\xc2\xa8", "\xc2\xa9", "\xc2\xaa", "\xc2\xab", "\xc2\xac", "\xc2\xad", "\xc2\xae", "\xc2\xaf", "\xc2\xb0", "\xc2\xb1", "\xc2\xb2", "\xc2\xb3", "\xc2\xb4", "\xc2\xb5", "\xc2\xb6", "\xc2\xb7", "\xc2\xb8", "\xc2\xb9", "\xc2\xba", "\xc2\xbb", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\xc2\xbf", "\xc3\x80", "\xc3\x81", "\xc3\x82", "\xc3\x83", "\xc3\x84", "\xc3\x85", "\xc3\x86", "\xc3\x87", "\xc3\x88", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x8c", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x90", "\xc3\x91", "\xc3\x92", "\xc3\x93", "\xc3\x94", "\xc3\x95", "\xc3\x96", "\xc3\x97", "\xc3\x98", "\xc3\x99", "\xc3\x9a", "\xc3\x9b", "\xc3\x9c", "\xc3\x9d", "\xc3\x9e", "\xc3\x9f", "\xc3\xa0", "\xc3\xa1", "\xc3\xa2", "\xc3\xa3", "\xc3\xa4", "\xc3\xa5", "\xc3\xa6", "\xc3\xa7", "\xc3\xa8", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xac", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc3\xb0", "\xc3\xb1", "\xc3\xb2", "\xc3\xb3", "\xc3\xb4", "\xc3\xb5", "\xc3\xb6", "\xc3\xb7", "\xc3\xb8", "\xc3\xb9", "\xc3\xba", "\xc3\xbb", "\xc3\xbc", "\xc3\xbd", "\xc3\xbe", "\xc3\xbf", ]; sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { # FIXME: Maybe the lookup is cheaper than the call to chr(). $_[1] = join '', map $_ > 255 ? "\x3f" : chr $_, @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8') { $_[1] = join '', map TO_UTF8->[$_], unpack 'C*', $_[1]; } else { $_[1] = [ unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ISO_8859_1 - Conversion routines for ISO-8859-1 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module contains the conversion tables and routines for ISO-8859-1. =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000080 | PADDING CHARACTER (PAD) 81 | 00000081 | HIGH OCTET PRESET (HOP) 82 | 00000082 | BREAK PERMITTED HERE (BPH) 83 | 00000083 | NO BREAK HERE (NBH) 84 | 00000084 | INDEX (IND) 85 | 00000085 | NEXT LINE (NEL) 86 | 00000086 | START OF SELECTED AREA (SSA) 87 | 00000087 | END OF SELECTED AREA (ESA) 88 | 00000088 | CHARACTER TABULATION SET (HTS) 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 8A | 0000008A | LINE TABULATION SET (VTS) 8B | 0000008B | PARTIAL LINE FORWARD (PLD) 8C | 0000008C | PARTIAL LINE BACKWARD (PLU) 8D | 0000008D | REVERSE LINE FEED (RI) 8E | 0000008E | SINGLE-SHIFT TWO (SS2) 8F | 0000008F | SINGLE-SHIFT THREE (SS3) 90 | 00000090 | DEVICE CONTROL STRING (DCS) 91 | 00000091 | PRIVATE USE ONE (PU1) 92 | 00000092 | PRIVATE USE TWO (PU2) 93 | 00000093 | SET TRANSMIT STATE (STS) 94 | 00000094 | CANCEL CHARACTER (CCH) 95 | 00000095 | MESSAGE WAITING (MW) 96 | 00000096 | START OF GUARDED AREA (SPA) 97 | 00000097 | END OF GUARDED AREA (EPA) 98 | 00000098 | START OF STRING (SOS) 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 9C | 0000009C | STRING TERMINATOR (ST) 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC) 9E | 0000009E | PRIVACY MESSAGE (PM) 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC) A0 | 000000A0 | NO-BREAK SPACE A1 | 000000A1 | INVERTED EXCLAMATION MARK A2 | 000000A2 | CENT SIGN A3 | 000000A3 | POUND SIGN A4 | 000000A4 | CURRENCY SIGN A5 | 000000A5 | YEN SIGN A6 | 000000A6 | BROKEN BAR A7 | 000000A7 | SECTION SIGN A8 | 000000A8 | DIAERESIS A9 | 000000A9 | COPYRIGHT SIGN AA | 000000AA | FEMININE ORDINAL INDICATOR AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AC | 000000AC | NOT SIGN AD | 000000AD | SOFT HYPHEN AE | 000000AE | REGISTERED SIGN AF | 000000AF | MACRON B0 | 000000B0 | DEGREE SIGN B1 | 000000B1 | PLUS-MINUS SIGN B2 | 000000B2 | SUPERSCRIPT TWO B3 | 000000B3 | SUPERSCRIPT THREE B4 | 000000B4 | ACUTE ACCENT B5 | 000000B5 | MICRO SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000B7 | MIDDLE DOT B8 | 000000B8 | CEDILLA B9 | 000000B9 | SUPERSCRIPT ONE BA | 000000BA | MASCULINE ORDINAL INDICATOR BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK BC | 000000BC | VULGAR FRACTION ONE QUARTER BD | 000000BD | VULGAR FRACTION ONE HALF BE | 000000BE | VULGAR FRACTION THREE QUARTERS BF | 000000BF | INVERTED QUESTION MARK C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE C6 | 000000C6 | LATIN CAPITAL LETTER AE C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS D0 | 000000D0 | LATIN CAPITAL LETTER ETH D1 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS D7 | 000000D7 | MULTIPLICATION SIGN D8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS DD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE DE | 000000DE | LATIN CAPITAL LETTER THORN DF | 000000DF | LATIN SMALL LETTER SHARP S E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE E6 | 000000E6 | LATIN SMALL LETTER AE E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS F0 | 000000F0 | LATIN SMALL LETTER ETH F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS F7 | 000000F7 | DIVISION SIGN F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE FE | 000000FE | LATIN SMALL LETTER THORN FF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]2RGGRecodeData/ISO_5428.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ISO_5428. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ISO_5428; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0xe002, 0xe003, 0xe009, 0xe005, 0xe012, 0xe013, 0xe014, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00ab, 0x00bb, 0x201d, 0x201c, 0x0374, 0x0375, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00b7, 0xfffd, 0xfffd, 0xfffd, 0x003b, 0xfffd, 0x0391, 0x0392, 0xfffd, 0x0393, 0x0394, 0x0395, 0x03da, 0x03dc, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03de, 0x03a1, 0x03a3, 0xfffd, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03e0, 0xfffd, 0xfffd, 0x03b1, 0x03b2, 0x03d0, 0x03b3, 0x03b4, 0x03b5, 0xe01a, 0xe01b, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0xe01c, 0x03c1, 0x03c3, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0xe01d, 0x007f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\xee\x80\x82", "\xee\x80\x83", "\xee\x80\x89", "\xee\x80\x85", "\xee\x80\x92", "\xee\x80\x93", "\xee\x80\x94", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xab", "\xc2\xbb", "\xe2\x80\x9d", "\xe2\x80\x9c", "\xcd\xb4", "\xcd\xb5", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xb7", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x3b", "\xef\xbf\xbd", "\xce\x91", "\xce\x92", "\xef\xbf\xbd", "\xce\x93", "\xce\x94", "\xce\x95", "\xcf\x9a", "\xcf\x9c", "\xce\x96", "\xce\x97", "\xce\x98", "\xce\x99", "\xce\x9a", "\xce\x9b", "\xce\x9c", "\xce\x9d", "\xce\x9e", "\xce\x9f", "\xce\xa0", "\xcf\x9e", "\xce\xa1", "\xce\xa3", "\xef\xbf\xbd", "\xce\xa4", "\xce\xa5", "\xce\xa6", "\xce\xa7", "\xce\xa8", "\xce\xa9", "\xcf\xa0", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xce\xb1", "\xce\xb2", "\xcf\x90", "\xce\xb3", "\xce\xb4", "\xce\xb5", "\xee\x80\x9a", "\xee\x80\x9b", "\xce\xb6", "\xce\xb7", "\xce\xb8", "\xce\xb9", "\xce\xba", "\xce\xbb", "\xce\xbc", "\xce\xbd", "\xce\xbe", "\xce\xbf", "\xcf\x80", "\xee\x80\x9c", "\xcf\x81", "\xcf\x83", "\xcf\x82", "\xcf\x84", "\xcf\x85", "\xcf\x86", "\xcf\x87", "\xcf\x88", "\xcf\x89", "\xee\x80\x9d", "\x7f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x0000003b => "\x3f", 0x0000007f => "\x7f", 0x000000ab => "\x30", 0x000000b7 => "\x3b", 0x000000bb => "\x31", 0x00000374 => "\x34", 0x00000375 => "\x35", 0x00000391 => "\x41", 0x00000392 => "\x42", 0x00000393 => "\x44", 0x00000394 => "\x45", 0x00000395 => "\x46", 0x00000396 => "\x49", 0x00000397 => "\x4a", 0x00000398 => "\x4b", 0x00000399 => "\x4c", 0x0000039a => "\x4d", 0x0000039b => "\x4e", 0x0000039c => "\x4f", 0x0000039d => "\x50", 0x0000039e => "\x51", 0x0000039f => "\x52", 0x000003a0 => "\x53", 0x000003a1 => "\x55", 0x000003a3 => "\x56", 0x000003a4 => "\x58", 0x000003a5 => "\x59", 0x000003a6 => "\x5a", 0x000003a7 => "\x5b", 0x000003a8 => "\x5c", 0x000003a9 => "\x5d", 0x000003b1 => "\x61", 0x000003b2 => "\x62", 0x000003b3 => "\x64", 0x000003b4 => "\x65", 0x000003b5 => "\x66", 0x000003b6 => "\x69", 0x000003b7 => "\x6a", 0x000003b8 => "\x6b", 0x000003b9 => "\x6c", 0x000003ba => "\x6d", 0x000003bb => "\x6e", 0x000003bc => "\x6f", 0x000003bd => "\x70", 0x000003be => "\x71", 0x000003bf => "\x72", 0x000003c0 => "\x73", 0x000003c1 => "\x75", 0x000003c2 => "\x77", 0x000003c3 => "\x76", 0x000003c4 => "\x78", 0x000003c5 => "\x79", 0x000003c6 => "\x7a", 0x000003c7 => "\x7b", 0x000003c8 => "\x7c", 0x000003c9 => "\x7d", 0x000003d0 => "\x63", 0x000003da => "\x47", 0x000003dc => "\x48", 0x000003de => "\x54", 0x000003e0 => "\x5e", 0x0000201c => "\x33", 0x0000201d => "\x32", 0x0000e002 => "\x21", 0x0000e003 => "\x22", 0x0000e005 => "\x24", 0x0000e009 => "\x23", 0x0000e012 => "\x25", 0x0000e013 => "\x26", 0x0000e014 => "\x27", 0x0000e01a => "\x67", 0x0000e01b => "\x68", 0x0000e01c => "\x74", 0x0000e01d => "\x7e", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ISO_5428 - Conversion routines for ISO_5428 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for ISO_5428. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: ECMA registry alias ISO-IR-55 alias ISO_5428:1980 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 0000E002 | NON-SPACING GRAVE ACCENT EISO-IR-103_C1E (not a real character) 22 | 0000E003 | NON-SPACING ACUTE ACCENT EISO-IR-103_C2E (not a real character) 23 | 0000E009 | NON-SPACING DIAERESIS EISO-IR-103_C8E (not a real character) 24 | 0000E005 | NON-SPACING TILDE EISO-IR-103_C4E (not a real character) 25 | 0000E012 | GREEK NON-SPACING PSILI PNEUMATA EISO-IR-55_25E (not a real character) 26 | 0000E013 | GREEK NON-SPACING DASIA PNEUMATA EISO-IR-55_26E (not a real character) 27 | 0000E014 | GREEK NON-SPACING IOTA BELOW EISO-IR-55_27E (not a real character) 30 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 31 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 32 | 0000201D | RIGHT DOUBLE QUOTATION MARK 33 | 0000201C | LEFT DOUBLE QUOTATION MARK 34 | 00000374 | GREEK NUMERAL SIGN (Dexia keraia) 35 | 00000375 | GREEK LOWER NUMERAL SIGN (Aristeri keraia) 3B | 000000B7 | MIDDLE DOT 3F | 0000003B | SEMICOLON 41 | 00000391 | GREEK CAPITAL LETTER ALPHA 42 | 00000392 | GREEK CAPITAL LETTER BETA 44 | 00000393 | GREEK CAPITAL LETTER GAMMA 45 | 00000394 | GREEK CAPITAL LETTER DELTA 46 | 00000395 | GREEK CAPITAL LETTER EPSILON 47 | 000003DA | GREEK LETTER STIGMA 48 | 000003DC | GREEK LETTER DIGAMMA 49 | 00000396 | GREEK CAPITAL LETTER ZETA 4A | 00000397 | GREEK CAPITAL LETTER ETA 4B | 00000398 | GREEK CAPITAL LETTER THETA 4C | 00000399 | GREEK CAPITAL LETTER IOTA 4D | 0000039A | GREEK CAPITAL LETTER KAPPA 4E | 0000039B | GREEK CAPITAL LETTER LAMDA 4F | 0000039C | GREEK CAPITAL LETTER MU 50 | 0000039D | GREEK CAPITAL LETTER NU 51 | 0000039E | GREEK CAPITAL LETTER XI 52 | 0000039F | GREEK CAPITAL LETTER OMICRON 53 | 000003A0 | GREEK CAPITAL LETTER PI 54 | 000003DE | GREEK LETTER KOPPA 55 | 000003A1 | GREEK CAPITAL LETTER RHO 56 | 000003A3 | GREEK CAPITAL LETTER SIGMA 58 | 000003A4 | GREEK CAPITAL LETTER TAU 59 | 000003A5 | GREEK CAPITAL LETTER UPSILON 5A | 000003A6 | GREEK CAPITAL LETTER PHI 5B | 000003A7 | GREEK CAPITAL LETTER CHI 5C | 000003A8 | GREEK CAPITAL LETTER PSI 5D | 000003A9 | GREEK CAPITAL LETTER OMEGA 5E | 000003E0 | GREEK LETTER SAMPI 61 | 000003B1 | GREEK SMALL LETTER ALPHA 62 | 000003B2 | GREEK SMALL LETTER BETA 63 | 000003D0 | GREEK BETA SYMBOL 64 | 000003B3 | GREEK SMALL LETTER GAMMA 65 | 000003B4 | GREEK SMALL LETTER DELTA 66 | 000003B5 | GREEK SMALL LETTER EPSILON 67 | 0000E01A | GREEK SMALL LETTER STIGMA EISO-IR-55_47E 68 | 0000E01B | GREEK SMALL LETTER DIGAMMA EISO-IR-55_48E 69 | 000003B6 | GREEK SMALL LETTER ZETA 6A | 000003B7 | GREEK SMALL LETTER ETA 6B | 000003B8 | GREEK SMALL LETTER THETA 6C | 000003B9 | GREEK SMALL LETTER IOTA 6D | 000003BA | GREEK SMALL LETTER KAPPA 6E | 000003BB | GREEK SMALL LETTER LAMDA 6F | 000003BC | GREEK SMALL LETTER MU 70 | 000003BD | GREEK SMALL LETTER NU 71 | 000003BE | GREEK SMALL LETTER XI 72 | 000003BF | GREEK SMALL LETTER OMICRON 73 | 000003C0 | GREEK SMALL LETTER PI 74 | 0000E01C | GREEK SMALL LETTER KOPPA EISO-IR-55_54E 75 | 000003C1 | GREEK SMALL LETTER RHO 76 | 000003C3 | GREEK SMALL LETTER SIGMA 77 | 000003C2 | GREEK SMALL LETTER FINAL SIGMA 78 | 000003C4 | GREEK SMALL LETTER TAU 79 | 000003C5 | GREEK SMALL LETTER UPSILON 7A | 000003C6 | GREEK SMALL LETTER PHI 7B | 000003C7 | GREEK SMALL LETTER CHI 7C | 000003C8 | GREEK SMALL LETTER PSI 7D | 000003C9 | GREEK SMALL LETTER OMEGA 7E | 0000E01D | GREEK SMALL LETTER SAMPI EISO-IR-55_5EE 7F | 0000007F | DELETE (DEL) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]& DdDdRecodeData/KOI8_T.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for KOI8-T. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::KOI8_T; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x049b, 0x0493, 0x201a, 0x0492, 0x201e, 0x2026, 0x2020, 0x2021, 0xfffd, 0x2030, 0x04b3, 0x2039, 0x04b2, 0x04b7, 0x04b6, 0xfffd, 0x049a, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0xfffd, 0x2122, 0xfffd, 0x203a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x04ef, 0x04ee, 0x0451, 0x00a4, 0x04e3, 0x00a6, 0x00a7, 0xfffd, 0xfffd, 0xfffd, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0xfffd, 0x00b0, 0x00b1, 0x00b2, 0x0401, 0xfffd, 0x04e2, 0x00b6, 0x00b7, 0xfffd, 0x2116, 0xfffd, 0x00bb, 0xfffd, 0xfffd, 0xfffd, 0x00a9, 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xd2\x9b", "\xd2\x93", "\xe2\x80\x9a", "\xd2\x92", "\xe2\x80\x9e", "\xe2\x80\xa6", "\xe2\x80\xa0", "\xe2\x80\xa1", "\xef\xbf\xbd", "\xe2\x80\xb0", "\xd2\xb3", "\xe2\x80\xb9", "\xd2\xb2", "\xd2\xb7", "\xd2\xb6", "\xef\xbf\xbd", "\xd2\x9a", "\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\xa2", "\xe2\x80\x93", "\xe2\x80\x94", "\xef\xbf\xbd", "\xe2\x84\xa2", "\xef\xbf\xbd", "\xe2\x80\xba", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd3\xaf", "\xd3\xae", "\xd1\x91", "\xc2\xa4", "\xd3\xa3", "\xc2\xa6", "\xc2\xa7", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xab", "\xc2\xac", "\xc2\xad", "\xc2\xae", "\xef\xbf\xbd", "\xc2\xb0", "\xc2\xb1", "\xc2\xb2", "\xd0\x81", "\xef\xbf\xbd", "\xd3\xa2", "\xc2\xb6", "\xc2\xb7", "\xef\xbf\xbd", "\xe2\x84\x96", "\xef\xbf\xbd", "\xc2\xbb", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa9", "\xd1\x8e", "\xd0\xb0", "\xd0\xb1", "\xd1\x86", "\xd0\xb4", "\xd0\xb5", "\xd1\x84", "\xd0\xb3", "\xd1\x85", "\xd0\xb8", "\xd0\xb9", "\xd0\xba", "\xd0\xbb", "\xd0\xbc", "\xd0\xbd", "\xd0\xbe", "\xd0\xbf", "\xd1\x8f", "\xd1\x80", "\xd1\x81", "\xd1\x82", "\xd1\x83", "\xd0\xb6", "\xd0\xb2", "\xd1\x8c", "\xd1\x8b", "\xd0\xb7", "\xd1\x88", "\xd1\x8d", "\xd1\x89", "\xd1\x87", "\xd1\x8a", "\xd0\xae", "\xd0\x90", "\xd0\x91", "\xd0\xa6", "\xd0\x94", "\xd0\x95", "\xd0\xa4", "\xd0\x93", "\xd0\xa5", "\xd0\x98", "\xd0\x99", "\xd0\x9a", "\xd0\x9b", "\xd0\x9c", "\xd0\x9d", "\xd0\x9e", "\xd0\x9f", "\xd0\xaf", "\xd0\xa0", "\xd0\xa1", "\xd0\xa2", "\xd0\xa3", "\xd0\x96", "\xd0\x92", "\xd0\xac", "\xd0\xab", "\xd0\x97", "\xd0\xa8", "\xd0\xad", "\xd0\xa9", "\xd0\xa7", "\xd0\xaa", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a4 => "\xa4", 0x000000a6 => "\xa6", 0x000000a7 => "\xa7", 0x000000a9 => "\xbf", 0x000000ab => "\xab", 0x000000ac => "\xac", 0x000000ad => "\xad", 0x000000ae => "\xae", 0x000000b0 => "\xb0", 0x000000b1 => "\xb1", 0x000000b2 => "\xb2", 0x000000b6 => "\xb6", 0x000000b7 => "\xb7", 0x000000bb => "\xbb", 0x00000401 => "\xb3", 0x00000410 => "\xe1", 0x00000411 => "\xe2", 0x00000412 => "\xf7", 0x00000413 => "\xe7", 0x00000414 => "\xe4", 0x00000415 => "\xe5", 0x00000416 => "\xf6", 0x00000417 => "\xfa", 0x00000418 => "\xe9", 0x00000419 => "\xea", 0x0000041a => "\xeb", 0x0000041b => "\xec", 0x0000041c => "\xed", 0x0000041d => "\xee", 0x0000041e => "\xef", 0x0000041f => "\xf0", 0x00000420 => "\xf2", 0x00000421 => "\xf3", 0x00000422 => "\xf4", 0x00000423 => "\xf5", 0x00000424 => "\xe6", 0x00000425 => "\xe8", 0x00000426 => "\xe3", 0x00000427 => "\xfe", 0x00000428 => "\xfb", 0x00000429 => "\xfd", 0x0000042a => "\xff", 0x0000042b => "\xf9", 0x0000042c => "\xf8", 0x0000042d => "\xfc", 0x0000042e => "\xe0", 0x0000042f => "\xf1", 0x00000430 => "\xc1", 0x00000431 => "\xc2", 0x00000432 => "\xd7", 0x00000433 => "\xc7", 0x00000434 => "\xc4", 0x00000435 => "\xc5", 0x00000436 => "\xd6", 0x00000437 => "\xda", 0x00000438 => "\xc9", 0x00000439 => "\xca", 0x0000043a => "\xcb", 0x0000043b => "\xcc", 0x0000043c => "\xcd", 0x0000043d => "\xce", 0x0000043e => "\xcf", 0x0000043f => "\xd0", 0x00000440 => "\xd2", 0x00000441 => "\xd3", 0x00000442 => "\xd4", 0x00000443 => "\xd5", 0x00000444 => "\xc6", 0x00000445 => "\xc8", 0x00000446 => "\xc3", 0x00000447 => "\xde", 0x00000448 => "\xdb", 0x00000449 => "\xdd", 0x0000044a => "\xdf", 0x0000044b => "\xd9", 0x0000044c => "\xd8", 0x0000044d => "\xdc", 0x0000044e => "\xc0", 0x0000044f => "\xd1", 0x00000451 => "\xa3", 0x00000492 => "\x83", 0x00000493 => "\x81", 0x0000049a => "\x90", 0x0000049b => "\x80", 0x000004b2 => "\x8c", 0x000004b3 => "\x8a", 0x000004b6 => "\x8e", 0x000004b7 => "\x8d", 0x000004e2 => "\xb5", 0x000004e3 => "\xa5", 0x000004ee => "\xa2", 0x000004ef => "\xa1", 0x00002013 => "\x96", 0x00002014 => "\x97", 0x00002018 => "\x91", 0x00002019 => "\x92", 0x0000201a => "\x82", 0x0000201c => "\x93", 0x0000201d => "\x94", 0x0000201e => "\x84", 0x00002020 => "\x86", 0x00002021 => "\x87", 0x00002022 => "\x95", 0x00002026 => "\x85", 0x00002030 => "\x89", 0x00002039 => "\x8b", 0x0000203a => "\x9b", 0x00002116 => "\xb9", 0x00002122 => "\x99", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::KOI8_T - Conversion routines for KOI8-T =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for KOI8-T. =head1 COMMENTS The following comments have been extracted from the original charmap: Author: Michael Davis Etajik_fonts@iname.comE URL: http://www.traveltajikistan.com/fonts Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL 01 | 00000001 | START OF HEADING 02 | 00000002 | START OF TEXT 03 | 00000003 | END OF TEXT 04 | 00000004 | END OF TRANSMISSION 05 | 00000005 | ENQUIRY 06 | 00000006 | ACKNOWLEDGE 07 | 00000007 | BELL 08 | 00000008 | BACKSPACE 09 | 00000009 | HORIZONTAL TABULATION 0A | 0000000A | LINE FEED 0B | 0000000B | VERTICAL TABULATION 0C | 0000000C | FORM FEED 0D | 0000000D | CARRIAGE RETURN 0E | 0000000E | SHIFT OUT 0F | 0000000F | SHIFT IN 10 | 00000010 | DATA LINK ESCAPE 11 | 00000011 | DEVICE CONTROL ONE 12 | 00000012 | DEVICE CONTROL TWO 13 | 00000013 | DEVICE CONTROL THREE 14 | 00000014 | DEVICE CONTROL FOUR 15 | 00000015 | NEGATIVE ACKNOWLEDGE 16 | 00000016 | SYNCHRONOUS IDLE 17 | 00000017 | END OF TRANSMISSION BLOCK 18 | 00000018 | CANCEL 19 | 00000019 | END OF MEDIUM 1A | 0000001A | SUBSTITUTE 1B | 0000001B | ESCAPE 1C | 0000001C | FILE SEPARATOR 1D | 0000001D | GROUP SEPARATOR 1E | 0000001E | RECORD SEPARATOR 1F | 0000001F | UNIT SEPARATOR 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE 80 | 0000049B | CYRILLIC SMALL LETTER KA WITH DESCENDER 81 | 00000493 | CYRILLIC SMALL LETTER GHE WITH STROKE 82 | 0000201A | SINGLE LOW-9 QUOTATION MARK 83 | 00000492 | CYRILLIC CAPITAL LETTER GHE WITH STROKE 84 | 0000201E | DOUBLE LOW-9 QUOTATION MARK 85 | 00002026 | HORIZONTAL ELLIPSIS 86 | 00002020 | DAGGER 87 | 00002021 | DOUBLE DAGGER 89 | 00002030 | PER MILLE SIGN 8A | 000004B3 | CYRILLIC SMALL LETTER HA WITH DESCENDER 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK 8C | 000004B2 | CYRILLIC CAPITAL LETTER HA WITH DESCENDER 8D | 000004B7 | CYRILLIC SMALL LETTER CHE WITH DESCENDER 8E | 000004B6 | CYRILLIC CAPITAL LETTER CHE WITH DESCENDER 90 | 0000049A | CYRILLIC CAPITAL LETTER KA WITH DESCENDER 91 | 00002018 | LEFT SINGLE QUOTATION MARK 92 | 00002019 | RIGHT SINGLE QUOTATION MARK 93 | 0000201C | LEFT DOUBLE QUOTATION MARK 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK 95 | 00002022 | BULLET 96 | 00002013 | EN DASH 97 | 00002014 | EM DASH 99 | 00002122 | TRADE MARK SIGN 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK A1 | 000004EF | CYRILLIC SMALL LETTER U WITH MACRON A2 | 000004EE | CYRILLIC CAPITAL LETTER U WITH MACRON A3 | 00000451 | CYRILLIC SMALL LETTER IO A4 | 000000A4 | CURRENCY SIGN A5 | 000004E3 | CYRILLIC SMALL LETTER I WITH MACRON A6 | 000000A6 | BROKEN BAR A7 | 000000A7 | SECTION SIGN AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AC | 000000AC | NOT SIGN AD | 000000AD | SOFT HYPHEN AE | 000000AE | REGISTERED SIGN B0 | 000000B0 | DEGREE SIGN B1 | 000000B1 | PLUS-MINUS SIGN B2 | 000000B2 | SUPERSCRIPT TWO B3 | 00000401 | CYRILLIC CAPITAL LETTER IE B5 | 000004E2 | CYRILLIC CAPITAL LETTER I WITH MACRON B6 | 000000B6 | PILCROW SIGN B7 | 000000B7 | MIDDLE DOT B9 | 00002116 | NUMERO SIGN BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK BF | 000000A9 | COPYRIGHT SIGN C0 | 0000044E | CYRILLIC SMALL LETTER YU C1 | 00000430 | CYRILLIC SMALL LETTER A C2 | 00000431 | CYRILLIC SMALL LETTER BE C3 | 00000446 | CYRILLIC SMALL LETTER TSE C4 | 00000434 | CYRILLIC SMALL LETTER DE C5 | 00000435 | CYRILLIC SMALL LETTER IE C6 | 00000444 | CYRILLIC SMALL LETTER EF C7 | 00000433 | CYRILLIC SMALL LETTER GHE C8 | 00000445 | CYRILLIC SMALL LETTER HA C9 | 00000438 | CYRILLIC SMALL LETTER I CA | 00000439 | CYRILLIC SMALL LETTER SHORT I CB | 0000043A | CYRILLIC SMALL LETTER KA CC | 0000043B | CYRILLIC SMALL LETTER EL CD | 0000043C | CYRILLIC SMALL LETTER EM CE | 0000043D | CYRILLIC SMALL LETTER EN CF | 0000043E | CYRILLIC SMALL LETTER O D0 | 0000043F | CYRILLIC SMALL LETTER PE D1 | 0000044F | CYRILLIC SMALL LETTER YA D2 | 00000440 | CYRILLIC SMALL LETTER ER D3 | 00000441 | CYRILLIC SMALL LETTER ES D4 | 00000442 | CYRILLIC SMALL LETTER TE D5 | 00000443 | CYRILLIC SMALL LETTER U D6 | 00000436 | CYRILLIC SMALL LETTER ZHE D7 | 00000432 | CYRILLIC SMALL LETTER VE D8 | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN D9 | 0000044B | CYRILLIC SMALL LETTER YERU DA | 00000437 | CYRILLIC SMALL LETTER ZE DB | 00000448 | CYRILLIC SMALL LETTER SHA DC | 0000044D | CYRILLIC SMALL LETTER E DD | 00000449 | CYRILLIC SMALL LETTER SHCHA DE | 00000447 | CYRILLIC SMALL LETTER CHE DF | 0000044A | CYRILLIC SMALL LETTER HARD SIGN E0 | 0000042E | CYRILLIC CAPITAL LETTER YU E1 | 00000410 | CYRILLIC CAPITAL LETTER A E2 | 00000411 | CYRILLIC CAPITAL LETTER BE E3 | 00000426 | CYRILLIC CAPITAL LETTER TSE E4 | 00000414 | CYRILLIC CAPITAL LETTER DE E5 | 00000415 | CYRILLIC CAPITAL LETTER IE E6 | 00000424 | CYRILLIC CAPITAL LETTER EF E7 | 00000413 | CYRILLIC CAPITAL LETTER GHE E8 | 00000425 | CYRILLIC CAPITAL LETTER HA E9 | 00000418 | CYRILLIC CAPITAL LETTER I EA | 00000419 | CYRILLIC CAPITAL LETTER SHORT I EB | 0000041A | CYRILLIC CAPITAL LETTER KA EC | 0000041B | CYRILLIC CAPITAL LETTER EL ED | 0000041C | CYRILLIC CAPITAL LETTER EM EE | 0000041D | CYRILLIC CAPITAL LETTER EN EF | 0000041E | CYRILLIC CAPITAL LETTER O F0 | 0000041F | CYRILLIC CAPITAL LETTER PE F1 | 0000042F | CYRILLIC CAPITAL LETTER YA F2 | 00000420 | CYRILLIC CAPITAL LETTER ER F3 | 00000421 | CYRILLIC CAPITAL LETTER ES F4 | 00000422 | CYRILLIC CAPITAL LETTER TE F5 | 00000423 | CYRILLIC CAPITAL LETTER U F6 | 00000416 | CYRILLIC CAPITAL LETTER ZHE F7 | 00000412 | CYRILLIC CAPITAL LETTER VE F8 | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN F9 | 0000042B | CYRILLIC CAPITAL LETTER YERU FA | 00000417 | CYRILLIC CAPITAL LETTER ZE FB | 00000428 | CYRILLIC CAPITAL LETTER SHA FC | 0000042D | CYRILLIC CAPITAL LETTER E FD | 00000429 | CYRILLIC CAPITAL LETTER SHCHA FE | 00000427 | CYRILLIC CAPITAL LETTER CHE FF | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]];jjRecodeData/IBM284.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM284. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM284; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00a6, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x0023, 0x00f1, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x0021, 0x203e, 0x007e, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xc2\xa0", "\xc3\xa2", "\xc3\xa4", "\xc3\xa0", "\xc3\xa1", "\xc3\xa3", "\xc3\xa5", "\xc3\xa7", "\xc2\xa6", "\x5b", "\x2e", "\x3c", "\x28", "\x2b", "\x7c", "\x26", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xa8", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc3\xac", "\xc3\x9f", "\x5d", "\x24", "\x2a", "\x29", "\x3b", "\xc2\xac", "\x2d", "\x2f", "\xc3\x82", "\xc3\x84", "\xc3\x80", "\xc3\x81", "\xc3\x83", "\xc3\x85", "\xc3\x87", "\x23", "\xc3\xb1", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xc3\xb8", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x88", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x8c", "\x60", "\x3a", "\xc3\x91", "\x40", "\x27", "\x3d", "\x22", "\xc3\x98", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xc2\xab", "\xc2\xbb", "\xc3\xb0", "\xc3\xbd", "\xc3\xbe", "\xc2\xb1", "\xc2\xb0", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xc2\xaa", "\xc2\xba", "\xc3\xa6", "\xc2\xb8", "\xc3\x86", "\xc2\xa4", "\xc2\xb5", "\xc2\xa8", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xc2\xa1", "\xc2\xbf", "\xc3\x90", "\xc3\x9d", "\xc3\x9e", "\xc2\xae", "\xc2\xa2", "\xc2\xa3", "\xc2\xa5", "\xc2\xb7", "\xc2\xa9", "\xc2\xa7", "\xc2\xb6", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\x5e", "\x21", "\xe2\x80\xbe", "\x7e", "\xc2\xb4", "\xc3\x97", "\x7b", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xc2\xad", "\xc3\xb4", "\xc3\xb6", "\xc3\xb2", "\xc3\xb3", "\xc3\xb5", "\x7d", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xc2\xb9", "\xc3\xbb", "\xc3\xbc", "\xc3\xb9", "\xc3\xba", "\xc3\xbf", "\x5c", "\xc3\xb7", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xc2\xb2", "\xc3\x94", "\xc3\x96", "\xc3\x92", "\xc3\x93", "\xc3\x95", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xc2\xb3", "\xc3\x9b", "\xc3\x9c", "\xc3\x99", "\xc3\x9a", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\xbb", 0x00000022 => "\x7f", 0x00000023 => "\x69", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\x7c", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\x4a", 0x0000005c => "\xe0", 0x0000005d => "\x5a", 0x0000005e => "\xba", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\xc0", 0x0000007c => "\x4f", 0x0000007d => "\xd0", 0x0000007e => "\xbd", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a0 => "\x41", 0x000000a1 => "\xaa", 0x000000a2 => "\xb0", 0x000000a3 => "\xb1", 0x000000a4 => "\x9f", 0x000000a5 => "\xb2", 0x000000a6 => "\x49", 0x000000a7 => "\xb5", 0x000000a8 => "\xa1", 0x000000a9 => "\xb4", 0x000000aa => "\x9a", 0x000000ab => "\x8a", 0x000000ac => "\x5f", 0x000000ad => "\xca", 0x000000ae => "\xaf", 0x000000b0 => "\x90", 0x000000b1 => "\x8f", 0x000000b2 => "\xea", 0x000000b3 => "\xfa", 0x000000b4 => "\xbe", 0x000000b5 => "\xa0", 0x000000b6 => "\xb6", 0x000000b7 => "\xb3", 0x000000b8 => "\x9d", 0x000000b9 => "\xda", 0x000000ba => "\x9b", 0x000000bb => "\x8b", 0x000000bc => "\xb7", 0x000000bd => "\xb8", 0x000000be => "\xb9", 0x000000bf => "\xab", 0x000000c0 => "\x64", 0x000000c1 => "\x65", 0x000000c2 => "\x62", 0x000000c3 => "\x66", 0x000000c4 => "\x63", 0x000000c5 => "\x67", 0x000000c6 => "\x9e", 0x000000c7 => "\x68", 0x000000c8 => "\x74", 0x000000c9 => "\x71", 0x000000ca => "\x72", 0x000000cb => "\x73", 0x000000cc => "\x78", 0x000000cd => "\x75", 0x000000ce => "\x76", 0x000000cf => "\x77", 0x000000d0 => "\xac", 0x000000d1 => "\x7b", 0x000000d2 => "\xed", 0x000000d3 => "\xee", 0x000000d4 => "\xeb", 0x000000d5 => "\xef", 0x000000d6 => "\xec", 0x000000d7 => "\xbf", 0x000000d8 => "\x80", 0x000000d9 => "\xfd", 0x000000da => "\xfe", 0x000000db => "\xfb", 0x000000dc => "\xfc", 0x000000dd => "\xad", 0x000000de => "\xae", 0x000000df => "\x59", 0x000000e0 => "\x44", 0x000000e1 => "\x45", 0x000000e2 => "\x42", 0x000000e3 => "\x46", 0x000000e4 => "\x43", 0x000000e5 => "\x47", 0x000000e6 => "\x9c", 0x000000e7 => "\x48", 0x000000e8 => "\x54", 0x000000e9 => "\x51", 0x000000ea => "\x52", 0x000000eb => "\x53", 0x000000ec => "\x58", 0x000000ed => "\x55", 0x000000ee => "\x56", 0x000000ef => "\x57", 0x000000f0 => "\x8c", 0x000000f1 => "\x6a", 0x000000f2 => "\xcd", 0x000000f3 => "\xce", 0x000000f4 => "\xcb", 0x000000f5 => "\xcf", 0x000000f6 => "\xcc", 0x000000f7 => "\xe1", 0x000000f8 => "\x70", 0x000000f9 => "\xdd", 0x000000fa => "\xde", 0x000000fb => "\xdb", 0x000000fc => "\xdc", 0x000000fd => "\x8d", 0x000000fe => "\x8e", 0x000000ff => "\xdf", 0x0000203e => "\xbc", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM284 - Conversion routines for IBM284 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM284. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP284 alias EBCDIC-CP-ES Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 41 | 000000A0 | NO-BREAK SPACE 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE 47 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 49 | 000000A6 | BROKEN BAR 4A | 0000005B | LEFT SQUARE BRACKET 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 0000007C | VERTICAL LINE 50 | 00000026 | AMPERSAND 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE 59 | 000000DF | LATIN SMALL LETTER SHARP S (German) 5A | 0000005D | RIGHT SQUARE BRACKET 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 000000AC | NOT SIGN 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE 67 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 69 | 00000023 | NUMBER SIGN 6A | 000000F1 | LATIN SMALL LETTER N WITH TILDE 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 7C | 00000040 | COMMERCIAL AT 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic) 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE 8E | 000000FE | LATIN SMALL LETTER THORN (Icelandic) 8F | 000000B1 | PLUS-MINUS SIGN 90 | 000000B0 | DEGREE SIGN 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R 9A | 000000AA | FEMININE ORDINAL INDICATOR 9B | 000000BA | MASCULINE ORDINAL INDICATOR 9C | 000000E6 | LATIN SMALL LETTER AE 9D | 000000B8 | CEDILLA 9E | 000000C6 | LATIN CAPITAL LETTER AE 9F | 000000A4 | CURRENCY SIGN A0 | 000000B5 | MICRO SIGN A1 | 000000A8 | DIAERESIS A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z AA | 000000A1 | INVERTED EXCLAMATION MARK AB | 000000BF | INVERTED QUESTION MARK AC | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic) AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE AE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic) AF | 000000AE | REGISTERED SIGN B0 | 000000A2 | CENT SIGN B1 | 000000A3 | POUND SIGN B2 | 000000A5 | YEN SIGN B3 | 000000B7 | MIDDLE DOT B4 | 000000A9 | COPYRIGHT SIGN B5 | 000000A7 | SECTION SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000BC | VULGAR FRACTION ONE QUARTER B8 | 000000BD | VULGAR FRACTION ONE HALF B9 | 000000BE | VULGAR FRACTION THREE QUARTERS BA | 0000005E | CIRCUMFLEX ACCENT BB | 00000021 | EXCLAMATION MARK BC | 0000203E | OVERLINE BD | 0000007E | TILDE BE | 000000B4 | ACUTE ACCENT BF | 000000D7 | MULTIPLICATION SIGN C0 | 0000007B | LEFT CURLY BRACKET C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I CA | 000000AD | SOFT HYPHEN CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX CC | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE D0 | 0000007D | RIGHT CURLY BRACKET D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R DA | 000000B9 | SUPERSCRIPT ONE DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX DC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS E0 | 0000005C | REVERSE SOLIDUS E1 | 000000F7 | DIVISION SIGN E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z EA | 000000B2 | SUPERSCRIPT TWO EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX EC | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FA | 000000B3 | SUPERSCRIPT THREE FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]GhGhRecodeData/GEORGIAN_PS.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for GEORGIAN-PS. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::GEORGIAN_PS; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0x008d, 0x008e, 0x008f, 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0x009d, 0x009e, 0x0178, 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x10d0, 0x10d1, 0x10d2, 0x10d3, 0x10d4, 0x10d5, 0x10d6, 0x10f1, 0x10d7, 0x10d8, 0x10d9, 0x10da, 0x10db, 0x10dc, 0x10f2, 0x10dd, 0x10de, 0x10df, 0x10e0, 0x10e1, 0x10e2, 0x10f3, 0x10e3, 0x10e4, 0x10e5, 0x10e6, 0x10e7, 0x10e8, 0x10e9, 0x10ea, 0x10eb, 0x10ec, 0x10ed, 0x10ee, 0x10f4, 0x10ef, 0x10f0, 0x10f5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\x80", "\xc2\x81", "\xe2\x80\x9a", "\xc6\x92", "\xe2\x80\x9e", "\xe2\x80\xa6", "\xe2\x80\xa0", "\xe2\x80\xa1", "\xcb\x86", "\xe2\x80\xb0", "\xc5\xa0", "\xe2\x80\xb9", "\xc5\x92", "\xc2\x8d", "\xc2\x8e", "\xc2\x8f", "\xc2\x90", "\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\xa2", "\xe2\x80\x93", "\xe2\x80\x94", "\xcb\x9c", "\xe2\x84\xa2", "\xc5\xa1", "\xe2\x80\xba", "\xc5\x93", "\xc2\x9d", "\xc2\x9e", "\xc5\xb8", "\xc2\xa0", "\xc2\xa1", "\xc2\xa2", "\xc2\xa3", "\xc2\xa4", "\xc2\xa5", "\xc2\xa6", "\xc2\xa7", "\xc2\xa8", "\xc2\xa9", "\xc2\xaa", "\xc2\xab", "\xc2\xac", "\xc2\xad", "\xc2\xae", "\xc2\xaf", "\xc2\xb0", "\xc2\xb1", "\xc2\xb2", "\xc2\xb3", "\xc2\xb4", "\xc2\xb5", "\xc2\xb6", "\xc2\xb7", "\xc2\xb8", "\xc2\xb9", "\xc2\xba", "\xc2\xbb", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\xc2\xbf", "\xe1\x83\x90", "\xe1\x83\x91", "\xe1\x83\x92", "\xe1\x83\x93", "\xe1\x83\x94", "\xe1\x83\x95", "\xe1\x83\x96", "\xe1\x83\xb1", "\xe1\x83\x97", "\xe1\x83\x98", "\xe1\x83\x99", "\xe1\x83\x9a", "\xe1\x83\x9b", "\xe1\x83\x9c", "\xe1\x83\xb2", "\xe1\x83\x9d", "\xe1\x83\x9e", "\xe1\x83\x9f", "\xe1\x83\xa0", "\xe1\x83\xa1", "\xe1\x83\xa2", "\xe1\x83\xb3", "\xe1\x83\xa3", "\xe1\x83\xa4", "\xe1\x83\xa5", "\xe1\x83\xa6", "\xe1\x83\xa7", "\xe1\x83\xa8", "\xe1\x83\xa9", "\xe1\x83\xaa", "\xe1\x83\xab", "\xe1\x83\xac", "\xe1\x83\xad", "\xe1\x83\xae", "\xe1\x83\xb4", "\xe1\x83\xaf", "\xe1\x83\xb0", "\xe1\x83\xb5", "\xc3\xa6", "\xc3\xa7", "\xc3\xa8", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xac", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc3\xb0", "\xc3\xb1", "\xc3\xb2", "\xc3\xb3", "\xc3\xb4", "\xc3\xb5", "\xc3\xb6", "\xc3\xb7", "\xc3\xb8", "\xc3\xb9", "\xc3\xba", "\xc3\xbb", "\xc3\xbc", "\xc3\xbd", "\xc3\xbe", "\xc3\xbf", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000080 => "\x80", 0x00000081 => "\x81", 0x0000008d => "\x8d", 0x0000008e => "\x8e", 0x0000008f => "\x8f", 0x00000090 => "\x90", 0x0000009d => "\x9d", 0x0000009e => "\x9e", 0x000000a0 => "\xa0", 0x000000a1 => "\xa1", 0x000000a2 => "\xa2", 0x000000a3 => "\xa3", 0x000000a4 => "\xa4", 0x000000a5 => "\xa5", 0x000000a6 => "\xa6", 0x000000a7 => "\xa7", 0x000000a8 => "\xa8", 0x000000a9 => "\xa9", 0x000000aa => "\xaa", 0x000000ab => "\xab", 0x000000ac => "\xac", 0x000000ad => "\xad", 0x000000ae => "\xae", 0x000000af => "\xaf", 0x000000b0 => "\xb0", 0x000000b1 => "\xb1", 0x000000b2 => "\xb2", 0x000000b3 => "\xb3", 0x000000b4 => "\xb4", 0x000000b5 => "\xb5", 0x000000b6 => "\xb6", 0x000000b7 => "\xb7", 0x000000b8 => "\xb8", 0x000000b9 => "\xb9", 0x000000ba => "\xba", 0x000000bb => "\xbb", 0x000000bc => "\xbc", 0x000000bd => "\xbd", 0x000000be => "\xbe", 0x000000bf => "\xbf", 0x000000e6 => "\xe6", 0x000000e7 => "\xe7", 0x000000e8 => "\xe8", 0x000000e9 => "\xe9", 0x000000ea => "\xea", 0x000000eb => "\xeb", 0x000000ec => "\xec", 0x000000ed => "\xed", 0x000000ee => "\xee", 0x000000ef => "\xef", 0x000000f0 => "\xf0", 0x000000f1 => "\xf1", 0x000000f2 => "\xf2", 0x000000f3 => "\xf3", 0x000000f4 => "\xf4", 0x000000f5 => "\xf5", 0x000000f6 => "\xf6", 0x000000f7 => "\xf7", 0x000000f8 => "\xf8", 0x000000f9 => "\xf9", 0x000000fa => "\xfa", 0x000000fb => "\xfb", 0x000000fc => "\xfc", 0x000000fd => "\xfd", 0x000000fe => "\xfe", 0x000000ff => "\xff", 0x00000152 => "\x8c", 0x00000153 => "\x9c", 0x00000160 => "\x8a", 0x00000161 => "\x9a", 0x00000178 => "\x9f", 0x00000192 => "\x83", 0x000002c6 => "\x88", 0x000002dc => "\x98", 0x000010d0 => "\xc0", 0x000010d1 => "\xc1", 0x000010d2 => "\xc2", 0x000010d3 => "\xc3", 0x000010d4 => "\xc4", 0x000010d5 => "\xc5", 0x000010d6 => "\xc6", 0x000010d7 => "\xc8", 0x000010d8 => "\xc9", 0x000010d9 => "\xca", 0x000010da => "\xcb", 0x000010db => "\xcc", 0x000010dc => "\xcd", 0x000010dd => "\xcf", 0x000010de => "\xd0", 0x000010df => "\xd1", 0x000010e0 => "\xd2", 0x000010e1 => "\xd3", 0x000010e2 => "\xd4", 0x000010e3 => "\xd6", 0x000010e4 => "\xd7", 0x000010e5 => "\xd8", 0x000010e6 => "\xd9", 0x000010e7 => "\xda", 0x000010e8 => "\xdb", 0x000010e9 => "\xdc", 0x000010ea => "\xdd", 0x000010eb => "\xde", 0x000010ec => "\xdf", 0x000010ed => "\xe0", 0x000010ee => "\xe1", 0x000010ef => "\xe3", 0x000010f0 => "\xe4", 0x000010f1 => "\xc7", 0x000010f2 => "\xce", 0x000010f3 => "\xd5", 0x000010f4 => "\xe2", 0x000010f5 => "\xe5", 0x00002013 => "\x96", 0x00002014 => "\x97", 0x00002018 => "\x91", 0x00002019 => "\x92", 0x0000201a => "\x82", 0x0000201c => "\x93", 0x0000201d => "\x94", 0x0000201e => "\x84", 0x00002020 => "\x86", 0x00002021 => "\x87", 0x00002022 => "\x95", 0x00002026 => "\x85", 0x00002030 => "\x89", 0x00002039 => "\x8b", 0x0000203a => "\x9b", 0x00002122 => "\x99", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::GEORGIAN_PS - Conversion routines for GEORGIAN-PS =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for GEORGIAN-PS. =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000080 | PADDING CHARACTER (PAD) 81 | 00000081 | HIGH OCTET PRESET (HOP) 82 | 0000201A | SINGLE LOW-9 QUOTATION MARK 83 | 00000192 | LATIN SMALL LETTER F WITH HOOK 84 | 0000201E | DOUBLE LOW-9 QUOTATION MARK 85 | 00002026 | HORIZONTAL ELLIPSIS 86 | 00002020 | DAGGER 87 | 00002021 | DOUBLE DAGGER 88 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT 89 | 00002030 | PER MILLE SIGN 8A | 00000160 | LATIN CAPITAL LETTER S WITH CARON 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK 8C | 00000152 | LATIN CAPITAL LIGATURE OE 8D | 0000008D | REVERSE LINE FEED (RI) 8E | 0000008E | SINGLE-SHIFT TWO (SS2) 8F | 0000008F | SINGLE-SHIFT THREE (SS3) 90 | 00000090 | DEVICE CONTROL STRING (DCS) 91 | 00002018 | LEFT SINGLE QUOTATION MARK 92 | 00002019 | RIGHT SINGLE QUOTATION MARK 93 | 0000201C | LEFT DOUBLE QUOTATION MARK 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK 95 | 00002022 | BULLET 96 | 00002013 | EN DASH 97 | 00002014 | EM DASH 98 | 000002DC | SMALL TILDE 99 | 00002122 | TRADE MARK SIGN 9A | 00000161 | LATIN SMALL LETTER S WITH CARON 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 9C | 00000153 | LATIN SMALL LIGATURE OE 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC) 9E | 0000009E | PRIVACY MESSAGE (PM) 9F | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS A0 | 000000A0 | NO-BREAK SPACE A1 | 000000A1 | INVERTED EXCLAMATION MARK A2 | 000000A2 | CENT SIGN A3 | 000000A3 | POUND SIGN A4 | 000000A4 | CURRENCY SIGN A5 | 000000A5 | YEN SIGN A6 | 000000A6 | BROKEN BAR A7 | 000000A7 | SECTION SIGN A8 | 000000A8 | DIAERESIS A9 | 000000A9 | COPYRIGHT SIGN AA | 000000AA | FEMININE ORDINAL INDICATOR AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AC | 000000AC | NOT SIGN AD | 000000AD | SOFT HYPHEN AE | 000000AE | REGISTERED SIGN AF | 000000AF | MACRON B0 | 000000B0 | DEGREE SIGN B1 | 000000B1 | PLUS-MINUS SIGN B2 | 000000B2 | SUPERSCRIPT TWO B3 | 000000B3 | SUPERSCRIPT THREE B4 | 000000B4 | ACUTE ACCENT B5 | 000000B5 | MICRO SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000B7 | MIDDLE DOT B8 | 000000B8 | CEDILLA B9 | 000000B9 | SUPERSCRIPT ONE BA | 000000BA | MASCULINE ORDINAL INDICATOR BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK BC | 000000BC | VULGAR FRACTION ONE QUARTER BD | 000000BD | VULGAR FRACTION ONE HALF BE | 000000BE | VULGAR FRACTION THREE QUARTERS BF | 000000BF | INVERTED QUESTION MARK C0 | 000010D0 | GEORGIAN LETTER AN C1 | 000010D1 | GEORGIAN LETTER BAN C2 | 000010D2 | GEORGIAN LETTER GAN C3 | 000010D3 | GEORGIAN LETTER DON C4 | 000010D4 | GEORGIAN LETTER EN C5 | 000010D5 | GEORGIAN LETTER VIN C6 | 000010D6 | GEORGIAN LETTER ZEN C7 | 000010F1 | GEORGIAN LETTER HE C8 | 000010D7 | GEORGIAN LETTER TAN C9 | 000010D8 | GEORGIAN LETTER IN CA | 000010D9 | GEORGIAN LETTER KAN CB | 000010DA | GEORGIAN LETTER LAS CC | 000010DB | GEORGIAN LETTER MAN CD | 000010DC | GEORGIAN LETTER NAR CE | 000010F2 | GEORGIAN LETTER HIE CF | 000010DD | GEORGIAN LETTER ON D0 | 000010DE | GEORGIAN LETTER PAR D1 | 000010DF | GEORGIAN LETTER ZHAR D2 | 000010E0 | GEORGIAN LETTER RAE D3 | 000010E1 | GEORGIAN LETTER SAN D4 | 000010E2 | GEORGIAN LETTER TAR D5 | 000010F3 | GEORGIAN LETTER WE D6 | 000010E3 | GEORGIAN LETTER UN D7 | 000010E4 | GEORGIAN LETTER PHAR D8 | 000010E5 | GEORGIAN LETTER KHAR D9 | 000010E6 | GEORGIAN LETTER GHAN DA | 000010E7 | GEORGIAN LETTER QAR DB | 000010E8 | GEORGIAN LETTER SHIN DC | 000010E9 | GEORGIAN LETTER CHIN DD | 000010EA | GEORGIAN LETTER CAN DE | 000010EB | GEORGIAN LETTER JIL DF | 000010EC | GEORGIAN LETTER CIL E0 | 000010ED | GEORGIAN LETTER CHAR E1 | 000010EE | GEORGIAN LETTER XAN E2 | 000010F4 | GEORGIAN LETTER HAR E3 | 000010EF | GEORGIAN LETTER JHAN E4 | 000010F0 | GEORGIAN LETTER HAE E5 | 000010F5 | GEORGIAN LETTER HOE E6 | 000000E6 | LATIN SMALL LETTER AE E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS F0 | 000000F0 | LATIN SMALL LETTER ETH (Icelandic) F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS F7 | 000000F7 | DIVISION SIGN F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE FE | 000000FE | LATIN SMALL LETTER THORN (Icelandic) FF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]iiRecodeData/NEXTSTEP.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for NEXTSTEP. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::NEXTSTEP; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00a0, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00b5, 0x00d7, 0x00f7, 0x00a9, 0x00a1, 0x00a2, 0x00a3, 0x2044, 0x00a5, 0x0192, 0x00a7, 0x00a4, 0x2019, 0x201c, 0x00ab, 0x2039, 0x203a, 0xfb01, 0xfb02, 0x00ae, 0x2013, 0x2020, 0x2021, 0x00b7, 0x00a6, 0x00b6, 0x2022, 0x201a, 0x201e, 0x201d, 0x00bb, 0x2026, 0x2030, 0x00ac, 0x00bf, 0x00b9, 0x02cb, 0x00b4, 0x02c6, 0x02dc, 0x00af, 0x02d8, 0x02d9, 0x00a8, 0x00b2, 0x02da, 0x00b8, 0x00b3, 0x02dd, 0x02db, 0x02c7, 0x2014, 0x00b1, 0x00bc, 0x00bd, 0x00be, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00c6, 0x00ed, 0x00aa, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x0141, 0x00d8, 0x0152, 0x00ba, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00e6, 0x00f9, 0x00fa, 0x00fb, 0x0131, 0x00fc, 0x00fd, 0x0142, 0x00f8, 0x0153, 0x00df, 0x00fe, 0x00ff, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\xa0", "\xc3\x80", "\xc3\x81", "\xc3\x82", "\xc3\x83", "\xc3\x84", "\xc3\x85", "\xc3\x87", "\xc3\x88", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x8c", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x90", "\xc3\x91", "\xc3\x92", "\xc3\x93", "\xc3\x94", "\xc3\x95", "\xc3\x96", "\xc3\x99", "\xc3\x9a", "\xc3\x9b", "\xc3\x9c", "\xc3\x9d", "\xc3\x9e", "\xc2\xb5", "\xc3\x97", "\xc3\xb7", "\xc2\xa9", "\xc2\xa1", "\xc2\xa2", "\xc2\xa3", "\xe2\x81\x84", "\xc2\xa5", "\xc6\x92", "\xc2\xa7", "\xc2\xa4", "\xe2\x80\x99", "\xe2\x80\x9c", "\xc2\xab", "\xe2\x80\xb9", "\xe2\x80\xba", "\xef\xac\x81", "\xef\xac\x82", "\xc2\xae", "\xe2\x80\x93", "\xe2\x80\xa0", "\xe2\x80\xa1", "\xc2\xb7", "\xc2\xa6", "\xc2\xb6", "\xe2\x80\xa2", "\xe2\x80\x9a", "\xe2\x80\x9e", "\xe2\x80\x9d", "\xc2\xbb", "\xe2\x80\xa6", "\xe2\x80\xb0", "\xc2\xac", "\xc2\xbf", "\xc2\xb9", "\xcb\x8b", "\xc2\xb4", "\xcb\x86", "\xcb\x9c", "\xc2\xaf", "\xcb\x98", "\xcb\x99", "\xc2\xa8", "\xc2\xb2", "\xcb\x9a", "\xc2\xb8", "\xc2\xb3", "\xcb\x9d", "\xcb\x9b", "\xcb\x87", "\xe2\x80\x94", "\xc2\xb1", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\xc3\xa0", "\xc3\xa1", "\xc3\xa2", "\xc3\xa3", "\xc3\xa4", "\xc3\xa5", "\xc3\xa7", "\xc3\xa8", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xac", "\xc3\x86", "\xc3\xad", "\xc2\xaa", "\xc3\xae", "\xc3\xaf", "\xc3\xb0", "\xc3\xb1", "\xc5\x81", "\xc3\x98", "\xc5\x92", "\xc2\xba", "\xc3\xb2", "\xc3\xb3", "\xc3\xb4", "\xc3\xb5", "\xc3\xb6", "\xc3\xa6", "\xc3\xb9", "\xc3\xba", "\xc3\xbb", "\xc4\xb1", "\xc3\xbc", "\xc3\xbd", "\xc5\x82", "\xc3\xb8", "\xc5\x93", "\xc3\x9f", "\xc3\xbe", "\xc3\xbf", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\x80", 0x000000a1 => "\xa1", 0x000000a2 => "\xa2", 0x000000a3 => "\xa3", 0x000000a4 => "\xa8", 0x000000a5 => "\xa5", 0x000000a6 => "\xb5", 0x000000a7 => "\xa7", 0x000000a8 => "\xc8", 0x000000a9 => "\xa0", 0x000000aa => "\xe3", 0x000000ab => "\xab", 0x000000ac => "\xbe", 0x000000ae => "\xb0", 0x000000af => "\xc5", 0x000000b1 => "\xd1", 0x000000b2 => "\xc9", 0x000000b3 => "\xcc", 0x000000b4 => "\xc2", 0x000000b5 => "\x9d", 0x000000b6 => "\xb6", 0x000000b7 => "\xb4", 0x000000b8 => "\xcb", 0x000000b9 => "\xc0", 0x000000ba => "\xeb", 0x000000bb => "\xbb", 0x000000bc => "\xd2", 0x000000bd => "\xd3", 0x000000be => "\xd4", 0x000000bf => "\xbf", 0x000000c0 => "\x81", 0x000000c1 => "\x82", 0x000000c2 => "\x83", 0x000000c3 => "\x84", 0x000000c4 => "\x85", 0x000000c5 => "\x86", 0x000000c6 => "\xe1", 0x000000c7 => "\x87", 0x000000c8 => "\x88", 0x000000c9 => "\x89", 0x000000ca => "\x8a", 0x000000cb => "\x8b", 0x000000cc => "\x8c", 0x000000cd => "\x8d", 0x000000ce => "\x8e", 0x000000cf => "\x8f", 0x000000d0 => "\x90", 0x000000d1 => "\x91", 0x000000d2 => "\x92", 0x000000d3 => "\x93", 0x000000d4 => "\x94", 0x000000d5 => "\x95", 0x000000d6 => "\x96", 0x000000d7 => "\x9e", 0x000000d8 => "\xe9", 0x000000d9 => "\x97", 0x000000da => "\x98", 0x000000db => "\x99", 0x000000dc => "\x9a", 0x000000dd => "\x9b", 0x000000de => "\x9c", 0x000000df => "\xfb", 0x000000e0 => "\xd5", 0x000000e1 => "\xd6", 0x000000e2 => "\xd7", 0x000000e3 => "\xd8", 0x000000e4 => "\xd9", 0x000000e5 => "\xda", 0x000000e6 => "\xf1", 0x000000e7 => "\xdb", 0x000000e8 => "\xdc", 0x000000e9 => "\xdd", 0x000000ea => "\xde", 0x000000eb => "\xdf", 0x000000ec => "\xe0", 0x000000ed => "\xe2", 0x000000ee => "\xe4", 0x000000ef => "\xe5", 0x000000f0 => "\xe6", 0x000000f1 => "\xe7", 0x000000f2 => "\xec", 0x000000f3 => "\xed", 0x000000f4 => "\xee", 0x000000f5 => "\xef", 0x000000f6 => "\xf0", 0x000000f7 => "\x9f", 0x000000f8 => "\xf9", 0x000000f9 => "\xf2", 0x000000fa => "\xf3", 0x000000fb => "\xf4", 0x000000fc => "\xf6", 0x000000fd => "\xf7", 0x000000fe => "\xfc", 0x000000ff => "\xfd", 0x00000131 => "\xf5", 0x00000141 => "\xe8", 0x00000142 => "\xf8", 0x00000152 => "\xea", 0x00000153 => "\xfa", 0x00000192 => "\xa6", 0x000002c6 => "\xc3", 0x000002c7 => "\xcf", 0x000002cb => "\xc1", 0x000002d8 => "\xc6", 0x000002d9 => "\xc7", 0x000002da => "\xca", 0x000002db => "\xce", 0x000002dc => "\xc4", 0x000002dd => "\xcd", 0x00002013 => "\xb1", 0x00002014 => "\xd0", 0x00002019 => "\xa9", 0x0000201a => "\xb8", 0x0000201c => "\xaa", 0x0000201d => "\xba", 0x0000201e => "\xb9", 0x00002020 => "\xb2", 0x00002021 => "\xb3", 0x00002022 => "\xb7", 0x00002026 => "\xbc", 0x00002030 => "\xbd", 0x00002039 => "\xac", 0x0000203a => "\xad", 0x00002044 => "\xa4", 0x0000fb01 => "\xae", 0x0000fb02 => "\xaf", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::NEXTSTEP - Conversion routines for NEXTSTEP =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for NEXTSTEP. =head1 COMMENTS The following comments have been extracted from the original charmap: This charmap has been generated automatically from GNU libiconv conversions. Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000000A0 | NO-BREAK SPACE 81 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE 82 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE 83 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX 84 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE 85 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 86 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 87 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 88 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE 89 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 8A | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX 8B | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS 8C | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE 8D | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE 8E | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX 8F | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS 90 | 000000D0 | LATIN CAPITAL LETTER ETH 91 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 92 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE 93 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE 94 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX 95 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE 96 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 97 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE 98 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE 99 | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 9B | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE 9C | 000000DE | LATIN CAPITAL LETTER THORN 9D | 000000B5 | MICRO SIGN 9E | 000000D7 | MULTIPLICATION SIGN 9F | 000000F7 | DIVISION SIGN A0 | 000000A9 | COPYRIGHT SIGN A1 | 000000A1 | INVERTED EXCLAMATION MARK A2 | 000000A2 | CENT SIGN A3 | 000000A3 | POUND SIGN A4 | 00002044 | FRACTION SLASH A5 | 000000A5 | YEN SIGN A6 | 00000192 | LATIN SMALL LETTER F WITH HOOK A7 | 000000A7 | SECTION SIGN A8 | 000000A4 | CURRENCY SIGN A9 | 00002019 | RIGHT SINGLE QUOTATION MARK AA | 0000201C | LEFT DOUBLE QUOTATION MARK AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AC | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK AD | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK AE | 0000FB01 | LATIN SMALL LIGATURE FI AF | 0000FB02 | LATIN SMALL LIGATURE FL B0 | 000000AE | REGISTERED SIGN B1 | 00002013 | EN DASH B2 | 00002020 | DAGGER B3 | 00002021 | DOUBLE DAGGER B4 | 000000B7 | MIDDLE DOT B5 | 000000A6 | BROKEN BAR B6 | 000000B6 | PILCROW SIGN B7 | 00002022 | BULLET B8 | 0000201A | SINGLE LOW-9 QUOTATION MARK B9 | 0000201E | DOUBLE LOW-9 QUOTATION MARK BA | 0000201D | RIGHT DOUBLE QUOTATION MARK BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK BC | 00002026 | HORIZONTAL ELLIPSIS BD | 00002030 | PER MILLE SIGN BE | 000000AC | NOT SIGN BF | 000000BF | INVERTED QUESTION MARK C0 | 000000B9 | SUPERSCRIPT ONE C1 | 000002CB | MODIFIER LETTER GRAVE ACCENT C2 | 000000B4 | ACUTE ACCENT C3 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT C4 | 000002DC | SMALL TILDE C5 | 000000AF | MACRON C6 | 000002D8 | BREVE C7 | 000002D9 | DOT ABOVE C8 | 000000A8 | DIAERESIS C9 | 000000B2 | SUPERSCRIPT TWO CA | 000002DA | RING ABOVE CB | 000000B8 | CEDILLA CC | 000000B3 | SUPERSCRIPT THREE CD | 000002DD | DOUBLE ACUTE ACCENT CE | 000002DB | OGONEK CF | 000002C7 | CARON D0 | 00002014 | EM DASH D1 | 000000B1 | PLUS-MINUS SIGN D2 | 000000BC | VULGAR FRACTION ONE QUARTER D3 | 000000BD | VULGAR FRACTION ONE HALF D4 | 000000BE | VULGAR FRACTION THREE QUARTERS D5 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE D6 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE D7 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX D8 | 000000E3 | LATIN SMALL LETTER A WITH TILDE D9 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS DA | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE DB | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA DC | 000000E8 | LATIN SMALL LETTER E WITH GRAVE DD | 000000E9 | LATIN SMALL LETTER E WITH ACUTE DE | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX DF | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS E0 | 000000EC | LATIN SMALL LETTER I WITH GRAVE E1 | 000000C6 | LATIN CAPITAL LETTER AE E2 | 000000ED | LATIN SMALL LETTER I WITH ACUTE E3 | 000000AA | FEMININE ORDINAL INDICATOR E4 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX E5 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS E6 | 000000F0 | LATIN SMALL LETTER ETH E7 | 000000F1 | LATIN SMALL LETTER N WITH TILDE E8 | 00000141 | LATIN CAPITAL LETTER L WITH STROKE E9 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE EA | 00000152 | LATIN CAPITAL LIGATURE OE EB | 000000BA | MASCULINE ORDINAL INDICATOR EC | 000000F2 | LATIN SMALL LETTER O WITH GRAVE ED | 000000F3 | LATIN SMALL LETTER O WITH ACUTE EE | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX EF | 000000F5 | LATIN SMALL LETTER O WITH TILDE F0 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS F1 | 000000E6 | LATIN SMALL LETTER AE F2 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE F3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE F4 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX F5 | 00000131 | LATIN SMALL LETTER DOTLESS I F6 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS F7 | 000000FD | LATIN SMALL LETTER Y WITH ACUTE F8 | 00000142 | LATIN SMALL LETTER L WITH STROKE F9 | 000000F8 | LATIN SMALL LETTER O WITH STROKE FA | 00000153 | LATIN SMALL LIGATURE OE FB | 000000DF | LATIN SMALL LETTER SHARP S FC | 000000FE | LATIN SMALL LETTER THORN FD | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]gX`jjRecodeData/IBM857.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM857. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM857; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x0131, 0x00c4, 0x00c5, 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, 0x0130, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x015e, 0x015f, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x011e, 0x011f, 0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0, 0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, 0x00ba, 0x00aa, 0x00ca, 0x00cb, 0x00c8, 0xfffd, 0x00cd, 0x00ce, 0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580, 0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0xfffd, 0x00d7, 0x00da, 0x00db, 0x00d9, 0x00ec, 0x00ff, 0x00af, 0x00b4, 0x00ad, 0x00b1, 0xfffd, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc3\x87", "\xc3\xbc", "\xc3\xa9", "\xc3\xa2", "\xc3\xa4", "\xc3\xa0", "\xc3\xa5", "\xc3\xa7", "\xc3\xaa", "\xc3\xab", "\xc3\xa8", "\xc3\xaf", "\xc3\xae", "\xc4\xb1", "\xc3\x84", "\xc3\x85", "\xc3\x89", "\xc3\xa6", "\xc3\x86", "\xc3\xb4", "\xc3\xb6", "\xc3\xb2", "\xc3\xbb", "\xc3\xb9", "\xc4\xb0", "\xc3\x96", "\xc3\x9c", "\xc3\xb8", "\xc2\xa3", "\xc3\x98", "\xc5\x9e", "\xc5\x9f", "\xc3\xa1", "\xc3\xad", "\xc3\xb3", "\xc3\xba", "\xc3\xb1", "\xc3\x91", "\xc4\x9e", "\xc4\x9f", "\xc2\xbf", "\xc2\xae", "\xc2\xac", "\xc2\xbd", "\xc2\xbc", "\xc2\xa1", "\xc2\xab", "\xc2\xbb", "\xe2\x96\x91", "\xe2\x96\x92", "\xe2\x96\x93", "\xe2\x94\x82", "\xe2\x94\xa4", "\xc3\x81", "\xc3\x82", "\xc3\x80", "\xc2\xa9", "\xe2\x95\xa3", "\xe2\x95\x91", "\xe2\x95\x97", "\xe2\x95\x9d", "\xc2\xa2", "\xc2\xa5", "\xe2\x94\x90", "\xe2\x94\x94", "\xe2\x94\xb4", "\xe2\x94\xac", "\xe2\x94\x9c", "\xe2\x94\x80", "\xe2\x94\xbc", "\xc3\xa3", "\xc3\x83", "\xe2\x95\x9a", "\xe2\x95\x94", "\xe2\x95\xa9", "\xe2\x95\xa6", "\xe2\x95\xa0", "\xe2\x95\x90", "\xe2\x95\xac", "\xc2\xa4", "\xc2\xba", "\xc2\xaa", "\xc3\x8a", "\xc3\x8b", "\xc3\x88", "\xef\xbf\xbd", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xe2\x94\x98", "\xe2\x94\x8c", "\xe2\x96\x88", "\xe2\x96\x84", "\xc2\xa6", "\xc3\x8c", "\xe2\x96\x80", "\xc3\x93", "\xc3\x9f", "\xc3\x94", "\xc3\x92", "\xc3\xb5", "\xc3\x95", "\xc2\xb5", "\xef\xbf\xbd", "\xc3\x97", "\xc3\x9a", "\xc3\x9b", "\xc3\x99", "\xc3\xac", "\xc3\xbf", "\xc2\xaf", "\xc2\xb4", "\xc2\xad", "\xc2\xb1", "\xef\xbf\xbd", "\xc2\xbe", "\xc2\xb6", "\xc2\xa7", "\xc3\xb7", "\xc2\xb8", "\xc2\xb0", "\xc2\xa8", "\xc2\xb7", "\xc2\xb9", "\xc2\xb3", "\xc2\xb2", "\xe2\x96\xa0", "\xc2\xa0", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xff", 0x000000a1 => "\xad", 0x000000a2 => "\xbd", 0x000000a3 => "\x9c", 0x000000a4 => "\xcf", 0x000000a5 => "\xbe", 0x000000a6 => "\xdd", 0x000000a7 => "\xf5", 0x000000a8 => "\xf9", 0x000000a9 => "\xb8", 0x000000aa => "\xd1", 0x000000ab => "\xae", 0x000000ac => "\xaa", 0x000000ad => "\xf0", 0x000000ae => "\xa9", 0x000000af => "\xee", 0x000000b0 => "\xf8", 0x000000b1 => "\xf1", 0x000000b2 => "\xfd", 0x000000b3 => "\xfc", 0x000000b4 => "\xef", 0x000000b5 => "\xe6", 0x000000b6 => "\xf4", 0x000000b7 => "\xfa", 0x000000b8 => "\xf7", 0x000000b9 => "\xfb", 0x000000ba => "\xd0", 0x000000bb => "\xaf", 0x000000bc => "\xac", 0x000000bd => "\xab", 0x000000be => "\xf3", 0x000000bf => "\xa8", 0x000000c0 => "\xb7", 0x000000c1 => "\xb5", 0x000000c2 => "\xb6", 0x000000c3 => "\xc7", 0x000000c4 => "\x8e", 0x000000c5 => "\x8f", 0x000000c6 => "\x92", 0x000000c7 => "\x80", 0x000000c8 => "\xd4", 0x000000c9 => "\x90", 0x000000ca => "\xd2", 0x000000cb => "\xd3", 0x000000cc => "\xde", 0x000000cd => "\xd6", 0x000000ce => "\xd7", 0x000000cf => "\xd8", 0x000000d1 => "\xa5", 0x000000d2 => "\xe3", 0x000000d3 => "\xe0", 0x000000d4 => "\xe2", 0x000000d5 => "\xe5", 0x000000d6 => "\x99", 0x000000d7 => "\xe8", 0x000000d8 => "\x9d", 0x000000d9 => "\xeb", 0x000000da => "\xe9", 0x000000db => "\xea", 0x000000dc => "\x9a", 0x000000df => "\xe1", 0x000000e0 => "\x85", 0x000000e1 => "\xa0", 0x000000e2 => "\x83", 0x000000e3 => "\xc6", 0x000000e4 => "\x84", 0x000000e5 => "\x86", 0x000000e6 => "\x91", 0x000000e7 => "\x87", 0x000000e8 => "\x8a", 0x000000e9 => "\x82", 0x000000ea => "\x88", 0x000000eb => "\x89", 0x000000ec => "\xec", 0x000000ed => "\xa1", 0x000000ee => "\x8c", 0x000000ef => "\x8b", 0x000000f1 => "\xa4", 0x000000f2 => "\x95", 0x000000f3 => "\xa2", 0x000000f4 => "\x93", 0x000000f5 => "\xe4", 0x000000f6 => "\x94", 0x000000f7 => "\xf6", 0x000000f8 => "\x9b", 0x000000f9 => "\x97", 0x000000fa => "\xa3", 0x000000fb => "\x96", 0x000000fc => "\x81", 0x000000ff => "\xed", 0x0000011e => "\xa6", 0x0000011f => "\xa7", 0x00000130 => "\x98", 0x00000131 => "\x8d", 0x0000015e => "\x9e", 0x0000015f => "\x9f", 0x00002500 => "\xc4", 0x00002502 => "\xb3", 0x0000250c => "\xda", 0x00002510 => "\xbf", 0x00002514 => "\xc0", 0x00002518 => "\xd9", 0x0000251c => "\xc3", 0x00002524 => "\xb4", 0x0000252c => "\xc2", 0x00002534 => "\xc1", 0x0000253c => "\xc5", 0x00002550 => "\xcd", 0x00002551 => "\xba", 0x00002554 => "\xc9", 0x00002557 => "\xbb", 0x0000255a => "\xc8", 0x0000255d => "\xbc", 0x00002560 => "\xcc", 0x00002563 => "\xb9", 0x00002566 => "\xcb", 0x00002569 => "\xca", 0x0000256c => "\xce", 0x00002580 => "\xdf", 0x00002584 => "\xdc", 0x00002588 => "\xdb", 0x00002591 => "\xb0", 0x00002592 => "\xb1", 0x00002593 => "\xb2", 0x000025a0 => "\xfe", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM857 - Conversion routines for IBM857 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM857. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP857 alias 857 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 84 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 86 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 8B | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 8C | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 8D | 00000131 | LATIN SMALL LETTER DOTLESS I 8E | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 8F | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 90 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 91 | 000000E6 | LATIN SMALL LETTER AE 92 | 000000C6 | LATIN CAPITAL LETTER AE 93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX 94 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 95 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE 96 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX 97 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 98 | 00000130 | LATIN CAPITAL LETTER I WITH DOT ABOVE 99 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 9B | 000000F8 | LATIN SMALL LETTER O WITH STROKE 9C | 000000A3 | POUND SIGN 9D | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE 9E | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA 9F | 0000015F | LATIN SMALL LETTER S WITH CEDILLA A0 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE A1 | 000000ED | LATIN SMALL LETTER I WITH ACUTE A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE A4 | 000000F1 | LATIN SMALL LETTER N WITH TILDE A5 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE A6 | 0000011E | LATIN CAPITAL LETTER G WITH BREVE A7 | 0000011F | LATIN SMALL LETTER G WITH BREVE A8 | 000000BF | INVERTED QUESTION MARK A9 | 000000AE | REGISTERED SIGN AA | 000000AC | NOT SIGN AB | 000000BD | VULGAR FRACTION ONE HALF AC | 000000BC | VULGAR FRACTION ONE QUARTER AD | 000000A1 | INVERTED EXCLAMATION MARK AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK B0 | 00002591 | LIGHT SHADE B1 | 00002592 | MEDIUM SHADE B2 | 00002593 | DARK SHADE B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT B5 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE B6 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX B7 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE B8 | 000000A9 | COPYRIGHT SIGN B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT BD | 000000A2 | CENT SIGN BE | 000000A5 | YEN SIGN BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL C6 | 000000E3 | LATIN SMALL LETTER A WITH TILDE C7 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL CF | 000000A4 | CURRENCY SIGN D0 | 000000BA | MASCULINE ORDINAL INDICATOR D1 | 000000AA | FEMININE ORDINAL INDICATOR D2 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX D3 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS D4 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE D6 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE D7 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX D8 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT DB | 00002588 | FULL BLOCK DC | 00002584 | LOWER HALF BLOCK DD | 000000A6 | BROKEN BAR DE | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE DF | 00002580 | UPPER HALF BLOCK E0 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE E1 | 000000DF | LATIN SMALL LETTER SHARP S (German) E2 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX E3 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE E4 | 000000F5 | LATIN SMALL LETTER O WITH TILDE E5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE E6 | 000000B5 | MICRO SIGN E8 | 000000D7 | MULTIPLICATION SIGN E9 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE EA | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX EB | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE ED | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS EE | 000000AF | MACRON EF | 000000B4 | ACUTE ACCENT F0 | 000000AD | SOFT HYPHEN F1 | 000000B1 | PLUS-MINUS SIGN F3 | 000000BE | VULGAR FRACTION THREE QUARTERS F4 | 000000B6 | PILCROW SIGN F5 | 000000A7 | SECTION SIGN F6 | 000000F7 | DIVISION SIGN F7 | 000000B8 | CEDILLA F8 | 000000B0 | DEGREE SIGN F9 | 000000A8 | DIAERESIS FA | 000000B7 | MIDDLE DOT FB | 000000B9 | SUPERSCRIPT ONE FC | 000000B3 | SUPERSCRIPT THREE FD | 000000B2 | SUPERSCRIPT TWO FE | 000025A0 | BLACK SQUARE FF | 000000A0 | NO-BREAK SPACE =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]"ZZRecodeData/IBM290.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM290. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM290; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x3002, 0x300c, 0x300d, 0x3001, 0x30fb, 0x30f2, 0x30a1, 0x30a3, 0x30a5, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x30a7, 0x30a9, 0x30e3, 0x30e5, 0x30e7, 0x30c3, 0xfffd, 0x30fc, 0xfffd, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0xfffd, 0x30a2, 0x30a4, 0x30a6, 0x30a8, 0x30aa, 0x30ab, 0x30ad, 0x30af, 0x30b1, 0x30b3, 0xfffd, 0x30b5, 0x30b7, 0x30b9, 0x30bb, 0x30bd, 0x30bf, 0x30c1, 0x30c4, 0x30c6, 0x30c8, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0xfffd, 0xfffd, 0x30cf, 0x30d2, 0x30d5, 0xfffd, 0x203e, 0x30d8, 0x30db, 0x30de, 0x30df, 0x30e0, 0x30e1, 0x30e2, 0x30e4, 0x30e6, 0xfffd, 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x30ec, 0x30ed, 0x30ef, 0x30f3, 0x309b, 0x309c, 0xfffd, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0024, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xe3\x80\x82", "\xe3\x80\x8c", "\xe3\x80\x8d", "\xe3\x80\x81", "\xe3\x83\xbb", "\xe3\x83\xb2", "\xe3\x82\xa1", "\xe3\x82\xa3", "\xe3\x82\xa5", "\xc2\xa3", "\x2e", "\x3c", "\x28", "\x2b", "\x7c", "\x26", "\xe3\x82\xa7", "\xe3\x82\xa9", "\xe3\x83\xa3", "\xe3\x83\xa5", "\xe3\x83\xa7", "\xe3\x83\x83", "\xef\xbf\xbd", "\xe3\x83\xbc", "\xef\xbf\xbd", "\x21", "\xc2\xa5", "\x2a", "\x29", "\x3b", "\xc2\xac", "\x2d", "\x2f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa6", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x60", "\x3a", "\x23", "\x40", "\x27", "\x3d", "\x22", "\xef\xbf\xbd", "\xe3\x82\xa2", "\xe3\x82\xa4", "\xe3\x82\xa6", "\xe3\x82\xa8", "\xe3\x82\xaa", "\xe3\x82\xab", "\xe3\x82\xad", "\xe3\x82\xaf", "\xe3\x82\xb1", "\xe3\x82\xb3", "\xef\xbf\xbd", "\xe3\x82\xb5", "\xe3\x82\xb7", "\xe3\x82\xb9", "\xe3\x82\xbb", "\xe3\x82\xbd", "\xe3\x82\xbf", "\xe3\x83\x81", "\xe3\x83\x84", "\xe3\x83\x86", "\xe3\x83\x88", "\xe3\x83\x8a", "\xe3\x83\x8b", "\xe3\x83\x8c", "\xe3\x83\x8d", "\xe3\x83\x8e", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe3\x83\x8f", "\xe3\x83\x92", "\xe3\x83\x95", "\xef\xbf\xbd", "\xe2\x80\xbe", "\xe3\x83\x98", "\xe3\x83\x9b", "\xe3\x83\x9e", "\xe3\x83\x9f", "\xe3\x83\xa0", "\xe3\x83\xa1", "\xe3\x83\xa2", "\xe3\x83\xa4", "\xe3\x83\xa6", "\xef\xbf\xbd", "\xe3\x83\xa8", "\xe3\x83\xa9", "\xe3\x83\xaa", "\xe3\x83\xab", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe3\x83\xac", "\xe3\x83\xad", "\xe3\x83\xaf", "\xe3\x83\xb3", "\xe3\x82\x9b", "\xe3\x82\x9c", "\xef\xbf\xbd", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x24", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x5a", 0x00000022 => "\x7f", 0x00000023 => "\x7b", 0x00000024 => "\xe0", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\x7c", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x0000007c => "\x4f", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a3 => "\x4a", 0x000000a5 => "\x5b", 0x000000a6 => "\x6a", 0x000000ac => "\x5f", 0x0000203e => "\xa1", 0x00003001 => "\x44", 0x00003002 => "\x41", 0x0000300c => "\x42", 0x0000300d => "\x43", 0x0000309b => "\xbe", 0x0000309c => "\xbf", 0x000030a1 => "\x47", 0x000030a2 => "\x81", 0x000030a3 => "\x48", 0x000030a4 => "\x82", 0x000030a5 => "\x49", 0x000030a6 => "\x83", 0x000030a7 => "\x51", 0x000030a8 => "\x84", 0x000030a9 => "\x52", 0x000030aa => "\x85", 0x000030ab => "\x86", 0x000030ad => "\x87", 0x000030af => "\x88", 0x000030b1 => "\x89", 0x000030b3 => "\x8a", 0x000030b5 => "\x8c", 0x000030b7 => "\x8d", 0x000030b9 => "\x8e", 0x000030bb => "\x8f", 0x000030bd => "\x90", 0x000030bf => "\x91", 0x000030c1 => "\x92", 0x000030c3 => "\x56", 0x000030c4 => "\x93", 0x000030c6 => "\x94", 0x000030c8 => "\x95", 0x000030ca => "\x96", 0x000030cb => "\x97", 0x000030cc => "\x98", 0x000030cd => "\x99", 0x000030ce => "\x9a", 0x000030cf => "\x9d", 0x000030d2 => "\x9e", 0x000030d5 => "\x9f", 0x000030d8 => "\xa2", 0x000030db => "\xa3", 0x000030de => "\xa4", 0x000030df => "\xa5", 0x000030e0 => "\xa6", 0x000030e1 => "\xa7", 0x000030e2 => "\xa8", 0x000030e3 => "\x53", 0x000030e4 => "\xa9", 0x000030e5 => "\x54", 0x000030e6 => "\xaa", 0x000030e7 => "\x55", 0x000030e8 => "\xac", 0x000030e9 => "\xad", 0x000030ea => "\xae", 0x000030eb => "\xaf", 0x000030ec => "\xba", 0x000030ed => "\xbb", 0x000030ef => "\xbc", 0x000030f2 => "\x46", 0x000030f3 => "\xbd", 0x000030fb => "\x45", 0x000030fc => "\x58", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM290 - Conversion routines for IBM290 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM290. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990 alias CP290 alias EBCDIC-JP-KANA Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 41 | 00003002 | IDEOGRAPHIC FULL STOP 42 | 0000300C | LEFT CORNER BRACKET 43 | 0000300D | RIGHT CORNER BRACKET 44 | 00003001 | IDEOGRAPHIC COMMA 45 | 000030FB | KATAKANA MIDDLE DOT 46 | 000030F2 | KATAKANA LETTER WO 47 | 000030A1 | KATAKANA LETTER SMALL A 48 | 000030A3 | KATAKANA LETTER SMALL I 49 | 000030A5 | KATAKANA LETTER SMALL U 4A | 000000A3 | POUND SIGN 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 0000007C | VERTICAL LINE 50 | 00000026 | AMPERSAND 51 | 000030A7 | KATAKANA LETTER SMALL E 52 | 000030A9 | KATAKANA LETTER SMALL O 53 | 000030E3 | KATAKANA LETTER SMALL YA 54 | 000030E5 | KATAKANA LETTER SMALL YU 55 | 000030E7 | KATAKANA LETTER SMALL YO 56 | 000030C3 | KATAKANA LETTER SMALL TU 58 | 000030FC | KATAKANA-HIRAGANA PROLONGED SOUND MARK 5A | 00000021 | EXCLAMATION MARK 5B | 000000A5 | YEN SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 000000AC | NOT SIGN 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 6A | 000000A6 | BROKEN BAR 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 00000023 | NUMBER SIGN 7C | 00000040 | COMMERCIAL AT 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 81 | 000030A2 | KATAKANA LETTER A 82 | 000030A4 | KATAKANA LETTER I 83 | 000030A6 | KATAKANA LETTER U 84 | 000030A8 | KATAKANA LETTER E 85 | 000030AA | KATAKANA LETTER O 86 | 000030AB | KATAKANA LETTER KA 87 | 000030AD | KATAKANA LETTER KI 88 | 000030AF | KATAKANA LETTER KU 89 | 000030B1 | KATAKANA LETTER KE 8A | 000030B3 | KATAKANA LETTER KO 8C | 000030B5 | KATAKANA LETTER SA 8D | 000030B7 | KATAKANA LETTER SI 8E | 000030B9 | KATAKANA LETTER SU 8F | 000030BB | KATAKANA LETTER SE 90 | 000030BD | KATAKANA LETTER SO 91 | 000030BF | KATAKANA LETTER TA 92 | 000030C1 | KATAKANA LETTER TI 93 | 000030C4 | KATAKANA LETTER TU 94 | 000030C6 | KATAKANA LETTER TE 95 | 000030C8 | KATAKANA LETTER TO 96 | 000030CA | KATAKANA LETTER NA 97 | 000030CB | KATAKANA LETTER NI 98 | 000030CC | KATAKANA LETTER NU 99 | 000030CD | KATAKANA LETTER NE 9A | 000030CE | KATAKANA LETTER NO 9D | 000030CF | KATAKANA LETTER HA 9E | 000030D2 | KATAKANA LETTER HI 9F | 000030D5 | KATAKANA LETTER HU A1 | 0000203E | OVERLINE A2 | 000030D8 | KATAKANA LETTER HE A3 | 000030DB | KATAKANA LETTER HO A4 | 000030DE | KATAKANA LETTER MA A5 | 000030DF | KATAKANA LETTER MI A6 | 000030E0 | KATAKANA LETTER MU A7 | 000030E1 | KATAKANA LETTER ME A8 | 000030E2 | KATAKANA LETTER MO A9 | 000030E4 | KATAKANA LETTER YA AA | 000030E6 | KATAKANA LETTER YU AC | 000030E8 | KATAKANA LETTER YO AD | 000030E9 | KATAKANA LETTER RA AE | 000030EA | KATAKANA LETTER RI AF | 000030EB | KATAKANA LETTER RU BA | 000030EC | KATAKANA LETTER RE BB | 000030ED | KATAKANA LETTER RO BC | 000030EF | KATAKANA LETTER WA BD | 000030F3 | KATAKANA LETTER N BE | 0000309B | KATAKANA-HIRAGANA VOICED SOUND MARK BF | 0000309C | KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R E0 | 00000024 | DOLLAR SIGN E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]Zk55RecodeData/ISO_2033_1983.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ISO_2033-1983. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ISO_2033_1983; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x2446, 0x2447, 0x2448, 0x2449, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x007f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xe2\x91\x86", "\xe2\x91\x87", "\xe2\x91\x88", "\xe2\x91\x89", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x7f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000007f => "\x7f", 0x00002446 => "\x3a", 0x00002447 => "\x3b", 0x00002448 => "\x3c", 0x00002449 => "\x3d", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ISO_2033_1983 - Conversion routines for ISO_2033_1983 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for ISO_2033-1983. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 repertoiremap: mnemonic,ds source: ECMA registry alias ISO-IR-98 alias E13B Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 00002446 | OCR BRANCH BANK IDENTIFICATION 3B | 00002447 | OCR AMOUNT OF CHECK 3C | 00002448 | OCR DASH 3D | 00002449 | OCR CUSTOMER ACCOUNT NUMBER 7F | 0000007F | DELETE (DEL) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]l8OORecodeData/EBCDIC_UK.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for EBCDIC-UK. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::EBCDIC_UK; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0024, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0021, 0x00a3, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x203e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x005c, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x24", "\x2e", "\x3c", "\x28", "\x2b", "\x7c", "\x26", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x21", "\xc2\xa3", "\x2a", "\x29", "\x3b", "\xc2\xac", "\x2d", "\x2f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa6", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x60", "\x3a", "\x23", "\x40", "\x27", "\x3d", "\x22", "\xef\xbf\xbd", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe2\x80\xbe", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x7b", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x7d", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x5c", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x5a", 0x00000022 => "\x7f", 0x00000023 => "\x7b", 0x00000024 => "\x4a", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\x7c", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005c => "\xe0", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\xc0", 0x0000007c => "\x4f", 0x0000007d => "\xd0", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a3 => "\x5b", 0x000000a6 => "\x6a", 0x000000ac => "\x5f", 0x0000203e => "\xa1", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::EBCDIC_UK - Conversion routines for EBCDIC_UK =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for EBCDIC-UK. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 4A | 00000024 | DOLLAR SIGN 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 0000007C | VERTICAL LINE 50 | 00000026 | AMPERSAND 5A | 00000021 | EXCLAMATION MARK 5B | 000000A3 | POUND SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 000000AC | NOT SIGN 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 6A | 000000A6 | BROKEN BAR 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 00000023 | NUMBER SIGN 7C | 00000040 | COMMERCIAL AT 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R A1 | 0000203E | OVERLINE A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z C0 | 0000007B | LEFT CURLY BRACKET C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I D0 | 0000007D | RIGHT CURLY BRACKET D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R E0 | 0000005C | REVERSE SOLIDUS E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]cI^_^_RecodeData/TIS_620.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for TIS-620. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::TIS_620; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f, 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17, 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f, 0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, 0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f, 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37, 0x0e38, 0x0e39, 0x0e3a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0e3f, 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47, 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4e, 0x0e4f, 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, 0x0e58, 0x0e59, 0x0e5a, 0x0e5b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe0\xb8\x81", "\xe0\xb8\x82", "\xe0\xb8\x83", "\xe0\xb8\x84", "\xe0\xb8\x85", "\xe0\xb8\x86", "\xe0\xb8\x87", "\xe0\xb8\x88", "\xe0\xb8\x89", "\xe0\xb8\x8a", "\xe0\xb8\x8b", "\xe0\xb8\x8c", "\xe0\xb8\x8d", "\xe0\xb8\x8e", "\xe0\xb8\x8f", "\xe0\xb8\x90", "\xe0\xb8\x91", "\xe0\xb8\x92", "\xe0\xb8\x93", "\xe0\xb8\x94", "\xe0\xb8\x95", "\xe0\xb8\x96", "\xe0\xb8\x97", "\xe0\xb8\x98", "\xe0\xb8\x99", "\xe0\xb8\x9a", "\xe0\xb8\x9b", "\xe0\xb8\x9c", "\xe0\xb8\x9d", "\xe0\xb8\x9e", "\xe0\xb8\x9f", "\xe0\xb8\xa0", "\xe0\xb8\xa1", "\xe0\xb8\xa2", "\xe0\xb8\xa3", "\xe0\xb8\xa4", "\xe0\xb8\xa5", "\xe0\xb8\xa6", "\xe0\xb8\xa7", "\xe0\xb8\xa8", "\xe0\xb8\xa9", "\xe0\xb8\xaa", "\xe0\xb8\xab", "\xe0\xb8\xac", "\xe0\xb8\xad", "\xe0\xb8\xae", "\xe0\xb8\xaf", "\xe0\xb8\xb0", "\xe0\xb8\xb1", "\xe0\xb8\xb2", "\xe0\xb8\xb3", "\xe0\xb8\xb4", "\xe0\xb8\xb5", "\xe0\xb8\xb6", "\xe0\xb8\xb7", "\xe0\xb8\xb8", "\xe0\xb8\xb9", "\xe0\xb8\xba", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe0\xb8\xbf", "\xe0\xb9\x80", "\xe0\xb9\x81", "\xe0\xb9\x82", "\xe0\xb9\x83", "\xe0\xb9\x84", "\xe0\xb9\x85", "\xe0\xb9\x86", "\xe0\xb9\x87", "\xe0\xb9\x88", "\xe0\xb9\x89", "\xe0\xb9\x8a", "\xe0\xb9\x8b", "\xe0\xb9\x8c", "\xe0\xb9\x8d", "\xe0\xb9\x8e", "\xe0\xb9\x8f", "\xe0\xb9\x90", "\xe0\xb9\x91", "\xe0\xb9\x92", "\xe0\xb9\x93", "\xe0\xb9\x94", "\xe0\xb9\x95", "\xe0\xb9\x96", "\xe0\xb9\x97", "\xe0\xb9\x98", "\xe0\xb9\x99", "\xe0\xb9\x9a", "\xe0\xb9\x9b", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000e01 => "\xa1", 0x00000e02 => "\xa2", 0x00000e03 => "\xa3", 0x00000e04 => "\xa4", 0x00000e05 => "\xa5", 0x00000e06 => "\xa6", 0x00000e07 => "\xa7", 0x00000e08 => "\xa8", 0x00000e09 => "\xa9", 0x00000e0a => "\xaa", 0x00000e0b => "\xab", 0x00000e0c => "\xac", 0x00000e0d => "\xad", 0x00000e0e => "\xae", 0x00000e0f => "\xaf", 0x00000e10 => "\xb0", 0x00000e11 => "\xb1", 0x00000e12 => "\xb2", 0x00000e13 => "\xb3", 0x00000e14 => "\xb4", 0x00000e15 => "\xb5", 0x00000e16 => "\xb6", 0x00000e17 => "\xb7", 0x00000e18 => "\xb8", 0x00000e19 => "\xb9", 0x00000e1a => "\xba", 0x00000e1b => "\xbb", 0x00000e1c => "\xbc", 0x00000e1d => "\xbd", 0x00000e1e => "\xbe", 0x00000e1f => "\xbf", 0x00000e20 => "\xc0", 0x00000e21 => "\xc1", 0x00000e22 => "\xc2", 0x00000e23 => "\xc3", 0x00000e24 => "\xc4", 0x00000e25 => "\xc5", 0x00000e26 => "\xc6", 0x00000e27 => "\xc7", 0x00000e28 => "\xc8", 0x00000e29 => "\xc9", 0x00000e2a => "\xca", 0x00000e2b => "\xcb", 0x00000e2c => "\xcc", 0x00000e2d => "\xcd", 0x00000e2e => "\xce", 0x00000e2f => "\xcf", 0x00000e30 => "\xd0", 0x00000e31 => "\xd1", 0x00000e32 => "\xd2", 0x00000e33 => "\xd3", 0x00000e34 => "\xd4", 0x00000e35 => "\xd5", 0x00000e36 => "\xd6", 0x00000e37 => "\xd7", 0x00000e38 => "\xd8", 0x00000e39 => "\xd9", 0x00000e3a => "\xda", 0x00000e3f => "\xdf", 0x00000e40 => "\xe0", 0x00000e41 => "\xe1", 0x00000e42 => "\xe2", 0x00000e43 => "\xe3", 0x00000e44 => "\xe4", 0x00000e45 => "\xe5", 0x00000e46 => "\xe6", 0x00000e47 => "\xe7", 0x00000e48 => "\xe8", 0x00000e49 => "\xe9", 0x00000e4a => "\xea", 0x00000e4b => "\xeb", 0x00000e4c => "\xec", 0x00000e4d => "\xed", 0x00000e4e => "\xee", 0x00000e4f => "\xef", 0x00000e50 => "\xf0", 0x00000e51 => "\xf1", 0x00000e52 => "\xf2", 0x00000e53 => "\xf3", 0x00000e54 => "\xf4", 0x00000e55 => "\xf5", 0x00000e56 => "\xf6", 0x00000e57 => "\xf7", 0x00000e58 => "\xf8", 0x00000e59 => "\xf9", 0x00000e5a => "\xfa", 0x00000e5b => "\xfb", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::TIS_620 - Conversion routines for TIS-620 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for TIS-620. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 sources: Thai Industrial Standards Institute, ECMA registry, IANA alias TIS620 alias TIS620-0 alias TIS620.2529-1 alias TIS620.2533-0 alias ISO-IR-166 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) A1 | 00000E01 | THAI CHARACTER KO KAI A2 | 00000E02 | THAI CHARACTER KHO KHAI A3 | 00000E03 | THAI CHARACTER KHO KHUAT A4 | 00000E04 | THAI CHARACTER KHO KHWAI A5 | 00000E05 | THAI CHARACTER KHO KHON A6 | 00000E06 | THAI CHARACTER KHO RAKHANG A7 | 00000E07 | THAI CHARACTER NGO NGU A8 | 00000E08 | THAI CHARACTER CHO CHAN A9 | 00000E09 | THAI CHARACTER CHO CHING AA | 00000E0A | THAI CHARACTER CHO CHANG AB | 00000E0B | THAI CHARACTER SO SO AC | 00000E0C | THAI CHARACTER CHO CHOE AD | 00000E0D | THAI CHARACTER YO YING AE | 00000E0E | THAI CHARACTER DO CHADA AF | 00000E0F | THAI CHARACTER TO PATAK B0 | 00000E10 | THAI CHARACTER THO THAN B1 | 00000E11 | THAI CHARACTER THO NANGMONTHO B2 | 00000E12 | THAI CHARACTER THO PHUTHAO B3 | 00000E13 | THAI CHARACTER NO NEN B4 | 00000E14 | THAI CHARACTER DO DEK B5 | 00000E15 | THAI CHARACTER TO TAO B6 | 00000E16 | THAI CHARACTER THO THUNG B7 | 00000E17 | THAI CHARACTER THO THAHAN B8 | 00000E18 | THAI CHARACTER THO THONG B9 | 00000E19 | THAI CHARACTER NO NU BA | 00000E1A | THAI CHARACTER BO BAIMAI BB | 00000E1B | THAI CHARACTER PO PLA BC | 00000E1C | THAI CHARACTER PHO PHUNG BD | 00000E1D | THAI CHARACTER FO FA BE | 00000E1E | THAI CHARACTER PHO PHAN BF | 00000E1F | THAI CHARACTER FO FAN C0 | 00000E20 | THAI CHARACTER PHO SAMPHAO C1 | 00000E21 | THAI CHARACTER MO MA C2 | 00000E22 | THAI CHARACTER YO YAK C3 | 00000E23 | THAI CHARACTER RO RUA C4 | 00000E24 | THAI CHARACTER RU C5 | 00000E25 | THAI CHARACTER LO LING C6 | 00000E26 | THAI CHARACTER LU C7 | 00000E27 | THAI CHARACTER WO WAEN C8 | 00000E28 | THAI CHARACTER SO SALA C9 | 00000E29 | THAI CHARACTER SO RUSI CA | 00000E2A | THAI CHARACTER SO SUA CB | 00000E2B | THAI CHARACTER HO HIP CC | 00000E2C | THAI CHARACTER LO CHULA CD | 00000E2D | THAI CHARACTER O ANG CE | 00000E2E | THAI CHARACTER HO NOKHUK CF | 00000E2F | THAI CHARACTER PAIYANNOI D0 | 00000E30 | THAI CHARACTER SARA A D1 | 00000E31 | THAI CHARACTER MAI HAN-AKAT D2 | 00000E32 | THAI CHARACTER SARA AA D3 | 00000E33 | THAI CHARACTER SARA AM D4 | 00000E34 | THAI CHARACTER SARA I D5 | 00000E35 | THAI CHARACTER SARA II D6 | 00000E36 | THAI CHARACTER SARA UE D7 | 00000E37 | THAI CHARACTER SARA UEE D8 | 00000E38 | THAI CHARACTER SARA U D9 | 00000E39 | THAI CHARACTER SARA UU DA | 00000E3A | THAI CHARACTER PHINTHU DF | 00000E3F | THAI CHARACTER SYMBOL BAHT E0 | 00000E40 | THAI CHARACTER SARA E E1 | 00000E41 | THAI CHARACTER SARA AE E2 | 00000E42 | THAI CHARACTER SARA O E3 | 00000E43 | THAI CHARACTER SARA AI MAIMUAN E4 | 00000E44 | THAI CHARACTER SARA AI MAIMALAI E5 | 00000E45 | THAI CHARACTER LAKKHANGYAO E6 | 00000E46 | THAI CHARACTER MAIYAMOK E7 | 00000E47 | THAI CHARACTER MAITAIKHU E8 | 00000E48 | THAI CHARACTER MAI EK E9 | 00000E49 | THAI CHARACTER MAI THO EA | 00000E4A | THAI CHARACTER MAI TRI EB | 00000E4B | THAI CHARACTER MAI CHATTAWA EC | 00000E4C | THAI CHARACTER THANTHAKHAT ED | 00000E4D | THAI CHARACTER NIKHAHIT EE | 00000E4E | THAI CHARACTER YAMAKKAN EF | 00000E4F | THAI CHARACTER FONGMAN F0 | 00000E50 | THAI DIGIT ZERO F1 | 00000E51 | THAI DIGIT ONE F2 | 00000E52 | THAI DIGIT TWO F3 | 00000E53 | THAI DIGIT THREE F4 | 00000E54 | THAI DIGIT FOUR F5 | 00000E55 | THAI DIGIT FIVE F6 | 00000E56 | THAI DIGIT SIX F7 | 00000E57 | THAI DIGIT SEVEN F8 | 00000E58 | THAI DIGIT EIGHT F9 | 00000E59 | THAI DIGIT NINE FA | 00000E5A | THAI CHARACTER ANGKHANKHU FB | 00000E5B | THAI CHARACTER KHOMUT =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]dc3k3kRecodeData/MAC_SAMI.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for MAC-SAMI. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::MAC_SAMI; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, 0x00dd, 0x00b0, 0x010c, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, 0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x00c6, 0x00d8, 0x0110, 0x014a, 0x821e, 0x821f, 0x0160, 0x0166, 0x2202, 0x017d, 0x010d, 0x0111, 0x014b, 0x0161, 0x0167, 0x017e, 0x00e6, 0x00f8, 0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, 0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153, 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, 0x00ff, 0x0178, 0x2044, 0x00a4, 0x00d0, 0x00f0, 0x00de, 0x00fe, 0x00fd, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4, 0xf8ff, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x01b7, 0x0292, 0x01ee, 0x01ef, 0x01e4, 0x01e5, 0x01e6, 0x01e7, 0x01e8, 0x01e9, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc3\x84", "\xc3\x85", "\xc3\x87", "\xc3\x89", "\xc3\x91", "\xc3\x96", "\xc3\x9c", "\xc3\xa1", "\xc3\xa0", "\xc3\xa2", "\xc3\xa4", "\xc3\xa3", "\xc3\xa5", "\xc3\xa7", "\xc3\xa9", "\xc3\xa8", "\xc3\xaa", "\xc3\xab", "\xc3\xad", "\xc3\xac", "\xc3\xae", "\xc3\xaf", "\xc3\xb1", "\xc3\xb3", "\xc3\xb2", "\xc3\xb4", "\xc3\xb6", "\xc3\xb5", "\xc3\xba", "\xc3\xb9", "\xc3\xbb", "\xc3\xbc", "\xc3\x9d", "\xc2\xb0", "\xc4\x8c", "\xc2\xa3", "\xc2\xa7", "\xe2\x80\xa2", "\xc2\xb6", "\xc3\x9f", "\xc2\xae", "\xc2\xa9", "\xe2\x84\xa2", "\xc2\xb4", "\xc2\xa8", "\xe2\x89\xa0", "\xc3\x86", "\xc3\x98", "\xc4\x90", "\xc5\x8a", "\xe8\x88\x9e", "\xe8\x88\x9f", "\xc5\xa0", "\xc5\xa6", "\xe2\x88\x82", "\xc5\xbd", "\xc4\x8d", "\xc4\x91", "\xc5\x8b", "\xc5\xa1", "\xc5\xa7", "\xc5\xbe", "\xc3\xa6", "\xc3\xb8", "\xc2\xbf", "\xc2\xa1", "\xc2\xac", "\xe2\x88\x9a", "\xc6\x92", "\xe2\x89\x88", "\xe2\x88\x86", "\xc2\xab", "\xc2\xbb", "\xe2\x80\xa6", "\xc2\xa0", "\xc3\x80", "\xc3\x83", "\xc3\x95", "\xc5\x92", "\xc5\x93", "\xe2\x80\x93", "\xe2\x80\x94", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x98", "\xe2\x80\x99", "\xc3\xb7", "\xe2\x97\x8a", "\xc3\xbf", "\xc5\xb8", "\xe2\x81\x84", "\xc2\xa4", "\xc3\x90", "\xc3\xb0", "\xc3\x9e", "\xc3\xbe", "\xc3\xbd", "\xc2\xb7", "\xe2\x80\x9a", "\xe2\x80\x9e", "\xe2\x80\xb0", "\xc3\x82", "\xc3\x8a", "\xc3\x81", "\xc3\x8b", "\xc3\x88", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x8c", "\xc3\x93", "\xc3\x94", "\xef\xa3\xbf", "\xc3\x92", "\xc3\x9a", "\xc3\x9b", "\xc3\x99", "\xc4\xb1", "\xc6\xb7", "\xca\x92", "\xc7\xae", "\xc7\xaf", "\xc7\xa4", "\xc7\xa5", "\xc7\xa6", "\xc7\xa7", "\xc7\xa8", "\xc7\xa9", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xca", 0x000000a1 => "\xc1", 0x000000a3 => "\xa3", 0x000000a4 => "\xdb", 0x000000a7 => "\xa4", 0x000000a8 => "\xac", 0x000000a9 => "\xa9", 0x000000ab => "\xc7", 0x000000ac => "\xc2", 0x000000ae => "\xa8", 0x000000b0 => "\xa1", 0x000000b4 => "\xab", 0x000000b6 => "\xa6", 0x000000b7 => "\xe1", 0x000000bb => "\xc8", 0x000000bf => "\xc0", 0x000000c0 => "\xcb", 0x000000c1 => "\xe7", 0x000000c2 => "\xe5", 0x000000c3 => "\xcc", 0x000000c4 => "\x80", 0x000000c5 => "\x81", 0x000000c6 => "\xae", 0x000000c7 => "\x82", 0x000000c8 => "\xe9", 0x000000c9 => "\x83", 0x000000ca => "\xe6", 0x000000cb => "\xe8", 0x000000cc => "\xed", 0x000000cd => "\xea", 0x000000ce => "\xeb", 0x000000cf => "\xec", 0x000000d0 => "\xdc", 0x000000d1 => "\x84", 0x000000d2 => "\xf1", 0x000000d3 => "\xee", 0x000000d4 => "\xef", 0x000000d5 => "\xcd", 0x000000d6 => "\x85", 0x000000d8 => "\xaf", 0x000000d9 => "\xf4", 0x000000da => "\xf2", 0x000000db => "\xf3", 0x000000dc => "\x86", 0x000000dd => "\xa0", 0x000000de => "\xde", 0x000000df => "\xa7", 0x000000e0 => "\x88", 0x000000e1 => "\x87", 0x000000e2 => "\x89", 0x000000e3 => "\x8b", 0x000000e4 => "\x8a", 0x000000e5 => "\x8c", 0x000000e6 => "\xbe", 0x000000e7 => "\x8d", 0x000000e8 => "\x8f", 0x000000e9 => "\x8e", 0x000000ea => "\x90", 0x000000eb => "\x91", 0x000000ec => "\x93", 0x000000ed => "\x92", 0x000000ee => "\x94", 0x000000ef => "\x95", 0x000000f0 => "\xdd", 0x000000f1 => "\x96", 0x000000f2 => "\x98", 0x000000f3 => "\x97", 0x000000f4 => "\x99", 0x000000f5 => "\x9b", 0x000000f6 => "\x9a", 0x000000f7 => "\xd6", 0x000000f8 => "\xbf", 0x000000f9 => "\x9d", 0x000000fa => "\x9c", 0x000000fb => "\x9e", 0x000000fc => "\x9f", 0x000000fd => "\xe0", 0x000000fe => "\xdf", 0x000000ff => "\xd8", 0x0000010c => "\xa2", 0x0000010d => "\xb8", 0x00000110 => "\xb0", 0x00000111 => "\xb9", 0x00000131 => "\xf5", 0x0000014a => "\xb1", 0x0000014b => "\xba", 0x00000152 => "\xce", 0x00000153 => "\xcf", 0x00000160 => "\xb4", 0x00000161 => "\xbb", 0x00000166 => "\xb5", 0x00000167 => "\xbc", 0x00000178 => "\xd9", 0x0000017d => "\xb7", 0x0000017e => "\xbd", 0x00000192 => "\xc4", 0x000001b7 => "\xf6", 0x000001e4 => "\xfa", 0x000001e5 => "\xfb", 0x000001e6 => "\xfc", 0x000001e7 => "\xfd", 0x000001e8 => "\xfe", 0x000001e9 => "\xff", 0x000001ee => "\xf8", 0x000001ef => "\xf9", 0x00000292 => "\xf7", 0x00002013 => "\xd0", 0x00002014 => "\xd1", 0x00002018 => "\xd4", 0x00002019 => "\xd5", 0x0000201a => "\xe2", 0x0000201c => "\xd2", 0x0000201d => "\xd3", 0x0000201e => "\xe3", 0x00002022 => "\xa5", 0x00002026 => "\xc9", 0x00002030 => "\xe4", 0x00002044 => "\xda", 0x00002122 => "\xaa", 0x00002202 => "\xb6", 0x00002206 => "\xc6", 0x0000221a => "\xc3", 0x00002248 => "\xc5", 0x00002260 => "\xad", 0x000025ca => "\xd7", 0x0000821e => "\xb2", 0x0000821f => "\xb3", 0x0000f8ff => "\xf0", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::MAC_SAMI - Conversion routines for MAC-SAMI =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for MAC-SAMI. =head1 COMMENTS The following comments have been extracted from the original charmap: source: http://www.indigo.ie/egt/standards/se/mac-sami.html author: Regnor Jernsletten ERegnor.Jernsletten@sami.uit.noE date: 2001-07-31 comment: Macintosh sami standard. Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL 01 | 00000001 | START OF HEADING 02 | 00000002 | START OF TEXT 03 | 00000003 | END OF TEXT 04 | 00000004 | END OF TRANSMISSION 05 | 00000005 | ENQUIRY 06 | 00000006 | ACKNOWLEDGE 07 | 00000007 | BELL 08 | 00000008 | BACKSPACE 09 | 00000009 | HORIZONTAL TABULATION 0A | 0000000A | LINE FEED 0B | 0000000B | VERTICAL TABULATION 0C | 0000000C | FORM FEED 0D | 0000000D | CARRIAGE RETURN 0E | 0000000E | SHIFT OUT 0F | 0000000F | SHIFT IN 10 | 00000010 | DATA LINK ESCAPE 11 | 00000011 | DEVICE CONTROL ONE 12 | 00000012 | DEVICE CONTROL TWO 13 | 00000013 | DEVICE CONTROL THREE 14 | 00000014 | DEVICE CONTROL FOUR 15 | 00000015 | NEGATIVE ACKNOWLEDGE 16 | 00000016 | SYNCHRONOUS IDLE 17 | 00000017 | END OF TRANSMISSION BLOCK 18 | 00000018 | CANCEL 19 | 00000019 | END OF MEDIUM 1A | 0000001A | SUBSTITUTE 1B | 0000001B | ESCAPE 1C | 0000001C | FILE SEPARATOR 1D | 0000001D | GROUP SEPARATOR 1E | 0000001E | RECORD SEPARATOR 1F | 0000001F | UNIT SEPARATOR 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE 80 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 81 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 82 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 83 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 84 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 85 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 86 | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 87 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 88 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 89 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 8A | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 8B | 000000E3 | LATIN SMALL LETTER A WITH TILDE 8C | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 8D | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 8E | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 8F | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 90 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 91 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 92 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 93 | 000000EC | LATIN SMALL LETTER I WITH GRAVE 94 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 95 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 96 | 000000F1 | LATIN SMALL LETTER N WITH TILDE 97 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE 98 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE 99 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX 9A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 9B | 000000F5 | LATIN SMALL LETTER O WITH TILDE 9C | 000000FA | LATIN SMALL LETTER U WITH ACUTE 9D | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 9E | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX 9F | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS A0 | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE A1 | 000000B0 | DEGREE SIGN A2 | 0000010C | LATIN CAPITAL LETTER C WITH CARON A3 | 000000A3 | POUND SIGN A4 | 000000A7 | SECTION SIGN A5 | 00002022 | BULLET A6 | 000000B6 | PILCROW SIGN A7 | 000000DF | LATIN SMALL LETTER SHARP S (German) A8 | 000000AE | REGISTERED SIGN A9 | 000000A9 | COPYRIGHT SIGN AA | 00002122 | TRADE MARK SIGN AB | 000000B4 | ACUTE ACCENT AC | 000000A8 | DIAERESIS AD | 00002260 | NOT EQUAL TO AE | 000000C6 | LATIN CAPITAL LETTER AE AF | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE B0 | 00000110 | LATIN CAPITAL LETTER D WITH STROKE B1 | 0000014A | LATIN CAPITAL LETTER ENG B2 | 0000821E | LATIN CAPITAL LETTER H WITH CARON B3 | 0000821F | LATIN SMALL LETTER H WITH CARON B4 | 00000160 | LATIN CAPITAL LETTER S WITH CARON B5 | 00000166 | LATIN CAPITAL LETTER T WITH STROKE B6 | 00002202 | PARTIAL DIFFERENTIAL B7 | 0000017D | LATIN CAPITAL LETTER Z WITH CARON B8 | 0000010D | LATIN SMALL LETTER C WITH CARON B9 | 00000111 | LATIN SMALL LETTER D WITH STROKE BA | 0000014B | LATIN SMALL LETTER ENG BB | 00000161 | LATIN SMALL LETTER S WITH CARON BC | 00000167 | LATIN SMALL LETTER T WITH STROKE BD | 0000017E | LATIN SMALL LETTER Z WITH CARON BE | 000000E6 | LATIN SMALL LETTER AE BF | 000000F8 | LATIN SMALL LETTER O WITH STROKE C0 | 000000BF | INVERTED QUESTION MARK C1 | 000000A1 | INVERTED EXCLAMATION MARK C2 | 000000AC | NOT SIGN C3 | 0000221A | SQUARE ROOT C4 | 00000192 | LATIN SMALL LETTER F WITH HOOK C5 | 00002248 | ALMOST EQUAL TO C6 | 00002206 | INCREMENT C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK C8 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK C9 | 00002026 | HORIZONTAL ELLIPSIS CA | 000000A0 | NO-BREAK SPACE CB | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE CC | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE CD | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE CE | 00000152 | LATIN CAPITAL LETTER LIGATURE OE CF | 00000153 | LATIN SMALL LETTER LIGATURE OE D0 | 00002013 | EN DASH D1 | 00002014 | EM DASH D2 | 0000201C | LEFT DOUBLE QUOTATION MARK D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK D4 | 00002018 | LEFT SINGLE QUOTATION MARK D5 | 00002019 | RIGHT SINGLE QUOTATION MARK D6 | 000000F7 | DIVISION SIGN D7 | 000025CA | LOZENGE D8 | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS D9 | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS DA | 00002044 | FRACTION SLASH DB | 000000A4 | CURRENCY SIGN DC | 000000D0 | LATIN CAPITAL LETTER ETH DD | 000000F0 | LATIN SMALL LETTER ETH DE | 000000DE | LATIN CAPITAL LETTER THORN DF | 000000FE | LATIN SMALL LETTER THORN E0 | 000000FD | LATIN SMALL LETTER Y WITH ACUTE E1 | 000000B7 | MIDDLE DOT E2 | 0000201A | SINGLE LOW-9 QUOTATION MARK E3 | 0000201E | DOUBLE LOW-9 QUOTATION MARK E4 | 00002030 | PER MILLE SIGN E5 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX E6 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX E7 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE E8 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS E9 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE EA | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE EB | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX EC | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS ED | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE EF | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX F0 | 0000F8FF | APPLE SIGN F1 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE F2 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE F3 | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX F4 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE F5 | 00000131 | LATIN SMALL LETTER DOTLESS I F6 | 000001B7 | LATIN CAPITAL LETTER EZH F7 | 00000292 | LATIN SMALL LETTER EZH F8 | 000001EE | LATIN CAPITAL LETTER EZH WITH CARON F9 | 000001EF | LATIN SMALL LETTER EZH WITH CARON FA | 000001E4 | LATIN CAPITAL LETTER G WITH STROKE FB | 000001E5 | LATIN SMALLL LETTER G WITH STROKE FC | 000001E6 | LATIN CAPITAL LETTER G WITH CARON FD | 000001E7 | LATIN SMALL LETTER G WITH CARON FE | 000001E8 | LATIN CAPITAL LETTER K WITH CARON FF | 000001E9 | LATIN SMALL LETTER K WITH CARON =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]/iOORecodeData/IBM281.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM281. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM281; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x203e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0024, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa3", "\x2e", "\x3c", "\x28", "\x2b", "\x7c", "\x26", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x21", "\xc2\xa5", "\x2a", "\x29", "\x3b", "\xc2\xac", "\x2d", "\x2f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa6", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x60", "\x3a", "\x23", "\x40", "\x27", "\x3d", "\x22", "\xef\xbf\xbd", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe2\x80\xbe", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x7b", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x7d", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x24", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x5a", 0x00000022 => "\x7f", 0x00000023 => "\x7b", 0x00000024 => "\xe0", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\x7c", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\xc0", 0x0000007c => "\x4f", 0x0000007d => "\xd0", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a3 => "\x4a", 0x000000a5 => "\x5b", 0x000000a6 => "\x6a", 0x000000ac => "\x5f", 0x0000203e => "\xa1", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM281 - Conversion routines for IBM281 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM281. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990 alias EBCDIC-JP-E alias CP281 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 4A | 000000A3 | POUND SIGN 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 0000007C | VERTICAL LINE 50 | 00000026 | AMPERSAND 5A | 00000021 | EXCLAMATION MARK 5B | 000000A5 | YEN SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 000000AC | NOT SIGN 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 6A | 000000A6 | BROKEN BAR 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 00000023 | NUMBER SIGN 7C | 00000040 | COMMERCIAL AT 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R A1 | 0000203E | OVERLINE A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z C0 | 0000007B | LEFT CURLY BRACKET C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I D0 | 0000007D | RIGHT CURLY BRACKET D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R E0 | 00000024 | DOLLAR SIGN E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK])΄kkRecodeData/IBM855.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM855. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM855; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404, 0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408, 0x0459, 0x0409, 0x045a, 0x040a, 0x045b, 0x040b, 0x045c, 0x040c, 0x045e, 0x040e, 0x045f, 0x040f, 0x044e, 0x042e, 0x044a, 0x042a, 0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414, 0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438, 0x0418, 0x2563, 0x2551, 0x2557, 0x255d, 0x0439, 0x0419, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x043a, 0x041a, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, 0x043b, 0x041b, 0x043c, 0x041c, 0x043d, 0x041d, 0x043e, 0x041e, 0x043f, 0x2518, 0x250c, 0x2588, 0x2584, 0x041f, 0x044f, 0x2580, 0x042f, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443, 0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044c, 0x042c, 0x2116, 0x00ad, 0x044b, 0x042b, 0x0437, 0x0417, 0x0448, 0x0428, 0x044d, 0x042d, 0x0449, 0x0429, 0x0447, 0x0427, 0x00a7, 0x25a0, 0x00a0, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xd1\x92", "\xd0\x82", "\xd1\x93", "\xd0\x83", "\xd1\x91", "\xd0\x81", "\xd1\x94", "\xd0\x84", "\xd1\x95", "\xd0\x85", "\xd1\x96", "\xd0\x86", "\xd1\x97", "\xd0\x87", "\xd1\x98", "\xd0\x88", "\xd1\x99", "\xd0\x89", "\xd1\x9a", "\xd0\x8a", "\xd1\x9b", "\xd0\x8b", "\xd1\x9c", "\xd0\x8c", "\xd1\x9e", "\xd0\x8e", "\xd1\x9f", "\xd0\x8f", "\xd1\x8e", "\xd0\xae", "\xd1\x8a", "\xd0\xaa", "\xd0\xb0", "\xd0\x90", "\xd0\xb1", "\xd0\x91", "\xd1\x86", "\xd0\xa6", "\xd0\xb4", "\xd0\x94", "\xd0\xb5", "\xd0\x95", "\xd1\x84", "\xd0\xa4", "\xd0\xb3", "\xd0\x93", "\xc2\xab", "\xc2\xbb", "\xe2\x96\x91", "\xe2\x96\x92", "\xe2\x96\x93", "\xe2\x94\x82", "\xe2\x94\xa4", "\xd1\x85", "\xd0\xa5", "\xd0\xb8", "\xd0\x98", "\xe2\x95\xa3", "\xe2\x95\x91", "\xe2\x95\x97", "\xe2\x95\x9d", "\xd0\xb9", "\xd0\x99", "\xe2\x94\x90", "\xe2\x94\x94", "\xe2\x94\xb4", "\xe2\x94\xac", "\xe2\x94\x9c", "\xe2\x94\x80", "\xe2\x94\xbc", "\xd0\xba", "\xd0\x9a", "\xe2\x95\x9a", "\xe2\x95\x94", "\xe2\x95\xa9", "\xe2\x95\xa6", "\xe2\x95\xa0", "\xe2\x95\x90", "\xe2\x95\xac", "\xc2\xa4", "\xd0\xbb", "\xd0\x9b", "\xd0\xbc", "\xd0\x9c", "\xd0\xbd", "\xd0\x9d", "\xd0\xbe", "\xd0\x9e", "\xd0\xbf", "\xe2\x94\x98", "\xe2\x94\x8c", "\xe2\x96\x88", "\xe2\x96\x84", "\xd0\x9f", "\xd1\x8f", "\xe2\x96\x80", "\xd0\xaf", "\xd1\x80", "\xd0\xa0", "\xd1\x81", "\xd0\xa1", "\xd1\x82", "\xd0\xa2", "\xd1\x83", "\xd0\xa3", "\xd0\xb6", "\xd0\x96", "\xd0\xb2", "\xd0\x92", "\xd1\x8c", "\xd0\xac", "\xe2\x84\x96", "\xc2\xad", "\xd1\x8b", "\xd0\xab", "\xd0\xb7", "\xd0\x97", "\xd1\x88", "\xd0\xa8", "\xd1\x8d", "\xd0\xad", "\xd1\x89", "\xd0\xa9", "\xd1\x87", "\xd0\xa7", "\xc2\xa7", "\xe2\x96\xa0", "\xc2\xa0", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xff", 0x000000a4 => "\xcf", 0x000000a7 => "\xfd", 0x000000ab => "\xae", 0x000000ad => "\xf0", 0x000000bb => "\xaf", 0x00000401 => "\x85", 0x00000402 => "\x81", 0x00000403 => "\x83", 0x00000404 => "\x87", 0x00000405 => "\x89", 0x00000406 => "\x8b", 0x00000407 => "\x8d", 0x00000408 => "\x8f", 0x00000409 => "\x91", 0x0000040a => "\x93", 0x0000040b => "\x95", 0x0000040c => "\x97", 0x0000040e => "\x99", 0x0000040f => "\x9b", 0x00000410 => "\xa1", 0x00000411 => "\xa3", 0x00000412 => "\xec", 0x00000413 => "\xad", 0x00000414 => "\xa7", 0x00000415 => "\xa9", 0x00000416 => "\xea", 0x00000417 => "\xf4", 0x00000418 => "\xb8", 0x00000419 => "\xbe", 0x0000041a => "\xc7", 0x0000041b => "\xd1", 0x0000041c => "\xd3", 0x0000041d => "\xd5", 0x0000041e => "\xd7", 0x0000041f => "\xdd", 0x00000420 => "\xe2", 0x00000421 => "\xe4", 0x00000422 => "\xe6", 0x00000423 => "\xe8", 0x00000424 => "\xab", 0x00000425 => "\xb6", 0x00000426 => "\xa5", 0x00000427 => "\xfc", 0x00000428 => "\xf6", 0x00000429 => "\xfa", 0x0000042a => "\x9f", 0x0000042b => "\xf2", 0x0000042c => "\xee", 0x0000042d => "\xf8", 0x0000042e => "\x9d", 0x0000042f => "\xe0", 0x00000430 => "\xa0", 0x00000431 => "\xa2", 0x00000432 => "\xeb", 0x00000433 => "\xac", 0x00000434 => "\xa6", 0x00000435 => "\xa8", 0x00000436 => "\xe9", 0x00000437 => "\xf3", 0x00000438 => "\xb7", 0x00000439 => "\xbd", 0x0000043a => "\xc6", 0x0000043b => "\xd0", 0x0000043c => "\xd2", 0x0000043d => "\xd4", 0x0000043e => "\xd6", 0x0000043f => "\xd8", 0x00000440 => "\xe1", 0x00000441 => "\xe3", 0x00000442 => "\xe5", 0x00000443 => "\xe7", 0x00000444 => "\xaa", 0x00000445 => "\xb5", 0x00000446 => "\xa4", 0x00000447 => "\xfb", 0x00000448 => "\xf5", 0x00000449 => "\xf9", 0x0000044a => "\x9e", 0x0000044b => "\xf1", 0x0000044c => "\xed", 0x0000044d => "\xf7", 0x0000044e => "\x9c", 0x0000044f => "\xde", 0x00000451 => "\x84", 0x00000452 => "\x80", 0x00000453 => "\x82", 0x00000454 => "\x86", 0x00000455 => "\x88", 0x00000456 => "\x8a", 0x00000457 => "\x8c", 0x00000458 => "\x8e", 0x00000459 => "\x90", 0x0000045a => "\x92", 0x0000045b => "\x94", 0x0000045c => "\x96", 0x0000045e => "\x98", 0x0000045f => "\x9a", 0x00002116 => "\xef", 0x00002500 => "\xc4", 0x00002502 => "\xb3", 0x0000250c => "\xda", 0x00002510 => "\xbf", 0x00002514 => "\xc0", 0x00002518 => "\xd9", 0x0000251c => "\xc3", 0x00002524 => "\xb4", 0x0000252c => "\xc2", 0x00002534 => "\xc1", 0x0000253c => "\xc5", 0x00002550 => "\xcd", 0x00002551 => "\xba", 0x00002554 => "\xc9", 0x00002557 => "\xbb", 0x0000255a => "\xc8", 0x0000255d => "\xbc", 0x00002560 => "\xcc", 0x00002563 => "\xb9", 0x00002566 => "\xcb", 0x00002569 => "\xca", 0x0000256c => "\xce", 0x00002580 => "\xdf", 0x00002584 => "\xdc", 0x00002588 => "\xdb", 0x00002591 => "\xb0", 0x00002592 => "\xb1", 0x00002593 => "\xb2", 0x000025a0 => "\xfe", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM855 - Conversion routines for IBM855 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM855. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP855 alias 855 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000452 | CYRILLIC SMALL LETTER DJE (Serbocroatian) 81 | 00000402 | CYRILLIC CAPITAL LETTER DJE (Serbocroatian) 82 | 00000453 | CYRILLIC SMALL LETTER GJE 83 | 00000403 | CYRILLIC CAPITAL LETTER GJE 84 | 00000451 | CYRILLIC SMALL LETTER IO 85 | 00000401 | CYRILLIC CAPITAL LETTER IO 86 | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE 87 | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE 88 | 00000455 | CYRILLIC SMALL LETTER DZE 89 | 00000405 | CYRILLIC CAPITAL LETTER DZE 8A | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I 8B | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I 8C | 00000457 | CYRILLIC SMALL LETTER YI (Ukrainian) 8D | 00000407 | CYRILLIC CAPITAL LETTER YI (Ukrainian) 8E | 00000458 | CYRILLIC SMALL LETTER JE 8F | 00000408 | CYRILLIC CAPITAL LETTER JE 90 | 00000459 | CYRILLIC SMALL LETTER LJE 91 | 00000409 | CYRILLIC CAPITAL LETTER LJE 92 | 0000045A | CYRILLIC SMALL LETTER NJE 93 | 0000040A | CYRILLIC CAPITAL LETTER NJE 94 | 0000045B | CYRILLIC SMALL LETTER TSHE (Serbocroatian) 95 | 0000040B | CYRILLIC CAPITAL LETTER TSHE 96 | 0000045C | CYRILLIC SMALL LETTER KJE 97 | 0000040C | CYRILLIC CAPITAL LETTER KJE 98 | 0000045E | CYRILLIC SMALL LETTER SHORT U (Byelorussian) 99 | 0000040E | CYRILLIC CAPITAL LETTER SHORT U (Byelorussian) 9A | 0000045F | CYRILLIC SMALL LETTER DZHE 9B | 0000040F | CYRILLIC CAPITAL LETTER DZHE 9C | 0000044E | CYRILLIC SMALL LETTER YU 9D | 0000042E | CYRILLIC CAPITAL LETTER YU 9E | 0000044A | CYRILLIC SMALL LETTER HARD SIGN 9F | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN A0 | 00000430 | CYRILLIC SMALL LETTER A A1 | 00000410 | CYRILLIC CAPITAL LETTER A A2 | 00000431 | CYRILLIC SMALL LETTER BE A3 | 00000411 | CYRILLIC CAPITAL LETTER BE A4 | 00000446 | CYRILLIC SMALL LETTER TSE A5 | 00000426 | CYRILLIC CAPITAL LETTER TSE A6 | 00000434 | CYRILLIC SMALL LETTER DE A7 | 00000414 | CYRILLIC CAPITAL LETTER DE A8 | 00000435 | CYRILLIC SMALL LETTER IE A9 | 00000415 | CYRILLIC CAPITAL LETTER IE AA | 00000444 | CYRILLIC SMALL LETTER EF AB | 00000424 | CYRILLIC CAPITAL LETTER EF AC | 00000433 | CYRILLIC SMALL LETTER GHE AD | 00000413 | CYRILLIC CAPITAL LETTER GHE AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK B0 | 00002591 | LIGHT SHADE B1 | 00002592 | MEDIUM SHADE B2 | 00002593 | DARK SHADE B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT B5 | 00000445 | CYRILLIC SMALL LETTER HA B6 | 00000425 | CYRILLIC CAPITAL LETTER HA B7 | 00000438 | CYRILLIC SMALL LETTER I B8 | 00000418 | CYRILLIC CAPITAL LETTER I B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT BD | 00000439 | CYRILLIC SMALL LETTER SHORT I BE | 00000419 | CYRILLIC CAPITAL LETTER SHORT I BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL C6 | 0000043A | CYRILLIC SMALL LETTER KA C7 | 0000041A | CYRILLIC CAPITAL LETTER KA C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL CF | 000000A4 | CURRENCY SIGN D0 | 0000043B | CYRILLIC SMALL LETTER EL D1 | 0000041B | CYRILLIC CAPITAL LETTER EL D2 | 0000043C | CYRILLIC SMALL LETTER EM D3 | 0000041C | CYRILLIC CAPITAL LETTER EM D4 | 0000043D | CYRILLIC SMALL LETTER EN D5 | 0000041D | CYRILLIC CAPITAL LETTER EN D6 | 0000043E | CYRILLIC SMALL LETTER O D7 | 0000041E | CYRILLIC CAPITAL LETTER O D8 | 0000043F | CYRILLIC SMALL LETTER PE D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT DB | 00002588 | FULL BLOCK DC | 00002584 | LOWER HALF BLOCK DD | 0000041F | CYRILLIC CAPITAL LETTER PE DE | 0000044F | CYRILLIC SMALL LETTER YA DF | 00002580 | UPPER HALF BLOCK E0 | 0000042F | CYRILLIC CAPITAL LETTER YA E1 | 00000440 | CYRILLIC SMALL LETTER ER E2 | 00000420 | CYRILLIC CAPITAL LETTER ER E3 | 00000441 | CYRILLIC SMALL LETTER ES E4 | 00000421 | CYRILLIC CAPITAL LETTER ES E5 | 00000442 | CYRILLIC SMALL LETTER TE E6 | 00000422 | CYRILLIC CAPITAL LETTER TE E7 | 00000443 | CYRILLIC SMALL LETTER U E8 | 00000423 | CYRILLIC CAPITAL LETTER U E9 | 00000436 | CYRILLIC SMALL LETTER ZHE EA | 00000416 | CYRILLIC CAPITAL LETTER ZHE EB | 00000432 | CYRILLIC SMALL LETTER VE EC | 00000412 | CYRILLIC CAPITAL LETTER VE ED | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN EE | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN EF | 00002116 | NUMERO SIGN F0 | 000000AD | SOFT HYPHEN F1 | 0000044B | CYRILLIC SMALL LETTER YERU F2 | 0000042B | CYRILLIC CAPITAL LETTER YERU F3 | 00000437 | CYRILLIC SMALL LETTER ZE F4 | 00000417 | CYRILLIC CAPITAL LETTER ZE F5 | 00000448 | CYRILLIC SMALL LETTER SHA F6 | 00000428 | CYRILLIC CAPITAL LETTER SHA F7 | 0000044D | CYRILLIC SMALL LETTER E F8 | 0000042D | CYRILLIC CAPITAL LETTER E F9 | 00000449 | CYRILLIC SMALL LETTER SHCHA FA | 00000429 | CYRILLIC CAPITAL LETTER SHCHA FB | 00000447 | CYRILLIC SMALL LETTER CHE FC | 00000427 | CYRILLIC CAPITAL LETTER CHE FD | 000000A7 | SECTION SIGN FE | 000025A0 | BLACK SQUARE FF | 000000A0 | NO-BREAK SPACE =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK] hhRecodeData/IBM880.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM880. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM880; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0xfffd, 0x0452, 0x0453, 0x0451, 0xfffd, 0x0455, 0x0456, 0x0457, 0x0458, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0459, 0x045a, 0x045b, 0x045c, 0xfffd, 0x045f, 0x042a, 0x2116, 0x0402, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x0403, 0x0401, 0xfffd, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x040a, 0x040b, 0x040c, 0xfffd, 0xfffd, 0x040f, 0x044e, 0x0430, 0x0431, 0xfffd, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0446, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x044f, 0xfffd, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0xfffd, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0xfffd, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, 0x005c, 0x00a4, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xef\xbf\xbd", "\xd1\x92", "\xd1\x93", "\xd1\x91", "\xef\xbf\xbd", "\xd1\x95", "\xd1\x96", "\xd1\x97", "\xd1\x98", "\x5b", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\xd1\x99", "\xd1\x9a", "\xd1\x9b", "\xd1\x9c", "\xef\xbf\xbd", "\xd1\x9f", "\xd0\xaa", "\xe2\x84\x96", "\xd0\x82", "\x5d", "\x24", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xd0\x83", "\xd0\x81", "\xef\xbf\xbd", "\xd0\x85", "\xd0\x86", "\xd0\x87", "\xd0\x88", "\xd0\x89", "\xc2\xa6", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xd0\x8a", "\xd0\x8b", "\xd0\x8c", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd0\x8f", "\xd1\x8e", "\xd0\xb0", "\xd0\xb1", "\xef\xbf\xbd", "\x3a", "\x23", "\x40", "\x27", "\x3d", "\x22", "\xd1\x86", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xd0\xb4", "\xd0\xb5", "\xd1\x84", "\xd0\xb3", "\xd1\x85", "\xd0\xb8", "\xd0\xb9", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xd0\xba", "\xd0\xbb", "\xd0\xbc", "\xd0\xbd", "\xd0\xbe", "\xd0\xbf", "\xd1\x8f", "\xef\xbf\xbd", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xd1\x80", "\xd1\x81", "\xd1\x82", "\xd1\x83", "\xd0\xb6", "\xd0\xb2", "\xd1\x8c", "\xd1\x8b", "\xd0\xb7", "\xd1\x88", "\xd1\x8d", "\xd1\x89", "\xd1\x87", "\xd1\x8a", "\xd0\xae", "\xd0\x90", "\xd0\x91", "\xd0\xa6", "\xd0\x94", "\xd0\x95", "\xd0\xa4", "\xd0\x93", "\xef\xbf\xbd", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xd0\xa5", "\xd0\x98", "\xd0\x99", "\xd0\x9a", "\xd0\x9b", "\xd0\x9c", "\xef\xbf\xbd", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xd0\x9d", "\xd0\x9e", "\xd0\x9f", "\xd0\xaf", "\xd0\xa0", "\xd0\xa1", "\x5c", "\xc2\xa4", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xd0\xa2", "\xd0\xa3", "\xd0\x96", "\xd0\x92", "\xd0\xac", "\xd0\xab", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xd0\x97", "\xd0\xa8", "\xd0\xad", "\xd0\xa9", "\xd0\xa7", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000023 => "\x7b", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\x7c", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\x4a", 0x0000005c => "\xe0", 0x0000005d => "\x5a", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a4 => "\xe1", 0x000000a6 => "\x6a", 0x00000401 => "\x63", 0x00000402 => "\x59", 0x00000403 => "\x62", 0x00000405 => "\x65", 0x00000406 => "\x66", 0x00000407 => "\x67", 0x00000408 => "\x68", 0x00000409 => "\x69", 0x0000040a => "\x70", 0x0000040b => "\x71", 0x0000040c => "\x72", 0x0000040f => "\x75", 0x00000410 => "\xb9", 0x00000411 => "\xba", 0x00000412 => "\xed", 0x00000413 => "\xbf", 0x00000414 => "\xbc", 0x00000415 => "\xbd", 0x00000416 => "\xec", 0x00000417 => "\xfa", 0x00000418 => "\xcb", 0x00000419 => "\xcc", 0x0000041a => "\xcd", 0x0000041b => "\xce", 0x0000041c => "\xcf", 0x0000041d => "\xda", 0x0000041e => "\xdb", 0x0000041f => "\xdc", 0x00000420 => "\xde", 0x00000421 => "\xdf", 0x00000422 => "\xea", 0x00000423 => "\xeb", 0x00000424 => "\xbe", 0x00000425 => "\xca", 0x00000426 => "\xbb", 0x00000427 => "\xfe", 0x00000428 => "\xfb", 0x00000429 => "\xfd", 0x0000042a => "\x57", 0x0000042b => "\xef", 0x0000042c => "\xee", 0x0000042d => "\xfc", 0x0000042e => "\xb8", 0x0000042f => "\xdd", 0x00000430 => "\x77", 0x00000431 => "\x78", 0x00000432 => "\xaf", 0x00000433 => "\x8d", 0x00000434 => "\x8a", 0x00000435 => "\x8b", 0x00000436 => "\xae", 0x00000437 => "\xb2", 0x00000438 => "\x8f", 0x00000439 => "\x90", 0x0000043a => "\x9a", 0x0000043b => "\x9b", 0x0000043c => "\x9c", 0x0000043d => "\x9d", 0x0000043e => "\x9e", 0x0000043f => "\x9f", 0x00000440 => "\xaa", 0x00000441 => "\xab", 0x00000442 => "\xac", 0x00000443 => "\xad", 0x00000444 => "\x8c", 0x00000445 => "\x8e", 0x00000446 => "\x80", 0x00000447 => "\xb6", 0x00000448 => "\xb3", 0x00000449 => "\xb5", 0x0000044a => "\xb7", 0x0000044b => "\xb1", 0x0000044c => "\xb0", 0x0000044d => "\xb4", 0x0000044e => "\x76", 0x0000044f => "\xa0", 0x00000451 => "\x44", 0x00000452 => "\x42", 0x00000453 => "\x43", 0x00000455 => "\x46", 0x00000456 => "\x47", 0x00000457 => "\x48", 0x00000458 => "\x49", 0x00000459 => "\x51", 0x0000045a => "\x52", 0x0000045b => "\x53", 0x0000045c => "\x54", 0x0000045f => "\x56", 0x00002116 => "\x58", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM880 - Conversion routines for IBM880 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM880. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP880 alias EBCDIC-CYRILLIC Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 42 | 00000452 | CYRILLIC SMALL LETTER DJE (Serbocroatian) 43 | 00000453 | CYRILLIC SMALL LETTER GJE 44 | 00000451 | CYRILLIC SMALL LETTER IO 46 | 00000455 | CYRILLIC SMALL LETTER DZE 47 | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I 48 | 00000457 | CYRILLIC SMALL LETTER YI (Ukrainian) 49 | 00000458 | CYRILLIC SMALL LETTER JE 4A | 0000005B | LEFT SQUARE BRACKET 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 51 | 00000459 | CYRILLIC SMALL LETTER LJE 52 | 0000045A | CYRILLIC SMALL LETTER NJE 53 | 0000045B | CYRILLIC SMALL LETTER TSHE (Serbocroatian) 54 | 0000045C | CYRILLIC SMALL LETTER KJE 56 | 0000045F | CYRILLIC SMALL LETTER DZHE 57 | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN 58 | 00002116 | NUMERO SIGN 59 | 00000402 | CYRILLIC CAPITAL LETTER DJE (Serbocroatian) 5A | 0000005D | RIGHT SQUARE BRACKET 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 62 | 00000403 | CYRILLIC CAPITAL LETTER GJE 63 | 00000401 | CYRILLIC CAPITAL LETTER IO 65 | 00000405 | CYRILLIC CAPITAL LETTER DZE 66 | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I 67 | 00000407 | CYRILLIC CAPITAL LETTER YI (Ukrainian) 68 | 00000408 | CYRILLIC CAPITAL LETTER JE 69 | 00000409 | CYRILLIC CAPITAL LETTER LJE 6A | 000000A6 | BROKEN BAR 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 70 | 0000040A | CYRILLIC CAPITAL LETTER NJE 71 | 0000040B | CYRILLIC CAPITAL LETTER TSHE (Serbocroatian) 72 | 0000040C | CYRILLIC CAPITAL LETTER KJE 75 | 0000040F | CYRILLIC CAPITAL LETTER DZHE 76 | 0000044E | CYRILLIC SMALL LETTER YU 77 | 00000430 | CYRILLIC SMALL LETTER A 78 | 00000431 | CYRILLIC SMALL LETTER BE 7A | 0000003A | COLON 7B | 00000023 | NUMBER SIGN 7C | 00000040 | COMMERCIAL AT 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 80 | 00000446 | CYRILLIC SMALL LETTER TSE 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 8A | 00000434 | CYRILLIC SMALL LETTER DE 8B | 00000435 | CYRILLIC SMALL LETTER IE 8C | 00000444 | CYRILLIC SMALL LETTER EF 8D | 00000433 | CYRILLIC SMALL LETTER GHE 8E | 00000445 | CYRILLIC SMALL LETTER HA 8F | 00000438 | CYRILLIC SMALL LETTER I 90 | 00000439 | CYRILLIC SMALL LETTER SHORT I 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R 9A | 0000043A | CYRILLIC SMALL LETTER KA 9B | 0000043B | CYRILLIC SMALL LETTER EL 9C | 0000043C | CYRILLIC SMALL LETTER EM 9D | 0000043D | CYRILLIC SMALL LETTER EN 9E | 0000043E | CYRILLIC SMALL LETTER O 9F | 0000043F | CYRILLIC SMALL LETTER PE A0 | 0000044F | CYRILLIC SMALL LETTER YA A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z AA | 00000440 | CYRILLIC SMALL LETTER ER AB | 00000441 | CYRILLIC SMALL LETTER ES AC | 00000442 | CYRILLIC SMALL LETTER TE AD | 00000443 | CYRILLIC SMALL LETTER U AE | 00000436 | CYRILLIC SMALL LETTER ZHE AF | 00000432 | CYRILLIC SMALL LETTER VE B0 | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN B1 | 0000044B | CYRILLIC SMALL LETTER YERU B2 | 00000437 | CYRILLIC SMALL LETTER ZE B3 | 00000448 | CYRILLIC SMALL LETTER SHA B4 | 0000044D | CYRILLIC SMALL LETTER E B5 | 00000449 | CYRILLIC SMALL LETTER SHCHA B6 | 00000447 | CYRILLIC SMALL LETTER CHE B7 | 0000044A | CYRILLIC SMALL LETTER HARD SIGN B8 | 0000042E | CYRILLIC CAPITAL LETTER YU B9 | 00000410 | CYRILLIC CAPITAL LETTER A BA | 00000411 | CYRILLIC CAPITAL LETTER BE BB | 00000426 | CYRILLIC CAPITAL LETTER TSE BC | 00000414 | CYRILLIC CAPITAL LETTER DE BD | 00000415 | CYRILLIC CAPITAL LETTER IE BE | 00000424 | CYRILLIC CAPITAL LETTER EF BF | 00000413 | CYRILLIC CAPITAL LETTER GHE C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I CA | 00000425 | CYRILLIC CAPITAL LETTER HA CB | 00000418 | CYRILLIC CAPITAL LETTER I CC | 00000419 | CYRILLIC CAPITAL LETTER SHORT I CD | 0000041A | CYRILLIC CAPITAL LETTER KA CE | 0000041B | CYRILLIC CAPITAL LETTER EL CF | 0000041C | CYRILLIC CAPITAL LETTER EM D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R DA | 0000041D | CYRILLIC CAPITAL LETTER EN DB | 0000041E | CYRILLIC CAPITAL LETTER O DC | 0000041F | CYRILLIC CAPITAL LETTER PE DD | 0000042F | CYRILLIC CAPITAL LETTER YA DE | 00000420 | CYRILLIC CAPITAL LETTER ER DF | 00000421 | CYRILLIC CAPITAL LETTER ES E0 | 0000005C | REVERSE SOLIDUS E1 | 000000A4 | CURRENCY SIGN E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z EA | 00000422 | CYRILLIC CAPITAL LETTER TE EB | 00000423 | CYRILLIC CAPITAL LETTER U EC | 00000416 | CYRILLIC CAPITAL LETTER ZHE ED | 00000412 | CYRILLIC CAPITAL LETTER VE EE | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN EF | 0000042B | CYRILLIC CAPITAL LETTER YERU F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FA | 00000417 | CYRILLIC CAPITAL LETTER ZE FB | 00000428 | CYRILLIC CAPITAL LETTER SHA FC | 0000042D | CYRILLIC CAPITAL LETTER E FD | 00000429 | CYRILLIC CAPITAL LETTER SHCHA FE | 00000427 | CYRILLIC CAPITAL LETTER CHE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]XsbsbRecodeData/GOST_19768_74.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for GOST_19768-74. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::GOST_19768_74; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x0401, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00ad, 0xfffd, 0xfffd, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, 0xfffd, 0x0451, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\xc2\x85", "\xc2\x86", "\xc2\x87", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\xc2\x8d", "\xc2\x8e", "\xc2\x8f", "\xc2\x90", "\xc2\x91", "\xc2\x92", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\xc2\x97", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\xc2\x9c", "\xc2\x9d", "\xc2\x9e", "\xc2\x9f", "\xc2\xa0", "\xd0\x81", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xad", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd0\x90", "\xd0\x91", "\xd0\x92", "\xd0\x93", "\xd0\x94", "\xd0\x95", "\xd0\x96", "\xd0\x97", "\xd0\x98", "\xd0\x99", "\xd0\x9a", "\xd0\x9b", "\xd0\x9c", "\xd0\x9d", "\xd0\x9e", "\xd0\x9f", "\xd0\xa0", "\xd0\xa1", "\xd0\xa2", "\xd0\xa3", "\xd0\xa4", "\xd0\xa5", "\xd0\xa6", "\xd0\xa7", "\xd0\xa8", "\xd0\xa9", "\xd0\xaa", "\xd0\xab", "\xd0\xac", "\xd0\xad", "\xd0\xae", "\xd0\xaf", "\xd0\xb0", "\xd0\xb1", "\xd0\xb2", "\xd0\xb3", "\xd0\xb4", "\xd0\xb5", "\xd0\xb6", "\xd0\xb7", "\xd0\xb8", "\xd0\xb9", "\xd0\xba", "\xd0\xbb", "\xd0\xbc", "\xd0\xbd", "\xd0\xbe", "\xd0\xbf", "\xd1\x80", "\xd1\x81", "\xd1\x82", "\xd1\x83", "\xd1\x84", "\xd1\x85", "\xd1\x86", "\xd1\x87", "\xd1\x88", "\xd1\x89", "\xd1\x8a", "\xd1\x8b", "\xd1\x8c", "\xd1\x8d", "\xd1\x8e", "\xd1\x8f", "\xef\xbf\xbd", "\xd1\x91", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000080 => "\x80", 0x00000081 => "\x81", 0x00000082 => "\x82", 0x00000083 => "\x83", 0x00000084 => "\x84", 0x00000085 => "\x85", 0x00000086 => "\x86", 0x00000087 => "\x87", 0x00000088 => "\x88", 0x00000089 => "\x89", 0x0000008a => "\x8a", 0x0000008b => "\x8b", 0x0000008c => "\x8c", 0x0000008d => "\x8d", 0x0000008e => "\x8e", 0x0000008f => "\x8f", 0x00000090 => "\x90", 0x00000091 => "\x91", 0x00000092 => "\x92", 0x00000093 => "\x93", 0x00000094 => "\x94", 0x00000095 => "\x95", 0x00000096 => "\x96", 0x00000097 => "\x97", 0x00000098 => "\x98", 0x00000099 => "\x99", 0x0000009a => "\x9a", 0x0000009b => "\x9b", 0x0000009c => "\x9c", 0x0000009d => "\x9d", 0x0000009e => "\x9e", 0x0000009f => "\x9f", 0x000000a0 => "\xa0", 0x000000ad => "\xad", 0x00000401 => "\xa1", 0x00000410 => "\xb0", 0x00000411 => "\xb1", 0x00000412 => "\xb2", 0x00000413 => "\xb3", 0x00000414 => "\xb4", 0x00000415 => "\xb5", 0x00000416 => "\xb6", 0x00000417 => "\xb7", 0x00000418 => "\xb8", 0x00000419 => "\xb9", 0x0000041a => "\xba", 0x0000041b => "\xbb", 0x0000041c => "\xbc", 0x0000041d => "\xbd", 0x0000041e => "\xbe", 0x0000041f => "\xbf", 0x00000420 => "\xc0", 0x00000421 => "\xc1", 0x00000422 => "\xc2", 0x00000423 => "\xc3", 0x00000424 => "\xc4", 0x00000425 => "\xc5", 0x00000426 => "\xc6", 0x00000427 => "\xc7", 0x00000428 => "\xc8", 0x00000429 => "\xc9", 0x0000042a => "\xca", 0x0000042b => "\xcb", 0x0000042c => "\xcc", 0x0000042d => "\xcd", 0x0000042e => "\xce", 0x0000042f => "\xcf", 0x00000430 => "\xd0", 0x00000431 => "\xd1", 0x00000432 => "\xd2", 0x00000433 => "\xd3", 0x00000434 => "\xd4", 0x00000435 => "\xd5", 0x00000436 => "\xd6", 0x00000437 => "\xd7", 0x00000438 => "\xd8", 0x00000439 => "\xd9", 0x0000043a => "\xda", 0x0000043b => "\xdb", 0x0000043c => "\xdc", 0x0000043d => "\xdd", 0x0000043e => "\xde", 0x0000043f => "\xdf", 0x00000440 => "\xe0", 0x00000441 => "\xe1", 0x00000442 => "\xe2", 0x00000443 => "\xe3", 0x00000444 => "\xe4", 0x00000445 => "\xe5", 0x00000446 => "\xe6", 0x00000447 => "\xe7", 0x00000448 => "\xe8", 0x00000449 => "\xe9", 0x0000044a => "\xea", 0x0000044b => "\xeb", 0x0000044c => "\xec", 0x0000044d => "\xed", 0x0000044e => "\xee", 0x0000044f => "\xef", 0x00000451 => "\xf1", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::GOST_19768_74 - Conversion routines for GOST_19768_74 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for GOST_19768-74. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: ECMA registry alias ST_SEV_358-88 alias ISO-IR-153 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000080 | PADDING CHARACTER (PAD) 81 | 00000081 | HIGH OCTET PRESET (HOP) 82 | 00000082 | BREAK PERMITTED HERE (BPH) 83 | 00000083 | NO BREAK HERE (NBH) 84 | 00000084 | INDEX (IND) 85 | 00000085 | NEXT LINE (NEL) 86 | 00000086 | START OF SELECTED AREA (SSA) 87 | 00000087 | END OF SELECTED AREA (ESA) 88 | 00000088 | CHARACTER TABULATION SET (HTS) 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 8A | 0000008A | LINE TABULATION SET (VTS) 8B | 0000008B | PARTIAL LINE FORWARD (PLD) 8C | 0000008C | PARTIAL LINE BACKWARD (PLU) 8D | 0000008D | REVERSE LINE FEED (RI) 8E | 0000008E | SINGLE-SHIFT TWO (SS2) 8F | 0000008F | SINGLE-SHIFT THREE (SS3) 90 | 00000090 | DEVICE CONTROL STRING (DCS) 91 | 00000091 | PRIVATE USE ONE (PU1) 92 | 00000092 | PRIVATE USE TWO (PU2) 93 | 00000093 | SET TRANSMIT STATE (STS) 94 | 00000094 | CANCEL CHARACTER (CCH) 95 | 00000095 | MESSAGE WAITING (MW) 96 | 00000096 | START OF GUARDED AREA (SPA) 97 | 00000097 | END OF GUARDED AREA (EPA) 98 | 00000098 | START OF STRING (SOS) 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 9C | 0000009C | STRING TERMINATOR (ST) 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC) 9E | 0000009E | PRIVACY MESSAGE (PM) 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC) A0 | 000000A0 | NO-BREAK SPACE A1 | 00000401 | CYRILLIC CAPITAL LETTER IO AD | 000000AD | SOFT HYPHEN B0 | 00000410 | CYRILLIC CAPITAL LETTER A B1 | 00000411 | CYRILLIC CAPITAL LETTER BE B2 | 00000412 | CYRILLIC CAPITAL LETTER VE B3 | 00000413 | CYRILLIC CAPITAL LETTER GHE B4 | 00000414 | CYRILLIC CAPITAL LETTER DE B5 | 00000415 | CYRILLIC CAPITAL LETTER IE B6 | 00000416 | CYRILLIC CAPITAL LETTER ZHE B7 | 00000417 | CYRILLIC CAPITAL LETTER ZE B8 | 00000418 | CYRILLIC CAPITAL LETTER I B9 | 00000419 | CYRILLIC CAPITAL LETTER SHORT I BA | 0000041A | CYRILLIC CAPITAL LETTER KA BB | 0000041B | CYRILLIC CAPITAL LETTER EL BC | 0000041C | CYRILLIC CAPITAL LETTER EM BD | 0000041D | CYRILLIC CAPITAL LETTER EN BE | 0000041E | CYRILLIC CAPITAL LETTER O BF | 0000041F | CYRILLIC CAPITAL LETTER PE C0 | 00000420 | CYRILLIC CAPITAL LETTER ER C1 | 00000421 | CYRILLIC CAPITAL LETTER ES C2 | 00000422 | CYRILLIC CAPITAL LETTER TE C3 | 00000423 | CYRILLIC CAPITAL LETTER U C4 | 00000424 | CYRILLIC CAPITAL LETTER EF C5 | 00000425 | CYRILLIC CAPITAL LETTER HA C6 | 00000426 | CYRILLIC CAPITAL LETTER TSE C7 | 00000427 | CYRILLIC CAPITAL LETTER CHE C8 | 00000428 | CYRILLIC CAPITAL LETTER SHA C9 | 00000429 | CYRILLIC CAPITAL LETTER SHCHA CA | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN CB | 0000042B | CYRILLIC CAPITAL LETTER YERU CC | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN CD | 0000042D | CYRILLIC CAPITAL LETTER E CE | 0000042E | CYRILLIC CAPITAL LETTER YU CF | 0000042F | CYRILLIC CAPITAL LETTER YA D0 | 00000430 | CYRILLIC SMALL LETTER A D1 | 00000431 | CYRILLIC SMALL LETTER BE D2 | 00000432 | CYRILLIC SMALL LETTER VE D3 | 00000433 | CYRILLIC SMALL LETTER GHE D4 | 00000434 | CYRILLIC SMALL LETTER DE D5 | 00000435 | CYRILLIC SMALL LETTER IE D6 | 00000436 | CYRILLIC SMALL LETTER ZHE D7 | 00000437 | CYRILLIC SMALL LETTER ZE D8 | 00000438 | CYRILLIC SMALL LETTER I D9 | 00000439 | CYRILLIC SMALL LETTER SHORT I DA | 0000043A | CYRILLIC SMALL LETTER KA DB | 0000043B | CYRILLIC SMALL LETTER EL DC | 0000043C | CYRILLIC SMALL LETTER EM DD | 0000043D | CYRILLIC SMALL LETTER EN DE | 0000043E | CYRILLIC SMALL LETTER O DF | 0000043F | CYRILLIC SMALL LETTER PE E0 | 00000440 | CYRILLIC SMALL LETTER ER E1 | 00000441 | CYRILLIC SMALL LETTER ES E2 | 00000442 | CYRILLIC SMALL LETTER TE E3 | 00000443 | CYRILLIC SMALL LETTER U E4 | 00000444 | CYRILLIC SMALL LETTER EF E5 | 00000445 | CYRILLIC SMALL LETTER HA E6 | 00000446 | CYRILLIC SMALL LETTER TSE E7 | 00000447 | CYRILLIC SMALL LETTER CHE E8 | 00000448 | CYRILLIC SMALL LETTER SHA E9 | 00000449 | CYRILLIC SMALL LETTER SHCHA EA | 0000044A | CYRILLIC SMALL LETTER HARD SIGN EB | 0000044B | CYRILLIC SMALL LETTER YERU EC | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN ED | 0000044D | CYRILLIC SMALL LETTER E EE | 0000044E | CYRILLIC SMALL LETTER YU EF | 0000044F | CYRILLIC SMALL LETTER YA F1 | 00000451 | CYRILLIC SMALL LETTER IO =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]UHHRecodeData/NATS_SEFI.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for NATS-SEFI. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::NATS_SEFI; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0xe018, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00c4, 0x00d6, 0x00c5, 0x25a0, 0x005f, 0xe019, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00e4, 0x00f6, 0x00e5, 0x2013, 0x007f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\xee\x80\x98", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xc3\x84", "\xc3\x96", "\xc3\x85", "\xe2\x96\xa0", "\x5f", "\xee\x80\x99", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xc3\xa4", "\xc3\xb6", "\xc3\xa5", "\xe2\x80\x93", "\x7f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005f => "\x5f", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007f => "\x7f", 0x000000c4 => "\x5b", 0x000000c5 => "\x5d", 0x000000d6 => "\x5c", 0x000000e4 => "\x7b", 0x000000e5 => "\x7d", 0x000000f6 => "\x7c", 0x00002013 => "\x7e", 0x000025a0 => "\x5e", 0x0000e018 => "\x40", 0x0000e019 => "\x60", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::NATS_SEFI - Conversion routines for NATS_SEFI =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for NATS-SEFI. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: ECMA registry alias ISO-IR-8-1 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 0000E018 | Unit space A EISO-IR-8-1_40E 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 5C | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 5D | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 5E | 000025A0 | BLACK SQUARE 5F | 0000005F | LOW LINE 60 | 0000E019 | Unit space B EISO-IR-8-1_60E 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 7C | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 7D | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 7E | 00002013 | EN DASH 7F | 0000007F | DELETE (DEL) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]MbbRecodeData/US_ASCII.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for US-ASCII. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::US_ASCII; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { # FIXME: Maybe the lookup is cheaper than the call to chr(). $_[1] = join '', map $_ > 0x7f ? '?' : chr $_, @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8') { # FIXME: Maybe the lookup is cheaper than the call to chr(). $_[1] = join '', map $_ > 0x7f ? "\xef\xbf\xbd" : chr $_, unpack 'C*', $_[1]; } else { $_[1] = [ map { $_ > 0x7f ? 0xfffd : $_ } unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::US_ASCII - Conversion routines for US-ASCII =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module contains the conversion tables and routines for US-ASCII. =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]vhYkkRecodeData/IBM850.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM850. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM850; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, 0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x0192, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, 0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0, 0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, 0x00f0, 0x00d0, 0x00ca, 0x00cb, 0x00c8, 0x0131, 0x00cd, 0x00ce, 0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580, 0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x00fe, 0x00de, 0x00da, 0x00db, 0x00d9, 0x00fd, 0x00dd, 0x00af, 0x00b4, 0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc3\x87", "\xc3\xbc", "\xc3\xa9", "\xc3\xa2", "\xc3\xa4", "\xc3\xa0", "\xc3\xa5", "\xc3\xa7", "\xc3\xaa", "\xc3\xab", "\xc3\xa8", "\xc3\xaf", "\xc3\xae", "\xc3\xac", "\xc3\x84", "\xc3\x85", "\xc3\x89", "\xc3\xa6", "\xc3\x86", "\xc3\xb4", "\xc3\xb6", "\xc3\xb2", "\xc3\xbb", "\xc3\xb9", "\xc3\xbf", "\xc3\x96", "\xc3\x9c", "\xc3\xb8", "\xc2\xa3", "\xc3\x98", "\xc3\x97", "\xc6\x92", "\xc3\xa1", "\xc3\xad", "\xc3\xb3", "\xc3\xba", "\xc3\xb1", "\xc3\x91", "\xc2\xaa", "\xc2\xba", "\xc2\xbf", "\xc2\xae", "\xc2\xac", "\xc2\xbd", "\xc2\xbc", "\xc2\xa1", "\xc2\xab", "\xc2\xbb", "\xe2\x96\x91", "\xe2\x96\x92", "\xe2\x96\x93", "\xe2\x94\x82", "\xe2\x94\xa4", "\xc3\x81", "\xc3\x82", "\xc3\x80", "\xc2\xa9", "\xe2\x95\xa3", "\xe2\x95\x91", "\xe2\x95\x97", "\xe2\x95\x9d", "\xc2\xa2", "\xc2\xa5", "\xe2\x94\x90", "\xe2\x94\x94", "\xe2\x94\xb4", "\xe2\x94\xac", "\xe2\x94\x9c", "\xe2\x94\x80", "\xe2\x94\xbc", "\xc3\xa3", "\xc3\x83", "\xe2\x95\x9a", "\xe2\x95\x94", "\xe2\x95\xa9", "\xe2\x95\xa6", "\xe2\x95\xa0", "\xe2\x95\x90", "\xe2\x95\xac", "\xc2\xa4", "\xc3\xb0", "\xc3\x90", "\xc3\x8a", "\xc3\x8b", "\xc3\x88", "\xc4\xb1", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xe2\x94\x98", "\xe2\x94\x8c", "\xe2\x96\x88", "\xe2\x96\x84", "\xc2\xa6", "\xc3\x8c", "\xe2\x96\x80", "\xc3\x93", "\xc3\x9f", "\xc3\x94", "\xc3\x92", "\xc3\xb5", "\xc3\x95", "\xc2\xb5", "\xc3\xbe", "\xc3\x9e", "\xc3\x9a", "\xc3\x9b", "\xc3\x99", "\xc3\xbd", "\xc3\x9d", "\xc2\xaf", "\xc2\xb4", "\xc2\xad", "\xc2\xb1", "\xe2\x80\x97", "\xc2\xbe", "\xc2\xb6", "\xc2\xa7", "\xc3\xb7", "\xc2\xb8", "\xc2\xb0", "\xc2\xa8", "\xc2\xb7", "\xc2\xb9", "\xc2\xb3", "\xc2\xb2", "\xe2\x96\xa0", "\xc2\xa0", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xff", 0x000000a1 => "\xad", 0x000000a2 => "\xbd", 0x000000a3 => "\x9c", 0x000000a4 => "\xcf", 0x000000a5 => "\xbe", 0x000000a6 => "\xdd", 0x000000a7 => "\xf5", 0x000000a8 => "\xf9", 0x000000a9 => "\xb8", 0x000000aa => "\xa6", 0x000000ab => "\xae", 0x000000ac => "\xaa", 0x000000ad => "\xf0", 0x000000ae => "\xa9", 0x000000af => "\xee", 0x000000b0 => "\xf8", 0x000000b1 => "\xf1", 0x000000b2 => "\xfd", 0x000000b3 => "\xfc", 0x000000b4 => "\xef", 0x000000b5 => "\xe6", 0x000000b6 => "\xf4", 0x000000b7 => "\xfa", 0x000000b8 => "\xf7", 0x000000b9 => "\xfb", 0x000000ba => "\xa7", 0x000000bb => "\xaf", 0x000000bc => "\xac", 0x000000bd => "\xab", 0x000000be => "\xf3", 0x000000bf => "\xa8", 0x000000c0 => "\xb7", 0x000000c1 => "\xb5", 0x000000c2 => "\xb6", 0x000000c3 => "\xc7", 0x000000c4 => "\x8e", 0x000000c5 => "\x8f", 0x000000c6 => "\x92", 0x000000c7 => "\x80", 0x000000c8 => "\xd4", 0x000000c9 => "\x90", 0x000000ca => "\xd2", 0x000000cb => "\xd3", 0x000000cc => "\xde", 0x000000cd => "\xd6", 0x000000ce => "\xd7", 0x000000cf => "\xd8", 0x000000d0 => "\xd1", 0x000000d1 => "\xa5", 0x000000d2 => "\xe3", 0x000000d3 => "\xe0", 0x000000d4 => "\xe2", 0x000000d5 => "\xe5", 0x000000d6 => "\x99", 0x000000d7 => "\x9e", 0x000000d8 => "\x9d", 0x000000d9 => "\xeb", 0x000000da => "\xe9", 0x000000db => "\xea", 0x000000dc => "\x9a", 0x000000dd => "\xed", 0x000000de => "\xe8", 0x000000df => "\xe1", 0x000000e0 => "\x85", 0x000000e1 => "\xa0", 0x000000e2 => "\x83", 0x000000e3 => "\xc6", 0x000000e4 => "\x84", 0x000000e5 => "\x86", 0x000000e6 => "\x91", 0x000000e7 => "\x87", 0x000000e8 => "\x8a", 0x000000e9 => "\x82", 0x000000ea => "\x88", 0x000000eb => "\x89", 0x000000ec => "\x8d", 0x000000ed => "\xa1", 0x000000ee => "\x8c", 0x000000ef => "\x8b", 0x000000f0 => "\xd0", 0x000000f1 => "\xa4", 0x000000f2 => "\x95", 0x000000f3 => "\xa2", 0x000000f4 => "\x93", 0x000000f5 => "\xe4", 0x000000f6 => "\x94", 0x000000f7 => "\xf6", 0x000000f8 => "\x9b", 0x000000f9 => "\x97", 0x000000fa => "\xa3", 0x000000fb => "\x96", 0x000000fc => "\x81", 0x000000fd => "\xec", 0x000000fe => "\xe7", 0x000000ff => "\x98", 0x00000131 => "\xd5", 0x00000192 => "\x9f", 0x00002017 => "\xf2", 0x00002500 => "\xc4", 0x00002502 => "\xb3", 0x0000250c => "\xda", 0x00002510 => "\xbf", 0x00002514 => "\xc0", 0x00002518 => "\xd9", 0x0000251c => "\xc3", 0x00002524 => "\xb4", 0x0000252c => "\xc2", 0x00002534 => "\xc1", 0x0000253c => "\xc5", 0x00002550 => "\xcd", 0x00002551 => "\xba", 0x00002554 => "\xc9", 0x00002557 => "\xbb", 0x0000255a => "\xc8", 0x0000255d => "\xbc", 0x00002560 => "\xcc", 0x00002563 => "\xb9", 0x00002566 => "\xcb", 0x00002569 => "\xca", 0x0000256c => "\xce", 0x00002580 => "\xdf", 0x00002584 => "\xdc", 0x00002588 => "\xdb", 0x00002591 => "\xb0", 0x00002592 => "\xb1", 0x00002593 => "\xb2", 0x000025a0 => "\xfe", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM850 - Conversion routines for IBM850 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM850. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 source: UNICODE 1.0 alias CP850 alias 850 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 84 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 86 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 8B | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 8C | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 8D | 000000EC | LATIN SMALL LETTER I WITH GRAVE 8E | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 8F | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 90 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 91 | 000000E6 | LATIN SMALL LETTER AE 92 | 000000C6 | LATIN CAPITAL LETTER AE 93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX 94 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 95 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE 96 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX 97 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 98 | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS 99 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 9B | 000000F8 | LATIN SMALL LETTER O WITH STROKE 9C | 000000A3 | POUND SIGN 9D | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE 9E | 000000D7 | MULTIPLICATION SIGN 9F | 00000192 | LATIN SMALL LETTER F WITH HOOK A0 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE A1 | 000000ED | LATIN SMALL LETTER I WITH ACUTE A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE A4 | 000000F1 | LATIN SMALL LETTER N WITH TILDE A5 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE A6 | 000000AA | FEMININE ORDINAL INDICATOR A7 | 000000BA | MASCULINE ORDINAL INDICATOR A8 | 000000BF | INVERTED QUESTION MARK A9 | 000000AE | REGISTERED SIGN AA | 000000AC | NOT SIGN AB | 000000BD | VULGAR FRACTION ONE HALF AC | 000000BC | VULGAR FRACTION ONE QUARTER AD | 000000A1 | INVERTED EXCLAMATION MARK AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK B0 | 00002591 | LIGHT SHADE B1 | 00002592 | MEDIUM SHADE B2 | 00002593 | DARK SHADE B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT B5 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE B6 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX B7 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE B8 | 000000A9 | COPYRIGHT SIGN B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT BD | 000000A2 | CENT SIGN BE | 000000A5 | YEN SIGN BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL C6 | 000000E3 | LATIN SMALL LETTER A WITH TILDE C7 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL CF | 000000A4 | CURRENCY SIGN D0 | 000000F0 | LATIN SMALL LETTER ETH (Icelandic) D1 | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic) D2 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX D3 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS D4 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE D5 | 00000131 | LATIN SMALL LETTER DOTLESS I D6 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE D7 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX D8 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT DB | 00002588 | FULL BLOCK DC | 00002584 | LOWER HALF BLOCK DD | 000000A6 | BROKEN BAR DE | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE DF | 00002580 | UPPER HALF BLOCK E0 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE E1 | 000000DF | LATIN SMALL LETTER SHARP S (German) E2 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX E3 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE E4 | 000000F5 | LATIN SMALL LETTER O WITH TILDE E5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE E6 | 000000B5 | MICRO SIGN E7 | 000000FE | LATIN SMALL LETTER THORN (Icelandic) E8 | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic) E9 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE EA | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX EB | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE EC | 000000FD | LATIN SMALL LETTER Y WITH ACUTE ED | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE EE | 000000AF | MACRON EF | 000000B4 | ACUTE ACCENT F0 | 000000AD | SOFT HYPHEN F1 | 000000B1 | PLUS-MINUS SIGN F2 | 00002017 | DOUBLE LOW LINE F3 | 000000BE | VULGAR FRACTION THREE QUARTERS F4 | 000000B6 | PILCROW SIGN F5 | 000000A7 | SECTION SIGN F6 | 000000F7 | DIVISION SIGN F7 | 000000B8 | CEDILLA F8 | 000000B0 | DEGREE SIGN F9 | 000000A8 | DIAERESIS FA | 000000B7 | MIDDLE DOT FB | 000000B9 | SUPERSCRIPT ONE FC | 000000B3 | SUPERSCRIPT THREE FD | 000000B2 | SUPERSCRIPT TWO FE | 000025A0 | BLACK SQUARE FF | 000000A0 | NO-BREAK SPACE =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]6llRecodeData/IBM852.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM852. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM852; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x016f, 0x0107, 0x00e7, 0x0142, 0x00eb, 0x0150, 0x0151, 0x00ee, 0x0179, 0x00c4, 0x0106, 0x00c9, 0x0139, 0x013a, 0x00f4, 0x00f6, 0x013d, 0x013e, 0x015a, 0x015b, 0x00d6, 0x00dc, 0x0164, 0x0165, 0x0141, 0x00d7, 0x010d, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x0104, 0x0105, 0x017d, 0x017e, 0x0118, 0x0119, 0x00ac, 0x017a, 0x010c, 0x015f, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x011a, 0x015e, 0x2563, 0x2551, 0x2557, 0x255d, 0x017b, 0x017c, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x0102, 0x0103, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, 0x0111, 0x0110, 0x010e, 0x00cb, 0x010f, 0x0147, 0x00cd, 0x00ce, 0x011b, 0x2518, 0x250c, 0x2588, 0x2584, 0x0162, 0x016e, 0x2580, 0x00d3, 0x00df, 0x00d4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161, 0x0154, 0x00da, 0x0155, 0x0170, 0x00fd, 0x00dd, 0x0163, 0x00b4, 0x00ad, 0x02dd, 0x02db, 0x02c7, 0x02d8, 0x00a7, 0x00f7, 0x00b8, 0x00b0, 0x00a8, 0x02d9, 0x0171, 0x0158, 0x0159, 0x25a0, 0x00a0, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc3\x87", "\xc3\xbc", "\xc3\xa9", "\xc3\xa2", "\xc3\xa4", "\xc5\xaf", "\xc4\x87", "\xc3\xa7", "\xc5\x82", "\xc3\xab", "\xc5\x90", "\xc5\x91", "\xc3\xae", "\xc5\xb9", "\xc3\x84", "\xc4\x86", "\xc3\x89", "\xc4\xb9", "\xc4\xba", "\xc3\xb4", "\xc3\xb6", "\xc4\xbd", "\xc4\xbe", "\xc5\x9a", "\xc5\x9b", "\xc3\x96", "\xc3\x9c", "\xc5\xa4", "\xc5\xa5", "\xc5\x81", "\xc3\x97", "\xc4\x8d", "\xc3\xa1", "\xc3\xad", "\xc3\xb3", "\xc3\xba", "\xc4\x84", "\xc4\x85", "\xc5\xbd", "\xc5\xbe", "\xc4\x98", "\xc4\x99", "\xc2\xac", "\xc5\xba", "\xc4\x8c", "\xc5\x9f", "\xc2\xab", "\xc2\xbb", "\xe2\x96\x91", "\xe2\x96\x92", "\xe2\x96\x93", "\xe2\x94\x82", "\xe2\x94\xa4", "\xc3\x81", "\xc3\x82", "\xc4\x9a", "\xc5\x9e", "\xe2\x95\xa3", "\xe2\x95\x91", "\xe2\x95\x97", "\xe2\x95\x9d", "\xc5\xbb", "\xc5\xbc", "\xe2\x94\x90", "\xe2\x94\x94", "\xe2\x94\xb4", "\xe2\x94\xac", "\xe2\x94\x9c", "\xe2\x94\x80", "\xe2\x94\xbc", "\xc4\x82", "\xc4\x83", "\xe2\x95\x9a", "\xe2\x95\x94", "\xe2\x95\xa9", "\xe2\x95\xa6", "\xe2\x95\xa0", "\xe2\x95\x90", "\xe2\x95\xac", "\xc2\xa4", "\xc4\x91", "\xc4\x90", "\xc4\x8e", "\xc3\x8b", "\xc4\x8f", "\xc5\x87", "\xc3\x8d", "\xc3\x8e", "\xc4\x9b", "\xe2\x94\x98", "\xe2\x94\x8c", "\xe2\x96\x88", "\xe2\x96\x84", "\xc5\xa2", "\xc5\xae", "\xe2\x96\x80", "\xc3\x93", "\xc3\x9f", "\xc3\x94", "\xc5\x83", "\xc5\x84", "\xc5\x88", "\xc5\xa0", "\xc5\xa1", "\xc5\x94", "\xc3\x9a", "\xc5\x95", "\xc5\xb0", "\xc3\xbd", "\xc3\x9d", "\xc5\xa3", "\xc2\xb4", "\xc2\xad", "\xcb\x9d", "\xcb\x9b", "\xcb\x87", "\xcb\x98", "\xc2\xa7", "\xc3\xb7", "\xc2\xb8", "\xc2\xb0", "\xc2\xa8", "\xcb\x99", "\xc5\xb1", "\xc5\x98", "\xc5\x99", "\xe2\x96\xa0", "\xc2\xa0", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xff", 0x000000a4 => "\xcf", 0x000000a7 => "\xf5", 0x000000a8 => "\xf9", 0x000000ab => "\xae", 0x000000ac => "\xaa", 0x000000ad => "\xf0", 0x000000b0 => "\xf8", 0x000000b4 => "\xef", 0x000000b8 => "\xf7", 0x000000bb => "\xaf", 0x000000c1 => "\xb5", 0x000000c2 => "\xb6", 0x000000c4 => "\x8e", 0x000000c7 => "\x80", 0x000000c9 => "\x90", 0x000000cb => "\xd3", 0x000000cd => "\xd6", 0x000000ce => "\xd7", 0x000000d3 => "\xe0", 0x000000d4 => "\xe2", 0x000000d6 => "\x99", 0x000000d7 => "\x9e", 0x000000da => "\xe9", 0x000000dc => "\x9a", 0x000000dd => "\xed", 0x000000df => "\xe1", 0x000000e1 => "\xa0", 0x000000e2 => "\x83", 0x000000e4 => "\x84", 0x000000e7 => "\x87", 0x000000e9 => "\x82", 0x000000eb => "\x89", 0x000000ed => "\xa1", 0x000000ee => "\x8c", 0x000000f3 => "\xa2", 0x000000f4 => "\x93", 0x000000f6 => "\x94", 0x000000f7 => "\xf6", 0x000000fa => "\xa3", 0x000000fc => "\x81", 0x000000fd => "\xec", 0x00000102 => "\xc6", 0x00000103 => "\xc7", 0x00000104 => "\xa4", 0x00000105 => "\xa5", 0x00000106 => "\x8f", 0x00000107 => "\x86", 0x0000010c => "\xac", 0x0000010d => "\x9f", 0x0000010e => "\xd2", 0x0000010f => "\xd4", 0x00000110 => "\xd1", 0x00000111 => "\xd0", 0x00000118 => "\xa8", 0x00000119 => "\xa9", 0x0000011a => "\xb7", 0x0000011b => "\xd8", 0x00000139 => "\x91", 0x0000013a => "\x92", 0x0000013d => "\x95", 0x0000013e => "\x96", 0x00000141 => "\x9d", 0x00000142 => "\x88", 0x00000143 => "\xe3", 0x00000144 => "\xe4", 0x00000147 => "\xd5", 0x00000148 => "\xe5", 0x00000150 => "\x8a", 0x00000151 => "\x8b", 0x00000154 => "\xe8", 0x00000155 => "\xea", 0x00000158 => "\xfc", 0x00000159 => "\xfd", 0x0000015a => "\x97", 0x0000015b => "\x98", 0x0000015e => "\xb8", 0x0000015f => "\xad", 0x00000160 => "\xe6", 0x00000161 => "\xe7", 0x00000162 => "\xdd", 0x00000163 => "\xee", 0x00000164 => "\x9b", 0x00000165 => "\x9c", 0x0000016e => "\xde", 0x0000016f => "\x85", 0x00000170 => "\xeb", 0x00000171 => "\xfb", 0x00000179 => "\x8d", 0x0000017a => "\xab", 0x0000017b => "\xbd", 0x0000017c => "\xbe", 0x0000017d => "\xa6", 0x0000017e => "\xa7", 0x000002c7 => "\xf3", 0x000002d8 => "\xf4", 0x000002d9 => "\xfa", 0x000002db => "\xf2", 0x000002dd => "\xf1", 0x00002500 => "\xc4", 0x00002502 => "\xb3", 0x0000250c => "\xda", 0x00002510 => "\xbf", 0x00002514 => "\xc0", 0x00002518 => "\xd9", 0x0000251c => "\xc3", 0x00002524 => "\xb4", 0x0000252c => "\xc2", 0x00002534 => "\xc1", 0x0000253c => "\xc5", 0x00002550 => "\xcd", 0x00002551 => "\xba", 0x00002554 => "\xc9", 0x00002557 => "\xbb", 0x0000255a => "\xc8", 0x0000255d => "\xbc", 0x00002560 => "\xcc", 0x00002563 => "\xb9", 0x00002566 => "\xcb", 0x00002569 => "\xca", 0x0000256c => "\xce", 0x00002580 => "\xdf", 0x00002584 => "\xdc", 0x00002588 => "\xdb", 0x00002591 => "\xb0", 0x00002592 => "\xb1", 0x00002593 => "\xb2", 0x000025a0 => "\xfe", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM852 - Conversion routines for IBM852 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM852. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP852 alias 852 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 84 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 85 | 0000016F | LATIN SMALL LETTER U WITH RING ABOVE 86 | 00000107 | LATIN SMALL LETTER C WITH ACUTE 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 88 | 00000142 | LATIN SMALL LETTER L WITH STROKE 89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 8A | 00000150 | LATIN CAPITAL LETTER O WITH DOUBLE ACUTE 8B | 00000151 | LATIN SMALL LETTER O WITH DOUBLE ACUTE 8C | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 8D | 00000179 | LATIN CAPITAL LETTER Z WITH ACUTE 8E | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 8F | 00000106 | LATIN CAPITAL LETTER C WITH ACUTE 90 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 91 | 00000139 | LATIN CAPITAL LETTER L WITH ACUTE 92 | 0000013A | LATIN SMALL LETTER L WITH ACUTE 93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX 94 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 95 | 0000013D | LATIN CAPITAL LETTER L WITH CARON 96 | 0000013E | LATIN SMALL LETTER L WITH CARON 97 | 0000015A | LATIN CAPITAL LETTER S WITH ACUTE 98 | 0000015B | LATIN SMALL LETTER S WITH ACUTE 99 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 9B | 00000164 | LATIN CAPITAL LETTER T WITH CARON 9C | 00000165 | LATIN SMALL LETTER T WITH CARON 9D | 00000141 | LATIN CAPITAL LETTER L WITH STROKE 9E | 000000D7 | MULTIPLICATION SIGN 9F | 0000010D | LATIN SMALL LETTER C WITH CARON A0 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE A1 | 000000ED | LATIN SMALL LETTER I WITH ACUTE A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE A4 | 00000104 | LATIN CAPITAL LETTER A WITH OGONEK A5 | 00000105 | LATIN SMALL LETTER A WITH OGONEK A6 | 0000017D | LATIN CAPITAL LETTER Z WITH CARON A7 | 0000017E | LATIN SMALL LETTER Z WITH CARON A8 | 00000118 | LATIN CAPITAL LETTER E WITH OGONEK A9 | 00000119 | LATIN SMALL LETTER E WITH OGONEK AA | 000000AC | NOT SIGN AB | 0000017A | LATIN SMALL LETTER Z WITH ACUTE AC | 0000010C | LATIN CAPITAL LETTER C WITH CARON AD | 0000015F | LATIN SMALL LETTER S WITH CEDILLA AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK B0 | 00002591 | LIGHT SHADE B1 | 00002592 | MEDIUM SHADE B2 | 00002593 | DARK SHADE B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT B5 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE B6 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX B7 | 0000011A | LATIN CAPITAL LETTER E WITH CARON B8 | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT BD | 0000017B | LATIN CAPITAL LETTER Z WITH DOT ABOVE BE | 0000017C | LATIN SMALL LETTER Z WITH DOT ABOVE BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL C6 | 00000102 | LATIN CAPITAL LETTER A WITH BREVE C7 | 00000103 | LATIN SMALL LETTER A WITH BREVE C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL CF | 000000A4 | CURRENCY SIGN D0 | 00000111 | LATIN SMALL LETTER D WITH STROKE D1 | 00000110 | LATIN CAPITAL LETTER D WITH STROKE D2 | 0000010E | LATIN CAPITAL LETTER D WITH CARON D3 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS D4 | 0000010F | LATIN SMALL LETTER D WITH CARON D5 | 00000147 | LATIN CAPITAL LETTER N WITH CARON D6 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE D7 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX D8 | 0000011B | LATIN SMALL LETTER E WITH CARON D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT DB | 00002588 | FULL BLOCK DC | 00002584 | LOWER HALF BLOCK DD | 00000162 | LATIN CAPITAL LETTER T WITH CEDILLA DE | 0000016E | LATIN CAPITAL LETTER U WITH RING ABOVE DF | 00002580 | UPPER HALF BLOCK E0 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE E1 | 000000DF | LATIN SMALL LETTER SHARP S (German) E2 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX E3 | 00000143 | LATIN CAPITAL LETTER N WITH ACUTE E4 | 00000144 | LATIN SMALL LETTER N WITH ACUTE E5 | 00000148 | LATIN SMALL LETTER N WITH CARON E6 | 00000160 | LATIN CAPITAL LETTER S WITH CARON E7 | 00000161 | LATIN SMALL LETTER S WITH CARON E8 | 00000154 | LATIN CAPITAL LETTER R WITH ACUTE E9 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE EA | 00000155 | LATIN SMALL LETTER R WITH ACUTE EB | 00000170 | LATIN CAPITAL LETTER U WITH DOUBLE ACUTE EC | 000000FD | LATIN SMALL LETTER Y WITH ACUTE ED | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE EE | 00000163 | LATIN SMALL LETTER T WITH CEDILLA EF | 000000B4 | ACUTE ACCENT F0 | 000000AD | SOFT HYPHEN F1 | 000002DD | DOUBLE ACUTE ACCENT F2 | 000002DB | OGONEK F3 | 000002C7 | CARON (Mandarin Chinese third tone) F4 | 000002D8 | BREVE F5 | 000000A7 | SECTION SIGN F6 | 000000F7 | DIVISION SIGN F7 | 000000B8 | CEDILLA F8 | 000000B0 | DEGREE SIGN F9 | 000000A8 | DIAERESIS FA | 000002D9 | DOT ABOVE (Mandarin Chinese light tone) FB | 00000171 | LATIN SMALL LETTER U WITH DOUBLE ACUTE FC | 00000158 | LATIN CAPITAL LETTER R WITH CARON FD | 00000159 | LATIN SMALL LETTER R WITH CARON FE | 000025A0 | BLACK SQUARE FF | 000000A0 | NO-BREAK SPACE =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]ToTfjfjRecodeData/MACINTOSH.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for MACINTOSH. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::MACINTOSH; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, 0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, 0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x00c6, 0x00d8, 0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211, 0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x03a9, 0x00e6, 0x00f8, 0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x0394, 0x00ab, 0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153, 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, 0x00ff, 0x0178, 0x2044, 0x20ac, 0x2039, 0x203a, 0xfb01, 0xfb02, 0x2021, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4, 0xe01e, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc, 0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc3\x84", "\xc3\x85", "\xc3\x87", "\xc3\x89", "\xc3\x91", "\xc3\x96", "\xc3\x9c", "\xc3\xa1", "\xc3\xa0", "\xc3\xa2", "\xc3\xa4", "\xc3\xa3", "\xc3\xa5", "\xc3\xa7", "\xc3\xa9", "\xc3\xa8", "\xc3\xaa", "\xc3\xab", "\xc3\xad", "\xc3\xac", "\xc3\xae", "\xc3\xaf", "\xc3\xb1", "\xc3\xb3", "\xc3\xb2", "\xc3\xb4", "\xc3\xb6", "\xc3\xb5", "\xc3\xba", "\xc3\xb9", "\xc3\xbb", "\xc3\xbc", "\xe2\x80\xa0", "\xc2\xb0", "\xc2\xa2", "\xc2\xa3", "\xc2\xa7", "\xe2\x80\xa2", "\xc2\xb6", "\xc3\x9f", "\xc2\xae", "\xc2\xa9", "\xe2\x84\xa2", "\xc2\xb4", "\xc2\xa8", "\xe2\x89\xa0", "\xc3\x86", "\xc3\x98", "\xe2\x88\x9e", "\xc2\xb1", "\xe2\x89\xa4", "\xe2\x89\xa5", "\xc2\xa5", "\xc2\xb5", "\xe2\x88\x82", "\xe2\x88\x91", "\xe2\x88\x8f", "\xcf\x80", "\xe2\x88\xab", "\xc2\xaa", "\xc2\xba", "\xce\xa9", "\xc3\xa6", "\xc3\xb8", "\xc2\xbf", "\xc2\xa1", "\xc2\xac", "\xe2\x88\x9a", "\xc6\x92", "\xe2\x89\x88", "\xce\x94", "\xc2\xab", "\xc2\xbb", "\xe2\x80\xa6", "\xc2\xa0", "\xc3\x80", "\xc3\x83", "\xc3\x95", "\xc5\x92", "\xc5\x93", "\xe2\x80\x93", "\xe2\x80\x94", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x98", "\xe2\x80\x99", "\xc3\xb7", "\xe2\x97\x8a", "\xc3\xbf", "\xc5\xb8", "\xe2\x81\x84", "\xe2\x82\xac", "\xe2\x80\xb9", "\xe2\x80\xba", "\xef\xac\x81", "\xef\xac\x82", "\xe2\x80\xa1", "\xc2\xb7", "\xe2\x80\x9a", "\xe2\x80\x9e", "\xe2\x80\xb0", "\xc3\x82", "\xc3\x8a", "\xc3\x81", "\xc3\x8b", "\xc3\x88", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x8c", "\xc3\x93", "\xc3\x94", "\xee\x80\x9e", "\xc3\x92", "\xc3\x9a", "\xc3\x9b", "\xc3\x99", "\xc4\xb1", "\xcb\x86", "\xcb\x9c", "\xc2\xaf", "\xcb\x98", "\xcb\x99", "\xcb\x9a", "\xc2\xb8", "\xcb\x9d", "\xcb\x9b", "\xcb\x87", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xca", 0x000000a1 => "\xc1", 0x000000a2 => "\xa2", 0x000000a3 => "\xa3", 0x000000a5 => "\xb4", 0x000000a7 => "\xa4", 0x000000a8 => "\xac", 0x000000a9 => "\xa9", 0x000000aa => "\xbb", 0x000000ab => "\xc7", 0x000000ac => "\xc2", 0x000000ae => "\xa8", 0x000000af => "\xf8", 0x000000b0 => "\xa1", 0x000000b1 => "\xb1", 0x000000b4 => "\xab", 0x000000b5 => "\xb5", 0x000000b6 => "\xa6", 0x000000b7 => "\xe1", 0x000000b8 => "\xfc", 0x000000ba => "\xbc", 0x000000bb => "\xc8", 0x000000bf => "\xc0", 0x000000c0 => "\xcb", 0x000000c1 => "\xe7", 0x000000c2 => "\xe5", 0x000000c3 => "\xcc", 0x000000c4 => "\x80", 0x000000c5 => "\x81", 0x000000c6 => "\xae", 0x000000c7 => "\x82", 0x000000c8 => "\xe9", 0x000000c9 => "\x83", 0x000000ca => "\xe6", 0x000000cb => "\xe8", 0x000000cc => "\xed", 0x000000cd => "\xea", 0x000000ce => "\xeb", 0x000000cf => "\xec", 0x000000d1 => "\x84", 0x000000d2 => "\xf1", 0x000000d3 => "\xee", 0x000000d4 => "\xef", 0x000000d5 => "\xcd", 0x000000d6 => "\x85", 0x000000d8 => "\xaf", 0x000000d9 => "\xf4", 0x000000da => "\xf2", 0x000000db => "\xf3", 0x000000dc => "\x86", 0x000000df => "\xa7", 0x000000e0 => "\x88", 0x000000e1 => "\x87", 0x000000e2 => "\x89", 0x000000e3 => "\x8b", 0x000000e4 => "\x8a", 0x000000e5 => "\x8c", 0x000000e6 => "\xbe", 0x000000e7 => "\x8d", 0x000000e8 => "\x8f", 0x000000e9 => "\x8e", 0x000000ea => "\x90", 0x000000eb => "\x91", 0x000000ec => "\x93", 0x000000ed => "\x92", 0x000000ee => "\x94", 0x000000ef => "\x95", 0x000000f1 => "\x96", 0x000000f2 => "\x98", 0x000000f3 => "\x97", 0x000000f4 => "\x99", 0x000000f5 => "\x9b", 0x000000f6 => "\x9a", 0x000000f7 => "\xd6", 0x000000f8 => "\xbf", 0x000000f9 => "\x9d", 0x000000fa => "\x9c", 0x000000fb => "\x9e", 0x000000fc => "\x9f", 0x000000ff => "\xd8", 0x00000131 => "\xf5", 0x00000152 => "\xce", 0x00000153 => "\xcf", 0x00000178 => "\xd9", 0x00000192 => "\xc4", 0x000002c6 => "\xf6", 0x000002c7 => "\xff", 0x000002d8 => "\xf9", 0x000002d9 => "\xfa", 0x000002da => "\xfb", 0x000002db => "\xfe", 0x000002dc => "\xf7", 0x000002dd => "\xfd", 0x00000394 => "\xc6", 0x000003a9 => "\xbd", 0x000003c0 => "\xb9", 0x00002013 => "\xd0", 0x00002014 => "\xd1", 0x00002018 => "\xd4", 0x00002019 => "\xd5", 0x0000201a => "\xe2", 0x0000201c => "\xd2", 0x0000201d => "\xd3", 0x0000201e => "\xe3", 0x00002020 => "\xa0", 0x00002021 => "\xe0", 0x00002022 => "\xa5", 0x00002026 => "\xc9", 0x00002030 => "\xe4", 0x00002039 => "\xdc", 0x0000203a => "\xdd", 0x00002044 => "\xda", 0x000020ac => "\xdb", 0x00002122 => "\xaa", 0x00002202 => "\xb6", 0x0000220f => "\xb8", 0x00002211 => "\xb7", 0x0000221a => "\xc3", 0x0000221e => "\xb0", 0x0000222b => "\xba", 0x00002248 => "\xc5", 0x00002260 => "\xad", 0x00002264 => "\xb2", 0x00002265 => "\xb3", 0x000025ca => "\xd7", 0x0000e01e => "\xf0", 0x0000fb01 => "\xde", 0x0000fb02 => "\xdf", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::MACINTOSH - Conversion routines for MACINTOSH =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for MACINTOSH. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: The Unicode Standard ver 1.0, ISBN 0-201-56788-1, Oct 1991 alias MAC Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 81 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 82 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 83 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 84 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 85 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 86 | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 87 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 88 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 89 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 8A | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 8B | 000000E3 | LATIN SMALL LETTER A WITH TILDE 8C | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 8D | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 8E | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 8F | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 90 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 91 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 92 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 93 | 000000EC | LATIN SMALL LETTER I WITH GRAVE 94 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 95 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 96 | 000000F1 | LATIN SMALL LETTER N WITH TILDE 97 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE 98 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE 99 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX 9A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 9B | 000000F5 | LATIN SMALL LETTER O WITH TILDE 9C | 000000FA | LATIN SMALL LETTER U WITH ACUTE 9D | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 9E | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX 9F | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS A0 | 00002020 | DAGGER A1 | 000000B0 | DEGREE SIGN A2 | 000000A2 | CENT SIGN A3 | 000000A3 | POUND SIGN A4 | 000000A7 | SECTION SIGN A5 | 00002022 | BULLET A6 | 000000B6 | PILCROW SIGN A7 | 000000DF | LATIN SMALL LETTER SHARP S (German) A8 | 000000AE | REGISTERED SIGN A9 | 000000A9 | COPYRIGHT SIGN AA | 00002122 | TRADE MARK SIGN AB | 000000B4 | ACUTE ACCENT AC | 000000A8 | DIAERESIS AD | 00002260 | NOT EQUAL TO AE | 000000C6 | LATIN CAPITAL LETTER AE AF | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE B0 | 0000221E | INFINITY B1 | 000000B1 | PLUS-MINUS SIGN B2 | 00002264 | LESS-THAN OR EQUAL TO B3 | 00002265 | GREATER-THAN OR EQUAL TO B4 | 000000A5 | YEN SIGN B5 | 000000B5 | MICRO SIGN B6 | 00002202 | PARTIAL DIFFERENTIAL B7 | 00002211 | N-ARY SUMMATION B8 | 0000220F | N-ARY PRODUCT B9 | 000003C0 | GREEK SMALL LETTER PI BA | 0000222B | INTEGRAL BB | 000000AA | FEMININE ORDINAL INDICATOR BC | 000000BA | MASCULINE ORDINAL INDICATOR BD | 000003A9 | GREEK CAPITAL LETTER OMEGA BE | 000000E6 | LATIN SMALL LETTER AE BF | 000000F8 | LATIN SMALL LETTER O WITH STROKE C0 | 000000BF | INVERTED QUESTION MARK C1 | 000000A1 | INVERTED EXCLAMATION MARK C2 | 000000AC | NOT SIGN C3 | 0000221A | SQUARE ROOT C4 | 00000192 | LATIN SMALL LETTER F WITH HOOK C5 | 00002248 | ALMOST EQUAL TO C6 | 00000394 | GREEK CAPITAL LETTER DELTA C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK C8 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK C9 | 00002026 | HORIZONTAL ELLIPSIS CA | 000000A0 | NO-BREAK SPACE CB | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE CC | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE CD | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE CE | 00000152 | LATIN CAPITAL LIGATURE OE CF | 00000153 | LATIN SMALL LIGATURE OE D0 | 00002013 | EN DASH D1 | 00002014 | EM DASH D2 | 0000201C | LEFT DOUBLE QUOTATION MARK D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK D4 | 00002018 | LEFT SINGLE QUOTATION MARK D5 | 00002019 | RIGHT SINGLE QUOTATION MARK D6 | 000000F7 | DIVISION SIGN D7 | 000025CA | LOZENGE D8 | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS D9 | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS DA | 00002044 | FRACTION SLASH DB | 000020AC | EURO SIGN DC | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK DD | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK DE | 0000FB01 | LATIN SMALL LIGATURE FI DF | 0000FB02 | LATIN SMALL LIGATURE FL E0 | 00002021 | DOUBLE DAGGER E1 | 000000B7 | MIDDLE DOT E2 | 0000201A | SINGLE LOW-9 QUOTATION MARK E3 | 0000201E | DOUBLE LOW-9 QUOTATION MARK E4 | 00002030 | PER MILLE SIGN E5 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX E6 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX E7 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE E8 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS E9 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE EA | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE EB | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX EC | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS ED | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE EF | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX F0 | 0000E01E | APPLE LOGO (Macintosh_F0) F1 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE F2 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE F3 | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX F4 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE F5 | 00000131 | LATIN SMALL LETTER DOTLESS I F6 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT F7 | 000002DC | SMALL TILDE F8 | 000000AF | MACRON F9 | 000002D8 | BREVE FA | 000002D9 | DOT ABOVE (Mandarin Chinese light tone) FB | 000002DA | RING ABOVE FC | 000000B8 | CEDILLA FD | 000002DD | DOUBLE ACUTE ACCENT FE | 000002DB | OGONEK FF | 000002C7 | CARON (Mandarin Chinese third tone) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]WjjRecodeData/IBM280.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM280. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM280; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x007b, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x005d, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x007e, 0x00df, 0x00e9, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f2, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f9, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00ec, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x203e, 0x00a8, 0x00b4, 0x00d7, 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00a6, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x0060, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xc2\xa0", "\xc3\xa2", "\xc3\xa4", "\x7b", "\xc3\xa1", "\xc3\xa3", "\xc3\xa5", "\x5c", "\xc3\xb1", "\xc2\xb0", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\x5d", "\xc3\xaa", "\xc3\xab", "\x7d", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\x7e", "\xc3\x9f", "\xc3\xa9", "\x24", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xc3\x82", "\xc3\x84", "\xc3\x80", "\xc3\x81", "\xc3\x83", "\xc3\x85", "\xc3\x87", "\xc3\x91", "\xc3\xb2", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xc3\xb8", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x88", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x8c", "\xc3\xb9", "\x3a", "\xc2\xa3", "\xc2\xa7", "\x27", "\x3d", "\x22", "\xc3\x98", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xc2\xab", "\xc2\xbb", "\xc3\xb0", "\xc3\xbd", "\xc3\xbe", "\xc2\xb1", "\x5b", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xc2\xaa", "\xc2\xba", "\xc3\xa6", "\xc2\xb8", "\xc3\x86", "\xc2\xa4", "\xc2\xb5", "\xc3\xac", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xc2\xa1", "\xc2\xbf", "\xc3\x90", "\xc3\x9d", "\xc3\x9e", "\xc2\xae", "\xc2\xa2", "\x23", "\xc2\xa5", "\xc2\xb7", "\xc2\xa9", "\x40", "\xc2\xb6", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\xc2\xac", "\x7c", "\xe2\x80\xbe", "\xc2\xa8", "\xc2\xb4", "\xc3\x97", "\xc3\xa0", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xc2\xad", "\xc3\xb4", "\xc3\xb6", "\xc2\xa6", "\xc3\xb3", "\xc3\xb5", "\xc3\xa8", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xc2\xb9", "\xc3\xbb", "\xc3\xbc", "\x60", "\xc3\xba", "\xc3\xbf", "\xc3\xa7", "\xc3\xb7", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xc2\xb2", "\xc3\x94", "\xc3\x96", "\xc3\x92", "\xc3\x93", "\xc3\x95", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xc2\xb3", "\xc3\x9b", "\xc3\x9c", "\xc3\x99", "\xc3\x9a", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000023 => "\xb1", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\xb5", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\x90", 0x0000005c => "\x48", 0x0000005d => "\x51", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000060 => "\xdd", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\x44", 0x0000007c => "\xbb", 0x0000007d => "\x54", 0x0000007e => "\x58", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a0 => "\x41", 0x000000a1 => "\xaa", 0x000000a2 => "\xb0", 0x000000a3 => "\x7b", 0x000000a4 => "\x9f", 0x000000a5 => "\xb2", 0x000000a6 => "\xcd", 0x000000a7 => "\x7c", 0x000000a8 => "\xbd", 0x000000a9 => "\xb4", 0x000000aa => "\x9a", 0x000000ab => "\x8a", 0x000000ac => "\xba", 0x000000ad => "\xca", 0x000000ae => "\xaf", 0x000000b0 => "\x4a", 0x000000b1 => "\x8f", 0x000000b2 => "\xea", 0x000000b3 => "\xfa", 0x000000b4 => "\xbe", 0x000000b5 => "\xa0", 0x000000b6 => "\xb6", 0x000000b7 => "\xb3", 0x000000b8 => "\x9d", 0x000000b9 => "\xda", 0x000000ba => "\x9b", 0x000000bb => "\x8b", 0x000000bc => "\xb7", 0x000000bd => "\xb8", 0x000000be => "\xb9", 0x000000bf => "\xab", 0x000000c0 => "\x64", 0x000000c1 => "\x65", 0x000000c2 => "\x62", 0x000000c3 => "\x66", 0x000000c4 => "\x63", 0x000000c5 => "\x67", 0x000000c6 => "\x9e", 0x000000c7 => "\x68", 0x000000c8 => "\x74", 0x000000c9 => "\x71", 0x000000ca => "\x72", 0x000000cb => "\x73", 0x000000cc => "\x78", 0x000000cd => "\x75", 0x000000ce => "\x76", 0x000000cf => "\x77", 0x000000d0 => "\xac", 0x000000d1 => "\x69", 0x000000d2 => "\xed", 0x000000d3 => "\xee", 0x000000d4 => "\xeb", 0x000000d5 => "\xef", 0x000000d6 => "\xec", 0x000000d7 => "\xbf", 0x000000d8 => "\x80", 0x000000d9 => "\xfd", 0x000000da => "\xfe", 0x000000db => "\xfb", 0x000000dc => "\xfc", 0x000000dd => "\xad", 0x000000de => "\xae", 0x000000df => "\x59", 0x000000e0 => "\xc0", 0x000000e1 => "\x45", 0x000000e2 => "\x42", 0x000000e3 => "\x46", 0x000000e4 => "\x43", 0x000000e5 => "\x47", 0x000000e6 => "\x9c", 0x000000e7 => "\xe0", 0x000000e8 => "\xd0", 0x000000e9 => "\x5a", 0x000000ea => "\x52", 0x000000eb => "\x53", 0x000000ec => "\xa1", 0x000000ed => "\x55", 0x000000ee => "\x56", 0x000000ef => "\x57", 0x000000f0 => "\x8c", 0x000000f1 => "\x49", 0x000000f2 => "\x6a", 0x000000f3 => "\xce", 0x000000f4 => "\xcb", 0x000000f5 => "\xcf", 0x000000f6 => "\xcc", 0x000000f7 => "\xe1", 0x000000f8 => "\x70", 0x000000f9 => "\x79", 0x000000fa => "\xde", 0x000000fb => "\xdb", 0x000000fc => "\xdc", 0x000000fd => "\x8d", 0x000000fe => "\x8e", 0x000000ff => "\xdf", 0x0000203e => "\xbc", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM280 - Conversion routines for IBM280 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM280. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP280 alias EBCDIC-CP-IT Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 41 | 000000A0 | NO-BREAK SPACE 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 44 | 0000007B | LEFT CURLY BRACKET 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE 47 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 48 | 0000005C | REVERSE SOLIDUS 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE 4A | 000000B0 | DEGREE SIGN 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 51 | 0000005D | RIGHT SQUARE BRACKET 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 54 | 0000007D | RIGHT CURLY BRACKET 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 58 | 0000007E | TILDE 59 | 000000DF | LATIN SMALL LETTER SHARP S (German) 5A | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE 67 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 6A | 000000F2 | LATIN SMALL LETTER O WITH GRAVE 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE 79 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 7A | 0000003A | COLON 7B | 000000A3 | POUND SIGN 7C | 000000A7 | SECTION SIGN 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic) 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE 8E | 000000FE | LATIN SMALL LETTER THORN (Icelandic) 8F | 000000B1 | PLUS-MINUS SIGN 90 | 0000005B | LEFT SQUARE BRACKET 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R 9A | 000000AA | FEMININE ORDINAL INDICATOR 9B | 000000BA | MASCULINE ORDINAL INDICATOR 9C | 000000E6 | LATIN SMALL LETTER AE 9D | 000000B8 | CEDILLA 9E | 000000C6 | LATIN CAPITAL LETTER AE 9F | 000000A4 | CURRENCY SIGN A0 | 000000B5 | MICRO SIGN A1 | 000000EC | LATIN SMALL LETTER I WITH GRAVE A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z AA | 000000A1 | INVERTED EXCLAMATION MARK AB | 000000BF | INVERTED QUESTION MARK AC | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic) AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE AE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic) AF | 000000AE | REGISTERED SIGN B0 | 000000A2 | CENT SIGN B1 | 00000023 | NUMBER SIGN B2 | 000000A5 | YEN SIGN B3 | 000000B7 | MIDDLE DOT B4 | 000000A9 | COPYRIGHT SIGN B5 | 00000040 | COMMERCIAL AT B6 | 000000B6 | PILCROW SIGN B7 | 000000BC | VULGAR FRACTION ONE QUARTER B8 | 000000BD | VULGAR FRACTION ONE HALF B9 | 000000BE | VULGAR FRACTION THREE QUARTERS BA | 000000AC | NOT SIGN BB | 0000007C | VERTICAL LINE BC | 0000203E | OVERLINE BD | 000000A8 | DIAERESIS BE | 000000B4 | ACUTE ACCENT BF | 000000D7 | MULTIPLICATION SIGN C0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I CA | 000000AD | SOFT HYPHEN CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX CC | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS CD | 000000A6 | BROKEN BAR CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE D0 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R DA | 000000B9 | SUPERSCRIPT ONE DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX DC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS DD | 00000060 | GRAVE ACCENT DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS E0 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA E1 | 000000F7 | DIVISION SIGN E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z EA | 000000B2 | SUPERSCRIPT TWO EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX EC | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FA | 000000B3 | SUPERSCRIPT THREE FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]_THHRecodeData/GREEK7_OLD.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for GREEK7-OLD. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::GREEK7_OLD; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x00a3, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x00b4, 0x03b1, 0x03b2, 0x03c8, 0x03b4, 0x03b5, 0x03c6, 0x03b3, 0x03b7, 0x03b9, 0x03be, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03bf, 0x03c0, 0x037a, 0x03c1, 0x03c3, 0x03c4, 0x03b8, 0x03c9, 0x03c2, 0x03c7, 0x03c5, 0x03b6, 0x1fcf, 0x1fbf, 0x1fce, 0x007e, 0x005f, 0x0060, 0x0391, 0x0392, 0x03a8, 0x0394, 0x0395, 0x03a6, 0x0393, 0x0397, 0x0399, 0x039e, 0x039a, 0x039b, 0x039c, 0x039d, 0x039f, 0x03a0, 0xfffd, 0x03a1, 0x03a3, 0x03a4, 0x0398, 0x03a9, 0x00b7, 0x03a7, 0x03a5, 0x0396, 0x1fdf, 0x1ffe, 0x1fde, 0x00a8, 0x007f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\xc2\xa3", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\xc2\xb4", "\xce\xb1", "\xce\xb2", "\xcf\x88", "\xce\xb4", "\xce\xb5", "\xcf\x86", "\xce\xb3", "\xce\xb7", "\xce\xb9", "\xce\xbe", "\xce\xba", "\xce\xbb", "\xce\xbc", "\xce\xbd", "\xce\xbf", "\xcf\x80", "\xcd\xba", "\xcf\x81", "\xcf\x83", "\xcf\x84", "\xce\xb8", "\xcf\x89", "\xcf\x82", "\xcf\x87", "\xcf\x85", "\xce\xb6", "\xe1\xbf\x8f", "\xe1\xbe\xbf", "\xe1\xbf\x8e", "\x7e", "\x5f", "\x60", "\xce\x91", "\xce\x92", "\xce\xa8", "\xce\x94", "\xce\x95", "\xce\xa6", "\xce\x93", "\xce\x97", "\xce\x99", "\xce\x9e", "\xce\x9a", "\xce\x9b", "\xce\x9c", "\xce\x9d", "\xce\x9f", "\xce\xa0", "\xef\xbf\xbd", "\xce\xa1", "\xce\xa3", "\xce\xa4", "\xce\x98", "\xce\xa9", "\xc2\xb7", "\xce\xa7", "\xce\xa5", "\xce\x96", "\xe1\xbf\x9f", "\xe1\xbf\xbe", "\xe1\xbf\x9e", "\xc2\xa8", "\x7f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x0000007e => "\x5e", 0x0000007f => "\x7f", 0x000000a3 => "\x23", 0x000000a8 => "\x7e", 0x000000b4 => "\x40", 0x000000b7 => "\x77", 0x0000037a => "\x51", 0x00000391 => "\x61", 0x00000392 => "\x62", 0x00000393 => "\x67", 0x00000394 => "\x64", 0x00000395 => "\x65", 0x00000396 => "\x7a", 0x00000397 => "\x68", 0x00000398 => "\x75", 0x00000399 => "\x69", 0x0000039a => "\x6b", 0x0000039b => "\x6c", 0x0000039c => "\x6d", 0x0000039d => "\x6e", 0x0000039e => "\x6a", 0x0000039f => "\x6f", 0x000003a0 => "\x70", 0x000003a1 => "\x72", 0x000003a3 => "\x73", 0x000003a4 => "\x74", 0x000003a5 => "\x79", 0x000003a6 => "\x66", 0x000003a7 => "\x78", 0x000003a8 => "\x63", 0x000003a9 => "\x76", 0x000003b1 => "\x41", 0x000003b2 => "\x42", 0x000003b3 => "\x47", 0x000003b4 => "\x44", 0x000003b5 => "\x45", 0x000003b6 => "\x5a", 0x000003b7 => "\x48", 0x000003b8 => "\x55", 0x000003b9 => "\x49", 0x000003ba => "\x4b", 0x000003bb => "\x4c", 0x000003bc => "\x4d", 0x000003bd => "\x4e", 0x000003be => "\x4a", 0x000003bf => "\x4f", 0x000003c0 => "\x50", 0x000003c1 => "\x52", 0x000003c2 => "\x57", 0x000003c3 => "\x53", 0x000003c4 => "\x54", 0x000003c5 => "\x59", 0x000003c6 => "\x46", 0x000003c7 => "\x58", 0x000003c8 => "\x43", 0x000003c9 => "\x56", 0x00001fbf => "\x5c", 0x00001fce => "\x5d", 0x00001fcf => "\x5b", 0x00001fde => "\x7d", 0x00001fdf => "\x7b", 0x00001ffe => "\x7c", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::GREEK7_OLD - Conversion routines for GREEK7_OLD =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for GREEK7-OLD. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: ECMA registry alias ISO-IR-18 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 000000A3 | POUND SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 000000B4 | ACUTE ACCENT 41 | 000003B1 | GREEK SMALL LETTER ALPHA 42 | 000003B2 | GREEK SMALL LETTER BETA 43 | 000003C8 | GREEK SMALL LETTER PSI 44 | 000003B4 | GREEK SMALL LETTER DELTA 45 | 000003B5 | GREEK SMALL LETTER EPSILON 46 | 000003C6 | GREEK SMALL LETTER PHI 47 | 000003B3 | GREEK SMALL LETTER GAMMA 48 | 000003B7 | GREEK SMALL LETTER ETA 49 | 000003B9 | GREEK SMALL LETTER IOTA 4A | 000003BE | GREEK SMALL LETTER XI 4B | 000003BA | GREEK SMALL LETTER KAPPA 4C | 000003BB | GREEK SMALL LETTER LAMDA 4D | 000003BC | GREEK SMALL LETTER MU 4E | 000003BD | GREEK SMALL LETTER NU 4F | 000003BF | GREEK SMALL LETTER OMICRON 50 | 000003C0 | GREEK SMALL LETTER PI 51 | 0000037A | GREEK YPOGEGRAMMENI 52 | 000003C1 | GREEK SMALL LETTER RHO 53 | 000003C3 | GREEK SMALL LETTER SIGMA 54 | 000003C4 | GREEK SMALL LETTER TAU 55 | 000003B8 | GREEK SMALL LETTER THETA 56 | 000003C9 | GREEK SMALL LETTER OMEGA 57 | 000003C2 | GREEK SMALL LETTER FINAL SIGMA 58 | 000003C7 | GREEK SMALL LETTER CHI 59 | 000003C5 | GREEK SMALL LETTER UPSILON 5A | 000003B6 | GREEK SMALL LETTER ZETA 5B | 00001FCF | GREEK PSILI AND PERISPOMENI 5C | 00001FBF | GREEK PSILI 5D | 00001FCE | GREEK PSILI AND OXIA 5E | 0000007E | TILDE 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000391 | GREEK CAPITAL LETTER ALPHA 62 | 00000392 | GREEK CAPITAL LETTER BETA 63 | 000003A8 | GREEK CAPITAL LETTER PSI 64 | 00000394 | GREEK CAPITAL LETTER DELTA 65 | 00000395 | GREEK CAPITAL LETTER EPSILON 66 | 000003A6 | GREEK CAPITAL LETTER PHI 67 | 00000393 | GREEK CAPITAL LETTER GAMMA 68 | 00000397 | GREEK CAPITAL LETTER ETA 69 | 00000399 | GREEK CAPITAL LETTER IOTA 6A | 0000039E | GREEK CAPITAL LETTER XI 6B | 0000039A | GREEK CAPITAL LETTER KAPPA 6C | 0000039B | GREEK CAPITAL LETTER LAMDA 6D | 0000039C | GREEK CAPITAL LETTER MU 6E | 0000039D | GREEK CAPITAL LETTER NU 6F | 0000039F | GREEK CAPITAL LETTER OMICRON 70 | 000003A0 | GREEK CAPITAL LETTER PI 72 | 000003A1 | GREEK CAPITAL LETTER RHO 73 | 000003A3 | GREEK CAPITAL LETTER SIGMA 74 | 000003A4 | GREEK CAPITAL LETTER TAU 75 | 00000398 | GREEK CAPITAL LETTER THETA 76 | 000003A9 | GREEK CAPITAL LETTER OMEGA 77 | 000000B7 | MIDDLE DOT 78 | 000003A7 | GREEK CAPITAL LETTER CHI 79 | 000003A5 | GREEK CAPITAL LETTER UPSILON 7A | 00000396 | GREEK CAPITAL LETTER ZETA 7B | 00001FDF | GREEK DASIA AND PERISPOMENI 7C | 00001FFE | GREEK DASIA 7D | 00001FDE | GREEK DASIA AND OXIA 7E | 000000A8 | DIAERESIS 7F | 0000007F | DELETE (DEL) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]R#ahhRecodeData/IBM423.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM423. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM423; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0xfffd, 0xfffd, 0xfffd, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfffd, 0x0386, 0x0388, 0x0389, 0xfffd, 0x038a, 0x038c, 0x038e, 0x038f, 0x0060, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00c4, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x00d6, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x00dc, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c2, 0xfffd, 0x03ac, 0x03ad, 0x03ae, 0x03ca, 0x03af, 0x03cc, 0x03cd, 0x03cb, 0x03ce, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x00b8, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0xfffd, 0x03c9, 0x00c2, 0x00e0, 0x00e4, 0x00ea, 0x00b4, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b1, 0x00e9, 0x00e8, 0x00eb, 0x00ee, 0x00ef, 0x00b0, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00bd, 0x00f6, 0x00f4, 0x00fb, 0x00f9, 0x00fc, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00ff, 0x00e7, 0x00c7, 0xfffd, 0xfffd, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xce\x91", "\xce\x92", "\xce\x93", "\xce\x94", "\xce\x95", "\xce\x96", "\xce\x97", "\xce\x98", "\xce\x99", "\x5b", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\xce\x9a", "\xce\x9b", "\xce\x9c", "\xce\x9d", "\xce\x9e", "\xce\x9f", "\xce\xa0", "\xce\xa1", "\xce\xa3", "\x5d", "\x24", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xce\xa4", "\xce\xa5", "\xce\xa6", "\xce\xa7", "\xce\xa8", "\xce\xa9", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xce\x86", "\xce\x88", "\xce\x89", "\xef\xbf\xbd", "\xce\x8a", "\xce\x8c", "\xce\x8e", "\xce\x8f", "\x60", "\x3a", "\xc2\xa3", "\xc2\xa7", "\x27", "\x3d", "\x22", "\xc3\x84", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xce\xb1", "\xce\xb2", "\xce\xb3", "\xce\xb4", "\xce\xb5", "\xce\xb6", "\xc3\x96", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xce\xb7", "\xce\xb8", "\xce\xb9", "\xce\xba", "\xce\xbb", "\xce\xbc", "\xc3\x9c", "\xc2\xa8", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xce\xbd", "\xce\xbe", "\xce\xbf", "\xcf\x80", "\xcf\x81", "\xcf\x82", "\xef\xbf\xbd", "\xce\xac", "\xce\xad", "\xce\xae", "\xcf\x8a", "\xce\xaf", "\xcf\x8c", "\xcf\x8d", "\xcf\x8b", "\xcf\x8e", "\xcf\x83", "\xcf\x84", "\xcf\x85", "\xcf\x86", "\xcf\x87", "\xcf\x88", "\xc2\xb8", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xef\xbf\xbd", "\xcf\x89", "\xc3\x82", "\xc3\xa0", "\xc3\xa4", "\xc3\xaa", "\xc2\xb4", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xc2\xb1", "\xc3\xa9", "\xc3\xa8", "\xc3\xab", "\xc3\xae", "\xc3\xaf", "\xc2\xb0", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xc2\xbd", "\xc3\xb6", "\xc3\xb4", "\xc3\xbb", "\xc3\xb9", "\xc3\xbc", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xc3\xbf", "\xc3\xa7", "\xc3\x87", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\x4a", 0x0000005d => "\x5a", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a3 => "\x7b", 0x000000a7 => "\x7c", 0x000000a8 => "\xa1", 0x000000b0 => "\xe0", 0x000000b1 => "\xda", 0x000000b4 => "\xd0", 0x000000b8 => "\xc0", 0x000000bd => "\xea", 0x000000c2 => "\xcc", 0x000000c4 => "\x80", 0x000000c7 => "\xfc", 0x000000d6 => "\x90", 0x000000dc => "\xa0", 0x000000e0 => "\xcd", 0x000000e4 => "\xce", 0x000000e7 => "\xfb", 0x000000e8 => "\xdc", 0x000000e9 => "\xdb", 0x000000ea => "\xcf", 0x000000eb => "\xdd", 0x000000ee => "\xde", 0x000000ef => "\xdf", 0x000000f4 => "\xec", 0x000000f6 => "\xeb", 0x000000f9 => "\xee", 0x000000fb => "\xed", 0x000000fc => "\xef", 0x000000ff => "\xfa", 0x00000386 => "\x71", 0x00000388 => "\x72", 0x00000389 => "\x73", 0x0000038a => "\x75", 0x0000038c => "\x76", 0x0000038e => "\x77", 0x0000038f => "\x78", 0x00000391 => "\x41", 0x00000392 => "\x42", 0x00000393 => "\x43", 0x00000394 => "\x44", 0x00000395 => "\x45", 0x00000396 => "\x46", 0x00000397 => "\x47", 0x00000398 => "\x48", 0x00000399 => "\x49", 0x0000039a => "\x51", 0x0000039b => "\x52", 0x0000039c => "\x53", 0x0000039d => "\x54", 0x0000039e => "\x55", 0x0000039f => "\x56", 0x000003a0 => "\x57", 0x000003a1 => "\x58", 0x000003a3 => "\x59", 0x000003a4 => "\x62", 0x000003a5 => "\x63", 0x000003a6 => "\x64", 0x000003a7 => "\x65", 0x000003a8 => "\x66", 0x000003a9 => "\x67", 0x000003ac => "\xb1", 0x000003ad => "\xb2", 0x000003ae => "\xb3", 0x000003af => "\xb5", 0x000003b1 => "\x8a", 0x000003b2 => "\x8b", 0x000003b3 => "\x8c", 0x000003b4 => "\x8d", 0x000003b5 => "\x8e", 0x000003b6 => "\x8f", 0x000003b7 => "\x9a", 0x000003b8 => "\x9b", 0x000003b9 => "\x9c", 0x000003ba => "\x9d", 0x000003bb => "\x9e", 0x000003bc => "\x9f", 0x000003bd => "\xaa", 0x000003be => "\xab", 0x000003bf => "\xac", 0x000003c0 => "\xad", 0x000003c1 => "\xae", 0x000003c2 => "\xaf", 0x000003c3 => "\xba", 0x000003c4 => "\xbb", 0x000003c5 => "\xbc", 0x000003c6 => "\xbd", 0x000003c7 => "\xbe", 0x000003c8 => "\xbf", 0x000003c9 => "\xcb", 0x000003ca => "\xb4", 0x000003cb => "\xb8", 0x000003cc => "\xb6", 0x000003cd => "\xb7", 0x000003ce => "\xb9", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM423 - Conversion routines for IBM423 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM423. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP423 alias EBCDIC-CP-GR Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 41 | 00000391 | GREEK CAPITAL LETTER ALPHA 42 | 00000392 | GREEK CAPITAL LETTER BETA 43 | 00000393 | GREEK CAPITAL LETTER GAMMA 44 | 00000394 | GREEK CAPITAL LETTER DELTA 45 | 00000395 | GREEK CAPITAL LETTER EPSILON 46 | 00000396 | GREEK CAPITAL LETTER ZETA 47 | 00000397 | GREEK CAPITAL LETTER ETA 48 | 00000398 | GREEK CAPITAL LETTER THETA 49 | 00000399 | GREEK CAPITAL LETTER IOTA 4A | 0000005B | LEFT SQUARE BRACKET 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 51 | 0000039A | GREEK CAPITAL LETTER KAPPA 52 | 0000039B | GREEK CAPITAL LETTER LAMDA 53 | 0000039C | GREEK CAPITAL LETTER MU 54 | 0000039D | GREEK CAPITAL LETTER NU 55 | 0000039E | GREEK CAPITAL LETTER XI 56 | 0000039F | GREEK CAPITAL LETTER OMICRON 57 | 000003A0 | GREEK CAPITAL LETTER PI 58 | 000003A1 | GREEK CAPITAL LETTER RHO 59 | 000003A3 | GREEK CAPITAL LETTER SIGMA 5A | 0000005D | RIGHT SQUARE BRACKET 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 62 | 000003A4 | GREEK CAPITAL LETTER TAU 63 | 000003A5 | GREEK CAPITAL LETTER UPSILON 64 | 000003A6 | GREEK CAPITAL LETTER PHI 65 | 000003A7 | GREEK CAPITAL LETTER CHI 66 | 000003A8 | GREEK CAPITAL LETTER PSI 67 | 000003A9 | GREEK CAPITAL LETTER OMEGA 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 71 | 00000386 | GREEK CAPITAL LETTER ALPHA WITH TONOS 72 | 00000388 | GREEK CAPITAL LETTER EPSILON WITH TONOS 73 | 00000389 | GREEK CAPITAL LETTER ETA WITH TONOS 75 | 0000038A | GREEK CAPITAL LETTER IOTA WITH TONOS 76 | 0000038C | GREEK CAPITAL LETTER OMICRON WITH TONOS 77 | 0000038E | GREEK CAPITAL LETTER UPSILON WITH TONOS 78 | 0000038F | GREEK CAPITAL LETTER OMEGA WITH TONOS 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 000000A3 | POUND SIGN 7C | 000000A7 | SECTION SIGN 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 80 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 8A | 000003B1 | GREEK SMALL LETTER ALPHA 8B | 000003B2 | GREEK SMALL LETTER BETA 8C | 000003B3 | GREEK SMALL LETTER GAMMA 8D | 000003B4 | GREEK SMALL LETTER DELTA 8E | 000003B5 | GREEK SMALL LETTER EPSILON 8F | 000003B6 | GREEK SMALL LETTER ZETA 90 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R 9A | 000003B7 | GREEK SMALL LETTER ETA 9B | 000003B8 | GREEK SMALL LETTER THETA 9C | 000003B9 | GREEK SMALL LETTER IOTA 9D | 000003BA | GREEK SMALL LETTER KAPPA 9E | 000003BB | GREEK SMALL LETTER LAMDA 9F | 000003BC | GREEK SMALL LETTER MU A0 | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS A1 | 000000A8 | DIAERESIS A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z AA | 000003BD | GREEK SMALL LETTER NU AB | 000003BE | GREEK SMALL LETTER XI AC | 000003BF | GREEK SMALL LETTER OMICRON AD | 000003C0 | GREEK SMALL LETTER PI AE | 000003C1 | GREEK SMALL LETTER RHO AF | 000003C2 | GREEK SMALL LETTER FINAL SIGMA B1 | 000003AC | GREEK SMALL LETTER ALPHA WITH TONOS B2 | 000003AD | GREEK SMALL LETTER EPSILON WITH TONOS B3 | 000003AE | GREEK SMALL LETTER ETA WITH TONOS B4 | 000003CA | GREEK SMALL LETTER IOTA WITH DIALYTIKA B5 | 000003AF | GREEK SMALL LETTER IOTA WITH TONOS B6 | 000003CC | GREEK SMALL LETTER OMICRON WITH TONOS B7 | 000003CD | GREEK SMALL LETTER UPSILON WITH TONOS B8 | 000003CB | GREEK SMALL LETTER UPSILON WITH DIALYTIKA B9 | 000003CE | GREEK SMALL LETTER OMEGA WITH TONOS BA | 000003C3 | GREEK SMALL LETTER SIGMA BB | 000003C4 | GREEK SMALL LETTER TAU BC | 000003C5 | GREEK SMALL LETTER UPSILON BD | 000003C6 | GREEK SMALL LETTER PHI BE | 000003C7 | GREEK SMALL LETTER CHI BF | 000003C8 | GREEK SMALL LETTER PSI C0 | 000000B8 | CEDILLA C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I CB | 000003C9 | GREEK SMALL LETTER OMEGA CC | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX CD | 000000E0 | LATIN SMALL LETTER A WITH GRAVE CE | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS CF | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX D0 | 000000B4 | ACUTE ACCENT D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R DA | 000000B1 | PLUS-MINUS SIGN DB | 000000E9 | LATIN SMALL LETTER E WITH ACUTE DC | 000000E8 | LATIN SMALL LETTER E WITH GRAVE DD | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS DE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX DF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS E0 | 000000B0 | DEGREE SIGN E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z EA | 000000BD | VULGAR FRACTION ONE HALF EB | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS EC | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX ED | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX EE | 000000F9 | LATIN SMALL LETTER U WITH GRAVE EF | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FA | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS FB | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA FC | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]]\h\hRecodeData/IBM1004.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM1004. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM1004; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0xfffd, 0xfffd, 0x201a, 0xfffd, 0x201e, 0x2026, 0x2020, 0x2021, 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0xfffd, 0xfffd, 0x0178, 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe2\x80\x9a", "\xef\xbf\xbd", "\xe2\x80\x9e", "\xe2\x80\xa6", "\xe2\x80\xa0", "\xe2\x80\xa1", "\xcb\x86", "\xe2\x80\xb0", "\xc5\xa0", "\xe2\x80\xb9", "\xc5\x92", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\xa2", "\xe2\x80\x93", "\xe2\x80\x94", "\xcb\x9c", "\xe2\x84\xa2", "\xc5\xa1", "\xe2\x80\xba", "\xc5\x93", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc5\xb8", "\xc2\xa0", "\xc2\xa1", "\xc2\xa2", "\xc2\xa3", "\xc2\xa4", "\xc2\xa5", "\xc2\xa6", "\xc2\xa7", "\xc2\xa8", "\xc2\xa9", "\xc2\xaa", "\xc2\xab", "\xc2\xac", "\xc2\xad", "\xc2\xae", "\xc2\xaf", "\xc2\xb0", "\xc2\xb1", "\xc2\xb2", "\xc2\xb3", "\xc2\xb4", "\xc2\xb5", "\xc2\xb6", "\xc2\xb7", "\xc2\xb8", "\xc2\xb9", "\xc2\xba", "\xc2\xbb", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\xc2\xbf", "\xc3\x80", "\xc3\x81", "\xc3\x82", "\xc3\x83", "\xc3\x84", "\xc3\x85", "\xc3\x86", "\xc3\x87", "\xc3\x88", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x8c", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x90", "\xc3\x91", "\xc3\x92", "\xc3\x93", "\xc3\x94", "\xc3\x95", "\xc3\x96", "\xc3\x97", "\xc3\x98", "\xc3\x99", "\xc3\x9a", "\xc3\x9b", "\xc3\x9c", "\xc3\x9d", "\xc3\x9e", "\xc3\x9f", "\xc3\xa0", "\xc3\xa1", "\xc3\xa2", "\xc3\xa3", "\xc3\xa4", "\xc3\xa5", "\xc3\xa6", "\xc3\xa7", "\xc3\xa8", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xac", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc3\xb0", "\xc3\xb1", "\xc3\xb2", "\xc3\xb3", "\xc3\xb4", "\xc3\xb5", "\xc3\xb6", "\xc3\xb7", "\xc3\xb8", "\xc3\xb9", "\xc3\xba", "\xc3\xbb", "\xc3\xbc", "\xc3\xbd", "\xc3\xbe", "\xc3\xbf", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xa0", 0x000000a1 => "\xa1", 0x000000a2 => "\xa2", 0x000000a3 => "\xa3", 0x000000a4 => "\xa4", 0x000000a5 => "\xa5", 0x000000a6 => "\xa6", 0x000000a7 => "\xa7", 0x000000a8 => "\xa8", 0x000000a9 => "\xa9", 0x000000aa => "\xaa", 0x000000ab => "\xab", 0x000000ac => "\xac", 0x000000ad => "\xad", 0x000000ae => "\xae", 0x000000af => "\xaf", 0x000000b0 => "\xb0", 0x000000b1 => "\xb1", 0x000000b2 => "\xb2", 0x000000b3 => "\xb3", 0x000000b4 => "\xb4", 0x000000b5 => "\xb5", 0x000000b6 => "\xb6", 0x000000b7 => "\xb7", 0x000000b8 => "\xb8", 0x000000b9 => "\xb9", 0x000000ba => "\xba", 0x000000bb => "\xbb", 0x000000bc => "\xbc", 0x000000bd => "\xbd", 0x000000be => "\xbe", 0x000000bf => "\xbf", 0x000000c0 => "\xc0", 0x000000c1 => "\xc1", 0x000000c2 => "\xc2", 0x000000c3 => "\xc3", 0x000000c4 => "\xc4", 0x000000c5 => "\xc5", 0x000000c6 => "\xc6", 0x000000c7 => "\xc7", 0x000000c8 => "\xc8", 0x000000c9 => "\xc9", 0x000000ca => "\xca", 0x000000cb => "\xcb", 0x000000cc => "\xcc", 0x000000cd => "\xcd", 0x000000ce => "\xce", 0x000000cf => "\xcf", 0x000000d0 => "\xd0", 0x000000d1 => "\xd1", 0x000000d2 => "\xd2", 0x000000d3 => "\xd3", 0x000000d4 => "\xd4", 0x000000d5 => "\xd5", 0x000000d6 => "\xd6", 0x000000d7 => "\xd7", 0x000000d8 => "\xd8", 0x000000d9 => "\xd9", 0x000000da => "\xda", 0x000000db => "\xdb", 0x000000dc => "\xdc", 0x000000dd => "\xdd", 0x000000de => "\xde", 0x000000df => "\xdf", 0x000000e0 => "\xe0", 0x000000e1 => "\xe1", 0x000000e2 => "\xe2", 0x000000e3 => "\xe3", 0x000000e4 => "\xe4", 0x000000e5 => "\xe5", 0x000000e6 => "\xe6", 0x000000e7 => "\xe7", 0x000000e8 => "\xe8", 0x000000e9 => "\xe9", 0x000000ea => "\xea", 0x000000eb => "\xeb", 0x000000ec => "\xec", 0x000000ed => "\xed", 0x000000ee => "\xee", 0x000000ef => "\xef", 0x000000f0 => "\xf0", 0x000000f1 => "\xf1", 0x000000f2 => "\xf2", 0x000000f3 => "\xf3", 0x000000f4 => "\xf4", 0x000000f5 => "\xf5", 0x000000f6 => "\xf6", 0x000000f7 => "\xf7", 0x000000f8 => "\xf8", 0x000000f9 => "\xf9", 0x000000fa => "\xfa", 0x000000fb => "\xfb", 0x000000fc => "\xfc", 0x000000fd => "\xfd", 0x000000fe => "\xfe", 0x000000ff => "\xff", 0x00000152 => "\x8c", 0x00000153 => "\x9c", 0x00000160 => "\x8a", 0x00000161 => "\x9a", 0x00000178 => "\x9f", 0x000002c6 => "\x88", 0x000002dc => "\x98", 0x00002013 => "\x96", 0x00002014 => "\x97", 0x00002018 => "\x91", 0x00002019 => "\x92", 0x0000201a => "\x82", 0x0000201c => "\x93", 0x0000201d => "\x94", 0x0000201e => "\x84", 0x00002020 => "\x86", 0x00002021 => "\x87", 0x00002022 => "\x95", 0x00002026 => "\x85", 0x00002030 => "\x89", 0x00002039 => "\x8b", 0x0000203a => "\x9b", 0x00002122 => "\x99", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM1004 - Conversion routines for IBM1004 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM1004. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: CEN/TC304 N283, 1994-02-04 alias CP1004 alias OS2LATIN1 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 82 | 0000201A | SINGLE LOW-9 QUOTATION MARK 84 | 0000201E | DOUBLE LOW-9 QUOTATION MARK 85 | 00002026 | HORIZONTAL ELLIPSIS 86 | 00002020 | DAGGER 87 | 00002021 | DOUBLE DAGGER 88 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT 89 | 00002030 | PER MILLE SIGN 8A | 00000160 | LATIN CAPITAL LETTER S WITH CARON 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK 8C | 00000152 | LATIN CAPITAL LIGATURE OE 91 | 00002018 | LEFT SINGLE QUOTATION MARK 92 | 00002019 | RIGHT SINGLE QUOTATION MARK 93 | 0000201C | LEFT DOUBLE QUOTATION MARK 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK 95 | 00002022 | BULLET 96 | 00002013 | EN DASH 97 | 00002014 | EM DASH 98 | 000002DC | SMALL TILDE 99 | 00002122 | TRADE MARK SIGN 9A | 00000161 | LATIN SMALL LETTER S WITH CARON 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 9C | 00000153 | LATIN SMALL LIGATURE OE 9F | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS A0 | 000000A0 | NO-BREAK SPACE A1 | 000000A1 | INVERTED EXCLAMATION MARK A2 | 000000A2 | CENT SIGN A3 | 000000A3 | POUND SIGN A4 | 000000A4 | CURRENCY SIGN A5 | 000000A5 | YEN SIGN A6 | 000000A6 | BROKEN BAR A7 | 000000A7 | SECTION SIGN A8 | 000000A8 | DIAERESIS A9 | 000000A9 | COPYRIGHT SIGN AA | 000000AA | FEMININE ORDINAL INDICATOR AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AC | 000000AC | NOT SIGN AD | 000000AD | SOFT HYPHEN AE | 000000AE | REGISTERED SIGN AF | 000000AF | MACRON B0 | 000000B0 | DEGREE SIGN B1 | 000000B1 | PLUS-MINUS SIGN B2 | 000000B2 | SUPERSCRIPT TWO B3 | 000000B3 | SUPERSCRIPT THREE B4 | 000000B4 | ACUTE ACCENT B5 | 000000B5 | MICRO SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000B7 | MIDDLE DOT B8 | 000000B8 | CEDILLA B9 | 000000B9 | SUPERSCRIPT ONE BA | 000000BA | MASCULINE ORDINAL INDICATOR BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK BC | 000000BC | VULGAR FRACTION ONE QUARTER BD | 000000BD | VULGAR FRACTION ONE HALF BE | 000000BE | VULGAR FRACTION THREE QUARTERS BF | 000000BF | INVERTED QUESTION MARK C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE C6 | 000000C6 | LATIN CAPITAL LETTER AE C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS D0 | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic) D1 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS D7 | 000000D7 | MULTIPLICATION SIGN D8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS DD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE DE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic) DF | 000000DF | LATIN SMALL LETTER SHARP S (German) E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE E6 | 000000E6 | LATIN SMALL LETTER AE E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS F0 | 000000F0 | LATIN SMALL LETTER ETH (Icelandic) F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS F7 | 000000F7 | DIVISION SIGN F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE FE | 000000FE | LATIN SMALL LETTER THORN (Icelandic) FF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]:PPRecodeData/EBCDIC_FI_SE.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for EBCDIC-FI-SE. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::EBCDIC_FI_SE; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00c9, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa7", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa4", "\xc3\x85", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xb6", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa9", "\x3a", "\xc3\x84", "\xc3\x96", "\x27", "\x3d", "\x22", "\xef\xbf\xbd", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xbc", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa4", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa5", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\x89", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a4 => "\x5a", 0x000000a7 => "\x4a", 0x000000c4 => "\x7b", 0x000000c5 => "\x5b", 0x000000c9 => "\xe0", 0x000000d6 => "\x7c", 0x000000e4 => "\xc0", 0x000000e5 => "\xd0", 0x000000e9 => "\x79", 0x000000f6 => "\x6a", 0x000000fc => "\xa1", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::EBCDIC_FI_SE - Conversion routines for EBCDIC_FI_SE =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for EBCDIC-FI-SE. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 4A | 000000A7 | SECTION SIGN 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 5A | 000000A4 | CURRENCY SIGN 5B | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 6A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 79 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 7A | 0000003A | COLON 7B | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 7C | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R A1 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z C0 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I D0 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R E0 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]"1ưkkRecodeData/ISO_8859_16.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ISO-8859-16. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ISO_8859_16; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x0104, 0x0105, 0x0141, 0x20ac, 0x201e, 0x0160, 0x00a7, 0x0161, 0x00a9, 0x0218, 0x00ab, 0x0179, 0x00ad, 0x017a, 0x017b, 0x00b0, 0x00b1, 0x010c, 0x0142, 0x017d, 0x201d, 0x00b6, 0x00b7, 0x017e, 0x010d, 0x0219, 0x00bb, 0x0152, 0x0153, 0x0178, 0x017c, 0x00c0, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0106, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x0110, 0x0143, 0x00d2, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x015a, 0x0170, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0118, 0x021a, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x0107, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x0111, 0x0144, 0x00f2, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x015b, 0x0171, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0119, 0x021b, 0x00ff, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\xc2\x85", "\xc2\x86", "\xc2\x87", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\xc2\x8d", "\xc2\x8e", "\xc2\x8f", "\xc2\x90", "\xc2\x91", "\xc2\x92", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\xc2\x97", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\xc2\x9c", "\xc2\x9d", "\xc2\x9e", "\xc2\x9f", "\xc2\xa0", "\xc4\x84", "\xc4\x85", "\xc5\x81", "\xe2\x82\xac", "\xe2\x80\x9e", "\xc5\xa0", "\xc2\xa7", "\xc5\xa1", "\xc2\xa9", "\xc8\x98", "\xc2\xab", "\xc5\xb9", "\xc2\xad", "\xc5\xba", "\xc5\xbb", "\xc2\xb0", "\xc2\xb1", "\xc4\x8c", "\xc5\x82", "\xc5\xbd", "\xe2\x80\x9d", "\xc2\xb6", "\xc2\xb7", "\xc5\xbe", "\xc4\x8d", "\xc8\x99", "\xc2\xbb", "\xc5\x92", "\xc5\x93", "\xc5\xb8", "\xc5\xbc", "\xc3\x80", "\xc3\x81", "\xc3\x82", "\xc4\x82", "\xc3\x84", "\xc4\x86", "\xc3\x86", "\xc3\x87", "\xc3\x88", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x8c", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc4\x90", "\xc5\x83", "\xc3\x92", "\xc3\x93", "\xc3\x94", "\xc5\x90", "\xc3\x96", "\xc5\x9a", "\xc5\xb0", "\xc3\x99", "\xc3\x9a", "\xc3\x9b", "\xc3\x9c", "\xc4\x98", "\xc8\x9a", "\xc3\x9f", "\xc3\xa0", "\xc3\xa1", "\xc3\xa2", "\xc4\x83", "\xc3\xa4", "\xc4\x87", "\xc3\xa6", "\xc3\xa7", "\xc3\xa8", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xac", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc4\x91", "\xc5\x84", "\xc3\xb2", "\xc3\xb3", "\xc3\xb4", "\xc5\x91", "\xc3\xb6", "\xc5\x9b", "\xc5\xb1", "\xc3\xb9", "\xc3\xba", "\xc3\xbb", "\xc3\xbc", "\xc4\x99", "\xc8\x9b", "\xc3\xbf", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000080 => "\x80", 0x00000081 => "\x81", 0x00000082 => "\x82", 0x00000083 => "\x83", 0x00000084 => "\x84", 0x00000085 => "\x85", 0x00000086 => "\x86", 0x00000087 => "\x87", 0x00000088 => "\x88", 0x00000089 => "\x89", 0x0000008a => "\x8a", 0x0000008b => "\x8b", 0x0000008c => "\x8c", 0x0000008d => "\x8d", 0x0000008e => "\x8e", 0x0000008f => "\x8f", 0x00000090 => "\x90", 0x00000091 => "\x91", 0x00000092 => "\x92", 0x00000093 => "\x93", 0x00000094 => "\x94", 0x00000095 => "\x95", 0x00000096 => "\x96", 0x00000097 => "\x97", 0x00000098 => "\x98", 0x00000099 => "\x99", 0x0000009a => "\x9a", 0x0000009b => "\x9b", 0x0000009c => "\x9c", 0x0000009d => "\x9d", 0x0000009e => "\x9e", 0x0000009f => "\x9f", 0x000000a0 => "\xa0", 0x000000a7 => "\xa7", 0x000000a9 => "\xa9", 0x000000ab => "\xab", 0x000000ad => "\xad", 0x000000b0 => "\xb0", 0x000000b1 => "\xb1", 0x000000b6 => "\xb6", 0x000000b7 => "\xb7", 0x000000bb => "\xbb", 0x000000c0 => "\xc0", 0x000000c1 => "\xc1", 0x000000c2 => "\xc2", 0x000000c4 => "\xc4", 0x000000c6 => "\xc6", 0x000000c7 => "\xc7", 0x000000c8 => "\xc8", 0x000000c9 => "\xc9", 0x000000ca => "\xca", 0x000000cb => "\xcb", 0x000000cc => "\xcc", 0x000000cd => "\xcd", 0x000000ce => "\xce", 0x000000cf => "\xcf", 0x000000d2 => "\xd2", 0x000000d3 => "\xd3", 0x000000d4 => "\xd4", 0x000000d6 => "\xd6", 0x000000d9 => "\xd9", 0x000000da => "\xda", 0x000000db => "\xdb", 0x000000dc => "\xdc", 0x000000df => "\xdf", 0x000000e0 => "\xe0", 0x000000e1 => "\xe1", 0x000000e2 => "\xe2", 0x000000e4 => "\xe4", 0x000000e6 => "\xe6", 0x000000e7 => "\xe7", 0x000000e8 => "\xe8", 0x000000e9 => "\xe9", 0x000000ea => "\xea", 0x000000eb => "\xeb", 0x000000ec => "\xec", 0x000000ed => "\xed", 0x000000ee => "\xee", 0x000000ef => "\xef", 0x000000f2 => "\xf2", 0x000000f3 => "\xf3", 0x000000f4 => "\xf4", 0x000000f6 => "\xf6", 0x000000f9 => "\xf9", 0x000000fa => "\xfa", 0x000000fb => "\xfb", 0x000000fc => "\xfc", 0x000000ff => "\xff", 0x00000102 => "\xc3", 0x00000103 => "\xe3", 0x00000104 => "\xa1", 0x00000105 => "\xa2", 0x00000106 => "\xc5", 0x00000107 => "\xe5", 0x0000010c => "\xb2", 0x0000010d => "\xb9", 0x00000110 => "\xd0", 0x00000111 => "\xf0", 0x00000118 => "\xdd", 0x00000119 => "\xfd", 0x00000141 => "\xa3", 0x00000142 => "\xb3", 0x00000143 => "\xd1", 0x00000144 => "\xf1", 0x00000150 => "\xd5", 0x00000151 => "\xf5", 0x00000152 => "\xbc", 0x00000153 => "\xbd", 0x0000015a => "\xd7", 0x0000015b => "\xf7", 0x00000160 => "\xa6", 0x00000161 => "\xa8", 0x00000170 => "\xd8", 0x00000171 => "\xf8", 0x00000178 => "\xbe", 0x00000179 => "\xac", 0x0000017a => "\xae", 0x0000017b => "\xaf", 0x0000017c => "\xbf", 0x0000017d => "\xb4", 0x0000017e => "\xb8", 0x00000218 => "\xaa", 0x00000219 => "\xba", 0x0000021a => "\xde", 0x0000021b => "\xfe", 0x0000201d => "\xb5", 0x0000201e => "\xa5", 0x000020ac => "\xa4", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ISO_8859_16 - Conversion routines for ISO-8859-16 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for ISO-8859-16. =head1 COMMENTS The following comments have been extracted from the original charmap: automatically generated from the charDB alias ISO-IR-226 alias LATIN10 alias L10 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL 01 | 00000001 | START OF HEADING 02 | 00000002 | START OF TEXT 03 | 00000003 | END OF TEXT 04 | 00000004 | END OF TRANSMISSION 05 | 00000005 | ENQUIRY 06 | 00000006 | ACKNOWLEDGE 07 | 00000007 | BELL 08 | 00000008 | BACKSPACE 09 | 00000009 | HORIZONTAL TABULATION 0A | 0000000A | LINE FEED 0B | 0000000B | VERTICAL TABULATION 0C | 0000000C | FORM FEED 0D | 0000000D | CARRIAGE RETURN 0E | 0000000E | SHIFT OUT 0F | 0000000F | SHIFT IN 10 | 00000010 | DATA LINK ESCAPE 11 | 00000011 | DEVICE CONTROL ONE 12 | 00000012 | DEVICE CONTROL TWO 13 | 00000013 | DEVICE CONTROL THREE 14 | 00000014 | DEVICE CONTROL FOUR 15 | 00000015 | NEGATIVE ACKNOWLEDGE 16 | 00000016 | SYNCHRONOUS IDLE 17 | 00000017 | END OF TRANSMISSION BLOCK 18 | 00000018 | CANCEL 19 | 00000019 | END OF MEDIUM 1A | 0000001A | SUBSTITUTE 1B | 0000001B | ESCAPE 1C | 0000001C | FILE SEPARATOR 1D | 0000001D | GROUP SEPARATOR 1E | 0000001E | RECORD SEPARATOR 1F | 0000001F | UNIT SEPARATOR 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE 80 | 00000080 | PADDING CHARACTER (PAD) 81 | 00000081 | HIGH OCTET PRESET (HOP) 82 | 00000082 | BREAK PERMITTED HERE (BPH) 83 | 00000083 | NO BREAK HERE (NBH) 84 | 00000084 | INDEX (IND) 85 | 00000085 | NEXT LINE (NEL) 86 | 00000086 | START OF SELECTED AREA (SSA) 87 | 00000087 | END OF SELECTED AREA (ESA) 88 | 00000088 | CHARACTER TABULATION SET (HTS) 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 8A | 0000008A | LINE TABULATION SET (VTS) 8B | 0000008B | PARTIAL LINE FORWARD (PLD) 8C | 0000008C | PARTIAL LINE BACKWARD (PLU) 8D | 0000008D | REVERSE LINE FEED (RI) 8E | 0000008E | SINGLE-SHIFT TWO (SS2) 8F | 0000008F | SINGLE-SHIFT THREE (SS3) 90 | 00000090 | DEVICE CONTROL STRING (DCS) 91 | 00000091 | PRIVATE USE ONE (PU1) 92 | 00000092 | PRIVATE USE TWO (PU2) 93 | 00000093 | SET TRANSMIT STATE (STS) 94 | 00000094 | CANCEL CHARACTER (CCH) 95 | 00000095 | MESSAGE WAITING (MW) 96 | 00000096 | START OF GUARDED AREA (SPA) 97 | 00000097 | END OF GUARDED AREA (EPA) 98 | 00000098 | START OF STRING (SOS) 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 9C | 0000009C | STRING TERMINATOR (ST) 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC) 9E | 0000009E | PRIVACY MESSAGE (PM) 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC) A0 | 000000A0 | NO-BREAK SPACE A1 | 00000104 | LATIN CAPITAL LETTER A WITH OGONEK A2 | 00000105 | LATIN SMALL LETTER A WITH OGONEK A3 | 00000141 | LATIN CAPITAL LETTER L WITH STROKE A4 | 000020AC | EURO SIGN A5 | 0000201E | DOUBLE LOW-9 QUOTATION MARK A6 | 00000160 | LATIN CAPITAL LETTER S WITH CARON A7 | 000000A7 | SECTION SIGN A8 | 00000161 | LATIN SMALL LETTER S WITH CARON A9 | 000000A9 | COPYRIGHT SIGN AA | 00000218 | LATIN CAPITAL LETTER S WITH COMMA BELOW AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AC | 00000179 | LATIN CAPITAL LETTER Z WITH ACUTE AD | 000000AD | SOFT HYPHEN AE | 0000017A | LATIN SMALL LETTER Z WITH ACUTE AF | 0000017B | LATIN CAPITAL LETTER Z WITH DOT ABOVE B0 | 000000B0 | DEGREE SIGN B1 | 000000B1 | PLUS-MINUS SIGN B2 | 0000010C | LATIN CAPITAL LETTER C WITH CARON B3 | 00000142 | LATIN SMALL LETTER L WITH STROKE B4 | 0000017D | LATIN CAPITAL LETTER Z WITH CARON B5 | 0000201D | RIGHT DOUBLE QUOTATION MARK B6 | 000000B6 | PILCROW SIGN B7 | 000000B7 | MIDDLE DOT B8 | 0000017E | LATIN SMALL LETTER Z WITH CARON B9 | 0000010D | LATIN SMALL LETTER C WITH CARON BA | 00000219 | LATIN SMALL LETTER S WITH COMMA BELOW BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK BC | 00000152 | LATIN CAPITAL LIGATURE OE BD | 00000153 | LATIN SMALL LIGATURE OE BE | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS BF | 0000017C | LATIN SMALL LETTER Z WITH DOT ABOVE C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX C3 | 00000102 | LATIN CAPITAL LETTER A WITH BREVE C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS C5 | 00000106 | LATIN CAPITAL LETTER C WITH ACUTE C6 | 000000C6 | LATIN CAPITAL LETTER AE C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS D0 | 00000110 | LATIN CAPITAL LETTER D WITH STROKE D1 | 00000143 | LATIN CAPITAL LETTER N WITH ACUTE D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX D5 | 00000150 | LATIN CAPITAL LETTER O WITH DOUBLE ACUTE D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS D7 | 0000015A | LATIN CAPITAL LETTER S WITH ACUTE D8 | 00000170 | LATIN CAPITAL LETTER U WITH DOUBLE ACUTE D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS DD | 00000118 | LATIN CAPITAL LETTER E WITH OGONEK DE | 0000021A | LATIN CAPITAL LETTER T WITH COMMA BELOW DF | 000000DF | LATIN SMALL LETTER SHARP S E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX E3 | 00000103 | LATIN SMALL LETTER A WITH BREVE E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS E5 | 00000107 | LATIN SMALL LETTER C WITH ACUTE E6 | 000000E6 | LATIN SMALL LETTER AE E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS F0 | 00000111 | LATIN SMALL LETTER D WITH STROKE F1 | 00000144 | LATIN SMALL LETTER N WITH ACUTE F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX F5 | 00000151 | LATIN SMALL LETTER O WITH DOUBLE ACUTE F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS F7 | 0000015B | LATIN SMALL LETTER S WITH ACUTE F8 | 00000171 | LATIN SMALL LETTER U WITH DOUBLE ACUTE F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS FD | 00000119 | LATIN SMALL LETTER E WITH OGONEK FE | 0000021B | LATIN SMALL LETTER T WITH COMMA BELOW FF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]^FhhRecodeData/MAC_UK.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for MAC-UK. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::MAC_UK; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x2020, 0x00b0, 0x0490, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x0406, 0x00ae, 0x00a9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453, 0x221e, 0x00b1, 0x2264, 0x2265, 0x0456, 0x00b5, 0x0491, 0x0408, 0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040a, 0x045a, 0x0458, 0x0405, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, 0x00bb, 0x2026, 0x00a0, 0x040b, 0x045b, 0x040c, 0x045c, 0x0455, 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x201e, 0x040e, 0x045e, 0x040f, 0x045f, 0x2116, 0x0401, 0x0451, 0x044f, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x00a4, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xd0\x90", "\xd0\x91", "\xd0\x92", "\xd0\x93", "\xd0\x94", "\xd0\x95", "\xd0\x96", "\xd0\x97", "\xd0\x98", "\xd0\x99", "\xd0\x9a", "\xd0\x9b", "\xd0\x9c", "\xd0\x9d", "\xd0\x9e", "\xd0\x9f", "\xd0\xa0", "\xd0\xa1", "\xd0\xa2", "\xd0\xa3", "\xd0\xa4", "\xd0\xa5", "\xd0\xa6", "\xd0\xa7", "\xd0\xa8", "\xd0\xa9", "\xd0\xaa", "\xd0\xab", "\xd0\xac", "\xd0\xad", "\xd0\xae", "\xd0\xaf", "\xe2\x80\xa0", "\xc2\xb0", "\xd2\x90", "\xc2\xa3", "\xc2\xa7", "\xe2\x80\xa2", "\xc2\xb6", "\xd0\x86", "\xc2\xae", "\xc2\xa9", "\xe2\x84\xa2", "\xd0\x82", "\xd1\x92", "\xe2\x89\xa0", "\xd0\x83", "\xd1\x93", "\xe2\x88\x9e", "\xc2\xb1", "\xe2\x89\xa4", "\xe2\x89\xa5", "\xd1\x96", "\xc2\xb5", "\xd2\x91", "\xd0\x88", "\xd0\x84", "\xd1\x94", "\xd0\x87", "\xd1\x97", "\xd0\x89", "\xd1\x99", "\xd0\x8a", "\xd1\x9a", "\xd1\x98", "\xd0\x85", "\xc2\xac", "\xe2\x88\x9a", "\xc6\x92", "\xe2\x89\x88", "\xe2\x88\x86", "\xc2\xab", "\xc2\xbb", "\xe2\x80\xa6", "\xc2\xa0", "\xd0\x8b", "\xd1\x9b", "\xd0\x8c", "\xd1\x9c", "\xd1\x95", "\xe2\x80\x93", "\xe2\x80\x94", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x98", "\xe2\x80\x99", "\xc3\xb7", "\xe2\x80\x9e", "\xd0\x8e", "\xd1\x9e", "\xd0\x8f", "\xd1\x9f", "\xe2\x84\x96", "\xd0\x81", "\xd1\x91", "\xd1\x8f", "\xd0\xb0", "\xd0\xb1", "\xd0\xb2", "\xd0\xb3", "\xd0\xb4", "\xd0\xb5", "\xd0\xb6", "\xd0\xb7", "\xd0\xb8", "\xd0\xb9", "\xd0\xba", "\xd0\xbb", "\xd0\xbc", "\xd0\xbd", "\xd0\xbe", "\xd0\xbf", "\xd1\x80", "\xd1\x81", "\xd1\x82", "\xd1\x83", "\xd1\x84", "\xd1\x85", "\xd1\x86", "\xd1\x87", "\xd1\x88", "\xd1\x89", "\xd1\x8a", "\xd1\x8b", "\xd1\x8c", "\xd1\x8d", "\xd1\x8e", "\xc2\xa4", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xca", 0x000000a3 => "\xa3", 0x000000a4 => "\xff", 0x000000a7 => "\xa4", 0x000000a9 => "\xa9", 0x000000ab => "\xc7", 0x000000ac => "\xc2", 0x000000ae => "\xa8", 0x000000b0 => "\xa1", 0x000000b1 => "\xb1", 0x000000b5 => "\xb5", 0x000000b6 => "\xa6", 0x000000bb => "\xc8", 0x000000f7 => "\xd6", 0x00000192 => "\xc4", 0x00000401 => "\xdd", 0x00000402 => "\xab", 0x00000403 => "\xae", 0x00000404 => "\xb8", 0x00000405 => "\xc1", 0x00000406 => "\xa7", 0x00000407 => "\xba", 0x00000408 => "\xb7", 0x00000409 => "\xbc", 0x0000040a => "\xbe", 0x0000040b => "\xcb", 0x0000040c => "\xcd", 0x0000040e => "\xd8", 0x0000040f => "\xda", 0x00000410 => "\x80", 0x00000411 => "\x81", 0x00000412 => "\x82", 0x00000413 => "\x83", 0x00000414 => "\x84", 0x00000415 => "\x85", 0x00000416 => "\x86", 0x00000417 => "\x87", 0x00000418 => "\x88", 0x00000419 => "\x89", 0x0000041a => "\x8a", 0x0000041b => "\x8b", 0x0000041c => "\x8c", 0x0000041d => "\x8d", 0x0000041e => "\x8e", 0x0000041f => "\x8f", 0x00000420 => "\x90", 0x00000421 => "\x91", 0x00000422 => "\x92", 0x00000423 => "\x93", 0x00000424 => "\x94", 0x00000425 => "\x95", 0x00000426 => "\x96", 0x00000427 => "\x97", 0x00000428 => "\x98", 0x00000429 => "\x99", 0x0000042a => "\x9a", 0x0000042b => "\x9b", 0x0000042c => "\x9c", 0x0000042d => "\x9d", 0x0000042e => "\x9e", 0x0000042f => "\x9f", 0x00000430 => "\xe0", 0x00000431 => "\xe1", 0x00000432 => "\xe2", 0x00000433 => "\xe3", 0x00000434 => "\xe4", 0x00000435 => "\xe5", 0x00000436 => "\xe6", 0x00000437 => "\xe7", 0x00000438 => "\xe8", 0x00000439 => "\xe9", 0x0000043a => "\xea", 0x0000043b => "\xeb", 0x0000043c => "\xec", 0x0000043d => "\xed", 0x0000043e => "\xee", 0x0000043f => "\xef", 0x00000440 => "\xf0", 0x00000441 => "\xf1", 0x00000442 => "\xf2", 0x00000443 => "\xf3", 0x00000444 => "\xf4", 0x00000445 => "\xf5", 0x00000446 => "\xf6", 0x00000447 => "\xf7", 0x00000448 => "\xf8", 0x00000449 => "\xf9", 0x0000044a => "\xfa", 0x0000044b => "\xfb", 0x0000044c => "\xfc", 0x0000044d => "\xfd", 0x0000044e => "\xfe", 0x0000044f => "\xdf", 0x00000451 => "\xde", 0x00000452 => "\xac", 0x00000453 => "\xaf", 0x00000454 => "\xb9", 0x00000455 => "\xcf", 0x00000456 => "\xb4", 0x00000457 => "\xbb", 0x00000458 => "\xc0", 0x00000459 => "\xbd", 0x0000045a => "\xbf", 0x0000045b => "\xcc", 0x0000045c => "\xce", 0x0000045e => "\xd9", 0x0000045f => "\xdb", 0x00000490 => "\xa2", 0x00000491 => "\xb6", 0x00002013 => "\xd0", 0x00002014 => "\xd1", 0x00002018 => "\xd4", 0x00002019 => "\xd5", 0x0000201c => "\xd2", 0x0000201d => "\xd3", 0x0000201e => "\xd7", 0x00002020 => "\xa0", 0x00002022 => "\xa5", 0x00002026 => "\xc9", 0x00002116 => "\xdc", 0x00002122 => "\xaa", 0x00002206 => "\xc6", 0x0000221a => "\xc3", 0x0000221e => "\xb0", 0x00002248 => "\xc5", 0x00002260 => "\xad", 0x00002264 => "\xb2", 0x00002265 => "\xb3", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::MAC_UK - Conversion routines for MAC-UK =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for MAC-UK. =head1 COMMENTS The following comments have been extracted from the original charmap: automatically generated from the charDB Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL 01 | 00000001 | START OF HEADING 02 | 00000002 | START OF TEXT 03 | 00000003 | END OF TEXT 04 | 00000004 | END OF TRANSMISSION 05 | 00000005 | ENQUIRY 06 | 00000006 | ACKNOWLEDGE 07 | 00000007 | BELL 08 | 00000008 | BACKSPACE 09 | 00000009 | HORIZONTAL TABULATION 0A | 0000000A | LINE FEED 0B | 0000000B | VERTICAL TABULATION 0C | 0000000C | FORM FEED 0D | 0000000D | CARRIAGE RETURN 0E | 0000000E | SHIFT OUT 0F | 0000000F | SHIFT IN 10 | 00000010 | DATA LINK ESCAPE 11 | 00000011 | DEVICE CONTROL ONE 12 | 00000012 | DEVICE CONTROL TWO 13 | 00000013 | DEVICE CONTROL THREE 14 | 00000014 | DEVICE CONTROL FOUR 15 | 00000015 | NEGATIVE ACKNOWLEDGE 16 | 00000016 | SYNCHRONOUS IDLE 17 | 00000017 | END OF TRANSMISSION BLOCK 18 | 00000018 | CANCEL 19 | 00000019 | END OF MEDIUM 1A | 0000001A | SUBSTITUTE 1B | 0000001B | ESCAPE 1C | 0000001C | FILE SEPARATOR 1D | 0000001D | GROUP SEPARATOR 1E | 0000001E | RECORD SEPARATOR 1F | 0000001F | UNIT SEPARATOR 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE 80 | 00000410 | CYRILLIC CAPITAL LETTER A 81 | 00000411 | CYRILLIC CAPITAL LETTER BE 82 | 00000412 | CYRILLIC CAPITAL LETTER VE 83 | 00000413 | CYRILLIC CAPITAL LETTER GHE 84 | 00000414 | CYRILLIC CAPITAL LETTER DE 85 | 00000415 | CYRILLIC CAPITAL LETTER IE 86 | 00000416 | CYRILLIC CAPITAL LETTER ZHE 87 | 00000417 | CYRILLIC CAPITAL LETTER ZE 88 | 00000418 | CYRILLIC CAPITAL LETTER I 89 | 00000419 | CYRILLIC CAPITAL LETTER SHORT I 8A | 0000041A | CYRILLIC CAPITAL LETTER KA 8B | 0000041B | CYRILLIC CAPITAL LETTER EL 8C | 0000041C | CYRILLIC CAPITAL LETTER EM 8D | 0000041D | CYRILLIC CAPITAL LETTER EN 8E | 0000041E | CYRILLIC CAPITAL LETTER O 8F | 0000041F | CYRILLIC CAPITAL LETTER PE 90 | 00000420 | CYRILLIC CAPITAL LETTER ER 91 | 00000421 | CYRILLIC CAPITAL LETTER ES 92 | 00000422 | CYRILLIC CAPITAL LETTER TE 93 | 00000423 | CYRILLIC CAPITAL LETTER U 94 | 00000424 | CYRILLIC CAPITAL LETTER EF 95 | 00000425 | CYRILLIC CAPITAL LETTER HA 96 | 00000426 | CYRILLIC CAPITAL LETTER TSE 97 | 00000427 | CYRILLIC CAPITAL LETTER CHE 98 | 00000428 | CYRILLIC CAPITAL LETTER SHA 99 | 00000429 | CYRILLIC CAPITAL LETTER SHCHA 9A | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN 9B | 0000042B | CYRILLIC CAPITAL LETTER YERU 9C | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN 9D | 0000042D | CYRILLIC CAPITAL LETTER E 9E | 0000042E | CYRILLIC CAPITAL LETTER YU 9F | 0000042F | CYRILLIC CAPITAL LETTER YA A0 | 00002020 | DAGGER A1 | 000000B0 | DEGREE SIGN A2 | 00000490 | CYRILLIC CAPITAL LETTER GHE WITH UPTURN A3 | 000000A3 | POUND SIGN A4 | 000000A7 | SECTION SIGN A5 | 00002022 | BULLET A6 | 000000B6 | PILCROW SIGN A7 | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I A8 | 000000AE | REGISTERED SIGN A9 | 000000A9 | COPYRIGHT SIGN AA | 00002122 | TRADE MARK SIGN AB | 00000402 | CYRILLIC CAPITAL LETTER DJE AC | 00000452 | CYRILLIC SMALL LETTER DJE AD | 00002260 | NOT EQUAL TO AE | 00000403 | CYRILLIC CAPITAL LETTER GJE AF | 00000453 | CYRILLIC SMALL LETTER GJE B0 | 0000221E | INFINITY B1 | 000000B1 | PLUS-MINUS SIGN B2 | 00002264 | LESS-THAN OR EQUAL TO B3 | 00002265 | GREATER-THAN OR EQUAL TO B4 | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I B5 | 000000B5 | MICRO SIGN B6 | 00000491 | CYRILLIC SMALL LETTER GHE WITH UPTURN B7 | 00000408 | CYRILLIC CAPITAL LETTER JE B8 | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE B9 | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE BA | 00000407 | CYRILLIC CAPITAL LETTER YI BB | 00000457 | CYRILLIC SMALL LETTER YI BC | 00000409 | CYRILLIC CAPITAL LETTER LJE BD | 00000459 | CYRILLIC SMALL LETTER LJE BE | 0000040A | CYRILLIC CAPITAL LETTER NJE BF | 0000045A | CYRILLIC SMALL LETTER NJE C0 | 00000458 | CYRILLIC SMALL LETTER JE C1 | 00000405 | CYRILLIC CAPITAL LETTER DZE C2 | 000000AC | NOT SIGN C3 | 0000221A | SQUARE ROOT C4 | 00000192 | LATIN SMALL LETTER F WITH HOOK C5 | 00002248 | ALMOST EQUAL TO C6 | 00002206 | INCREMENT C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK C8 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK C9 | 00002026 | HORIZONTAL ELLIPSIS CA | 000000A0 | NO-BREAK SPACE CB | 0000040B | CYRILLIC CAPITAL LETTER TSHE CC | 0000045B | CYRILLIC SMALL LETTER TSHE CD | 0000040C | CYRILLIC CAPITAL LETTER KJE CE | 0000045C | CYRILLIC SMALL LETTER KJE CF | 00000455 | CYRILLIC SMALL LETTER DZE D0 | 00002013 | EN DASH D1 | 00002014 | EM DASH D2 | 0000201C | LEFT DOUBLE QUOTATION MARK D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK D4 | 00002018 | LEFT SINGLE QUOTATION MARK D5 | 00002019 | RIGHT SINGLE QUOTATION MARK D6 | 000000F7 | DIVISION SIGN D7 | 0000201E | DOUBLE LOW-9 QUOTATION MARK D8 | 0000040E | CYRILLIC CAPITAL LETTER SHORT U D9 | 0000045E | CYRILLIC SMALL LETTER SHORT U DA | 0000040F | CYRILLIC CAPITAL LETTER DZHE DB | 0000045F | CYRILLIC SMALL LETTER DZHE DC | 00002116 | NUMERO SIGN DD | 00000401 | CYRILLIC CAPITAL LETTER IO DE | 00000451 | CYRILLIC SMALL LETTER IO DF | 0000044F | CYRILLIC SMALL LETTER YA E0 | 00000430 | CYRILLIC SMALL LETTER A E1 | 00000431 | CYRILLIC SMALL LETTER BE E2 | 00000432 | CYRILLIC SMALL LETTER VE E3 | 00000433 | CYRILLIC SMALL LETTER GHE E4 | 00000434 | CYRILLIC SMALL LETTER DE E5 | 00000435 | CYRILLIC SMALL LETTER IE E6 | 00000436 | CYRILLIC SMALL LETTER ZHE E7 | 00000437 | CYRILLIC SMALL LETTER ZE E8 | 00000438 | CYRILLIC SMALL LETTER I E9 | 00000439 | CYRILLIC SMALL LETTER SHORT I EA | 0000043A | CYRILLIC SMALL LETTER KA EB | 0000043B | CYRILLIC SMALL LETTER EL EC | 0000043C | CYRILLIC SMALL LETTER EM ED | 0000043D | CYRILLIC SMALL LETTER EN EE | 0000043E | CYRILLIC SMALL LETTER O EF | 0000043F | CYRILLIC SMALL LETTER PE F0 | 00000440 | CYRILLIC SMALL LETTER ER F1 | 00000441 | CYRILLIC SMALL LETTER ES F2 | 00000442 | CYRILLIC SMALL LETTER TE F3 | 00000443 | CYRILLIC SMALL LETTER U F4 | 00000444 | CYRILLIC SMALL LETTER EF F5 | 00000445 | CYRILLIC SMALL LETTER HA F6 | 00000446 | CYRILLIC SMALL LETTER TSE F7 | 00000447 | CYRILLIC SMALL LETTER CHE F8 | 00000448 | CYRILLIC SMALL LETTER SHA F9 | 00000449 | CYRILLIC SMALL LETTER SHCHA FA | 0000044A | CYRILLIC SMALL LETTER HARD SIGN FB | 0000044B | CYRILLIC SMALL LETTER YERU FC | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN FD | 0000044D | CYRILLIC SMALL LETTER E FE | 0000044E | CYRILLIC SMALL LETTER YU FF | 000000A4 | CURRENCY SIGN =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]2llRecodeData/CWI.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for CWI. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::CWI; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00cd, 0x00c4, 0x00c1, 0x00c9, 0x00e6, 0x00c6, 0x0151, 0x00f6, 0x00d3, 0x0171, 0x00da, 0x0170, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0xe01f, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x0150, 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, 0x03b1, 0x03b2, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x03bc, 0x03c4, 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x2205, 0x03b5, 0x2229, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x2218, 0x00b7, 0x2022, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc3\x87", "\xc3\xbc", "\xc3\xa9", "\xc3\xa2", "\xc3\xa4", "\xc3\xa0", "\xc3\xa5", "\xc3\xa7", "\xc3\xaa", "\xc3\xab", "\xc3\xa8", "\xc3\xaf", "\xc3\xae", "\xc3\x8d", "\xc3\x84", "\xc3\x81", "\xc3\x89", "\xc3\xa6", "\xc3\x86", "\xc5\x91", "\xc3\xb6", "\xc3\x93", "\xc5\xb1", "\xc3\x9a", "\xc5\xb0", "\xc3\x96", "\xc3\x9c", "\xc2\xa2", "\xc2\xa3", "\xc2\xa5", "\xe2\x82\xa7", "\xee\x80\x9f", "\xc3\xa1", "\xc3\xad", "\xc3\xb3", "\xc3\xba", "\xc3\xb1", "\xc3\x91", "\xc2\xaa", "\xc5\x90", "\xc2\xbf", "\xe2\x8c\x90", "\xc2\xac", "\xc2\xbd", "\xc2\xbc", "\xc2\xa1", "\xc2\xab", "\xc2\xbb", "\xe2\x96\x91", "\xe2\x96\x92", "\xe2\x96\x93", "\xe2\x94\x82", "\xe2\x94\xa4", "\xe2\x95\xa1", "\xe2\x95\xa2", "\xe2\x95\x96", "\xe2\x95\x95", "\xe2\x95\xa3", "\xe2\x95\x91", "\xe2\x95\x97", "\xe2\x95\x9d", "\xe2\x95\x9c", "\xe2\x95\x9b", "\xe2\x94\x90", "\xe2\x94\x94", "\xe2\x94\xb4", "\xe2\x94\xac", "\xe2\x94\x9c", "\xe2\x94\x80", "\xe2\x94\xbc", "\xe2\x95\x9e", "\xe2\x95\x9f", "\xe2\x95\x9a", "\xe2\x95\x94", "\xe2\x95\xa9", "\xe2\x95\xa6", "\xe2\x95\xa0", "\xe2\x95\x90", "\xe2\x95\xac", "\xe2\x95\xa7", "\xe2\x95\xa8", "\xe2\x95\xa4", "\xe2\x95\xa5", "\xe2\x95\x99", "\xe2\x95\x98", "\xe2\x95\x92", "\xe2\x95\x93", "\xe2\x95\xab", "\xe2\x95\xaa", "\xe2\x94\x98", "\xe2\x94\x8c", "\xe2\x96\x88", "\xe2\x96\x84", "\xe2\x96\x8c", "\xe2\x96\x90", "\xe2\x96\x80", "\xce\xb1", "\xce\xb2", "\xce\x93", "\xcf\x80", "\xce\xa3", "\xcf\x83", "\xce\xbc", "\xcf\x84", "\xce\xa6", "\xce\x98", "\xce\xa9", "\xce\xb4", "\xe2\x88\x9e", "\xe2\x88\x85", "\xce\xb5", "\xe2\x88\xa9", "\xe2\x89\xa1", "\xc2\xb1", "\xe2\x89\xa5", "\xe2\x89\xa4", "\xe2\x8c\xa0", "\xe2\x8c\xa1", "\xc3\xb7", "\xe2\x89\x88", "\xe2\x88\x98", "\xc2\xb7", "\xe2\x80\xa2", "\xe2\x88\x9a", "\xe2\x81\xbf", "\xc2\xb2", "\xe2\x96\xa0", "\xc2\xa0", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xff", 0x000000a1 => "\xad", 0x000000a2 => "\x9b", 0x000000a3 => "\x9c", 0x000000a5 => "\x9d", 0x000000aa => "\xa6", 0x000000ab => "\xae", 0x000000ac => "\xaa", 0x000000b1 => "\xf1", 0x000000b2 => "\xfd", 0x000000b7 => "\xf9", 0x000000bb => "\xaf", 0x000000bc => "\xac", 0x000000bd => "\xab", 0x000000bf => "\xa8", 0x000000c1 => "\x8f", 0x000000c4 => "\x8e", 0x000000c6 => "\x92", 0x000000c7 => "\x80", 0x000000c9 => "\x90", 0x000000cd => "\x8d", 0x000000d1 => "\xa5", 0x000000d3 => "\x95", 0x000000d6 => "\x99", 0x000000da => "\x97", 0x000000dc => "\x9a", 0x000000e0 => "\x85", 0x000000e1 => "\xa0", 0x000000e2 => "\x83", 0x000000e4 => "\x84", 0x000000e5 => "\x86", 0x000000e6 => "\x91", 0x000000e7 => "\x87", 0x000000e8 => "\x8a", 0x000000e9 => "\x82", 0x000000ea => "\x88", 0x000000eb => "\x89", 0x000000ed => "\xa1", 0x000000ee => "\x8c", 0x000000ef => "\x8b", 0x000000f1 => "\xa4", 0x000000f3 => "\xa2", 0x000000f6 => "\x94", 0x000000f7 => "\xf6", 0x000000fa => "\xa3", 0x000000fc => "\x81", 0x00000150 => "\xa7", 0x00000151 => "\x93", 0x00000170 => "\x98", 0x00000171 => "\x96", 0x00000393 => "\xe2", 0x00000398 => "\xe9", 0x000003a3 => "\xe4", 0x000003a6 => "\xe8", 0x000003a9 => "\xea", 0x000003b1 => "\xe0", 0x000003b2 => "\xe1", 0x000003b4 => "\xeb", 0x000003b5 => "\xee", 0x000003bc => "\xe6", 0x000003c0 => "\xe3", 0x000003c3 => "\xe5", 0x000003c4 => "\xe7", 0x00002022 => "\xfa", 0x0000207f => "\xfc", 0x000020a7 => "\x9e", 0x00002205 => "\xed", 0x00002218 => "\xf8", 0x0000221a => "\xfb", 0x0000221e => "\xec", 0x00002229 => "\xef", 0x00002248 => "\xf7", 0x00002261 => "\xf0", 0x00002264 => "\xf3", 0x00002265 => "\xf2", 0x00002310 => "\xa9", 0x00002320 => "\xf4", 0x00002321 => "\xf5", 0x00002500 => "\xc4", 0x00002502 => "\xb3", 0x0000250c => "\xda", 0x00002510 => "\xbf", 0x00002514 => "\xc0", 0x00002518 => "\xd9", 0x0000251c => "\xc3", 0x00002524 => "\xb4", 0x0000252c => "\xc2", 0x00002534 => "\xc1", 0x0000253c => "\xc5", 0x00002550 => "\xcd", 0x00002551 => "\xba", 0x00002552 => "\xd5", 0x00002553 => "\xd6", 0x00002554 => "\xc9", 0x00002555 => "\xb8", 0x00002556 => "\xb7", 0x00002557 => "\xbb", 0x00002558 => "\xd4", 0x00002559 => "\xd3", 0x0000255a => "\xc8", 0x0000255b => "\xbe", 0x0000255c => "\xbd", 0x0000255d => "\xbc", 0x0000255e => "\xc6", 0x0000255f => "\xc7", 0x00002560 => "\xcc", 0x00002561 => "\xb5", 0x00002562 => "\xb6", 0x00002563 => "\xb9", 0x00002564 => "\xd1", 0x00002565 => "\xd2", 0x00002566 => "\xcb", 0x00002567 => "\xcf", 0x00002568 => "\xd0", 0x00002569 => "\xca", 0x0000256a => "\xd8", 0x0000256b => "\xd7", 0x0000256c => "\xce", 0x00002580 => "\xdf", 0x00002584 => "\xdc", 0x00002588 => "\xdb", 0x0000258c => "\xdd", 0x00002590 => "\xde", 0x00002591 => "\xb0", 0x00002592 => "\xb1", 0x00002593 => "\xb2", 0x000025a0 => "\xfe", 0x0000e01f => "\x9f", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::CWI - Conversion routines for CWI =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for CWI. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: Computerworld Sza'mita'stechnika vol 3 issue 13 1988-06-29 alias CWI-2 alias CP-HU Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 84 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 86 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 8B | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 8C | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 8D | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE 8E | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 8F | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE 90 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 91 | 000000E6 | LATIN SMALL LETTER AE 92 | 000000C6 | LATIN CAPITAL LETTER AE 93 | 00000151 | LATIN SMALL LETTER O WITH DOUBLE ACUTE 94 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 95 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE 96 | 00000171 | LATIN SMALL LETTER U WITH DOUBLE ACUTE 97 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE 98 | 00000170 | LATIN CAPITAL LETTER U WITH DOUBLE ACUTE 99 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 9B | 000000A2 | CENT SIGN 9C | 000000A3 | POUND SIGN 9D | 000000A5 | YEN SIGN 9E | 000020A7 | PESETA SIGN 9F | 0000E01F | HUNGARIAN FLORINTH (CWI_9F) A0 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE A1 | 000000ED | LATIN SMALL LETTER I WITH ACUTE A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE A4 | 000000F1 | LATIN SMALL LETTER N WITH TILDE A5 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE A6 | 000000AA | FEMININE ORDINAL INDICATOR A7 | 00000150 | LATIN CAPITAL LETTER O WITH DOUBLE ACUTE A8 | 000000BF | INVERTED QUESTION MARK A9 | 00002310 | REVERSED NOT SIGN AA | 000000AC | NOT SIGN AB | 000000BD | VULGAR FRACTION ONE HALF AC | 000000BC | VULGAR FRACTION ONE QUARTER AD | 000000A1 | INVERTED EXCLAMATION MARK AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK B0 | 00002591 | LIGHT SHADE B1 | 00002592 | MEDIUM SHADE B2 | 00002593 | DARK SHADE B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT B5 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE B6 | 00002562 | BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE B7 | 00002556 | BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE B8 | 00002555 | BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT BD | 0000255C | BOX DRAWINGS UP DOUBLE AND LEFT SINGLE BE | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL C6 | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE C7 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL CF | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE D0 | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE D1 | 00002564 | BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE D2 | 00002565 | BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE D3 | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE D4 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE D5 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE D6 | 00002553 | BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE D7 | 0000256B | BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE D8 | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT DB | 00002588 | FULL BLOCK DC | 00002584 | LOWER HALF BLOCK DD | 0000258C | LEFT HALF BLOCK DE | 00002590 | RIGHT HALF BLOCK DF | 00002580 | UPPER HALF BLOCK E0 | 000003B1 | GREEK SMALL LETTER ALPHA E1 | 000003B2 | GREEK SMALL LETTER BETA E2 | 00000393 | GREEK CAPITAL LETTER GAMMA E3 | 000003C0 | GREEK SMALL LETTER PI E4 | 000003A3 | GREEK CAPITAL LETTER SIGMA E5 | 000003C3 | GREEK SMALL LETTER SIGMA E6 | 000003BC | GREEK SMALL LETTER MU E7 | 000003C4 | GREEK SMALL LETTER TAU E8 | 000003A6 | GREEK CAPITAL LETTER PHI E9 | 00000398 | GREEK CAPITAL LETTER THETA EA | 000003A9 | GREEK CAPITAL LETTER OMEGA EB | 000003B4 | GREEK SMALL LETTER DELTA EC | 0000221E | INFINITY ED | 00002205 | EMPTY SET EE | 000003B5 | GREEK SMALL LETTER EPSILON EF | 00002229 | INTERSECTION F0 | 00002261 | IDENTICAL TO F1 | 000000B1 | PLUS-MINUS SIGN F2 | 00002265 | GREATER-THAN OR EQUAL TO F3 | 00002264 | LESS-THAN OR EQUAL TO F4 | 00002320 | TOP HALF INTEGRAL F5 | 00002321 | BOTTOM HALF INTEGRAL F6 | 000000F7 | DIVISION SIGN F7 | 00002248 | ALMOST EQUAL TO F8 | 00002218 | RING OPERATOR F9 | 000000B7 | MIDDLE DOT FA | 00002022 | BULLET FB | 0000221A | SQUARE ROOT FC | 0000207F | SUPERSCRIPT LATIN SMALL LETTER N FD | 000000B2 | SUPERSCRIPT TWO FE | 000025A0 | BLACK SQUARE FF | 000000A0 | NO-BREAK SPACE =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]hkkRecodeData/KOI8_U.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for KOI8-U. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::KOI8_U; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524, 0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590, 0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248, 0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7, 0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457, 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x0491, 0x255d, 0x255e, 0x255f, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407, 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x0490, 0x256c, 0x00a9, 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xe2\x94\x80", "\xe2\x94\x82", "\xe2\x94\x8c", "\xe2\x94\x90", "\xe2\x94\x94", "\xe2\x94\x98", "\xe2\x94\x9c", "\xe2\x94\xa4", "\xe2\x94\xac", "\xe2\x94\xb4", "\xe2\x94\xbc", "\xe2\x96\x80", "\xe2\x96\x84", "\xe2\x96\x88", "\xe2\x96\x8c", "\xe2\x96\x90", "\xe2\x96\x91", "\xe2\x96\x92", "\xe2\x96\x93", "\xe2\x8c\xa0", "\xe2\x96\xa0", "\xe2\x88\x99", "\xe2\x88\x9a", "\xe2\x89\x88", "\xe2\x89\xa4", "\xe2\x89\xa5", "\xc2\xa0", "\xe2\x8c\xa1", "\xc2\xb0", "\xc2\xb2", "\xc2\xb7", "\xc3\xb7", "\xe2\x95\x90", "\xe2\x95\x91", "\xe2\x95\x92", "\xd1\x91", "\xd1\x94", "\xe2\x95\x94", "\xd1\x96", "\xd1\x97", "\xe2\x95\x97", "\xe2\x95\x98", "\xe2\x95\x99", "\xe2\x95\x9a", "\xe2\x95\x9b", "\xd2\x91", "\xe2\x95\x9d", "\xe2\x95\x9e", "\xe2\x95\x9f", "\xe2\x95\xa0", "\xe2\x95\xa1", "\xd0\x81", "\xd0\x84", "\xe2\x95\xa3", "\xd0\x86", "\xd0\x87", "\xe2\x95\xa6", "\xe2\x95\xa7", "\xe2\x95\xa8", "\xe2\x95\xa9", "\xe2\x95\xaa", "\xd2\x90", "\xe2\x95\xac", "\xc2\xa9", "\xd1\x8e", "\xd0\xb0", "\xd0\xb1", "\xd1\x86", "\xd0\xb4", "\xd0\xb5", "\xd1\x84", "\xd0\xb3", "\xd1\x85", "\xd0\xb8", "\xd0\xb9", "\xd0\xba", "\xd0\xbb", "\xd0\xbc", "\xd0\xbd", "\xd0\xbe", "\xd0\xbf", "\xd1\x8f", "\xd1\x80", "\xd1\x81", "\xd1\x82", "\xd1\x83", "\xd0\xb6", "\xd0\xb2", "\xd1\x8c", "\xd1\x8b", "\xd0\xb7", "\xd1\x88", "\xd1\x8d", "\xd1\x89", "\xd1\x87", "\xd1\x8a", "\xd0\xae", "\xd0\x90", "\xd0\x91", "\xd0\xa6", "\xd0\x94", "\xd0\x95", "\xd0\xa4", "\xd0\x93", "\xd0\xa5", "\xd0\x98", "\xd0\x99", "\xd0\x9a", "\xd0\x9b", "\xd0\x9c", "\xd0\x9d", "\xd0\x9e", "\xd0\x9f", "\xd0\xaf", "\xd0\xa0", "\xd0\xa1", "\xd0\xa2", "\xd0\xa3", "\xd0\x96", "\xd0\x92", "\xd0\xac", "\xd0\xab", "\xd0\x97", "\xd0\xa8", "\xd0\xad", "\xd0\xa9", "\xd0\xa7", "\xd0\xaa", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\x9a", 0x000000a9 => "\xbf", 0x000000b0 => "\x9c", 0x000000b2 => "\x9d", 0x000000b7 => "\x9e", 0x000000f7 => "\x9f", 0x00000401 => "\xb3", 0x00000404 => "\xb4", 0x00000406 => "\xb6", 0x00000407 => "\xb7", 0x00000410 => "\xe1", 0x00000411 => "\xe2", 0x00000412 => "\xf7", 0x00000413 => "\xe7", 0x00000414 => "\xe4", 0x00000415 => "\xe5", 0x00000416 => "\xf6", 0x00000417 => "\xfa", 0x00000418 => "\xe9", 0x00000419 => "\xea", 0x0000041a => "\xeb", 0x0000041b => "\xec", 0x0000041c => "\xed", 0x0000041d => "\xee", 0x0000041e => "\xef", 0x0000041f => "\xf0", 0x00000420 => "\xf2", 0x00000421 => "\xf3", 0x00000422 => "\xf4", 0x00000423 => "\xf5", 0x00000424 => "\xe6", 0x00000425 => "\xe8", 0x00000426 => "\xe3", 0x00000427 => "\xfe", 0x00000428 => "\xfb", 0x00000429 => "\xfd", 0x0000042a => "\xff", 0x0000042b => "\xf9", 0x0000042c => "\xf8", 0x0000042d => "\xfc", 0x0000042e => "\xe0", 0x0000042f => "\xf1", 0x00000430 => "\xc1", 0x00000431 => "\xc2", 0x00000432 => "\xd7", 0x00000433 => "\xc7", 0x00000434 => "\xc4", 0x00000435 => "\xc5", 0x00000436 => "\xd6", 0x00000437 => "\xda", 0x00000438 => "\xc9", 0x00000439 => "\xca", 0x0000043a => "\xcb", 0x0000043b => "\xcc", 0x0000043c => "\xcd", 0x0000043d => "\xce", 0x0000043e => "\xcf", 0x0000043f => "\xd0", 0x00000440 => "\xd2", 0x00000441 => "\xd3", 0x00000442 => "\xd4", 0x00000443 => "\xd5", 0x00000444 => "\xc6", 0x00000445 => "\xc8", 0x00000446 => "\xc3", 0x00000447 => "\xde", 0x00000448 => "\xdb", 0x00000449 => "\xdd", 0x0000044a => "\xdf", 0x0000044b => "\xd9", 0x0000044c => "\xd8", 0x0000044d => "\xdc", 0x0000044e => "\xc0", 0x0000044f => "\xd1", 0x00000451 => "\xa3", 0x00000454 => "\xa4", 0x00000456 => "\xa6", 0x00000457 => "\xa7", 0x00000490 => "\xbd", 0x00000491 => "\xad", 0x00002219 => "\x95", 0x0000221a => "\x96", 0x00002248 => "\x97", 0x00002264 => "\x98", 0x00002265 => "\x99", 0x00002320 => "\x93", 0x00002321 => "\x9b", 0x00002500 => "\x80", 0x00002502 => "\x81", 0x0000250c => "\x82", 0x00002510 => "\x83", 0x00002514 => "\x84", 0x00002518 => "\x85", 0x0000251c => "\x86", 0x00002524 => "\x87", 0x0000252c => "\x88", 0x00002534 => "\x89", 0x0000253c => "\x8a", 0x00002550 => "\xa0", 0x00002551 => "\xa1", 0x00002552 => "\xa2", 0x00002554 => "\xa5", 0x00002557 => "\xa8", 0x00002558 => "\xa9", 0x00002559 => "\xaa", 0x0000255a => "\xab", 0x0000255b => "\xac", 0x0000255d => "\xae", 0x0000255e => "\xaf", 0x0000255f => "\xb0", 0x00002560 => "\xb1", 0x00002561 => "\xb2", 0x00002563 => "\xb5", 0x00002566 => "\xb8", 0x00002567 => "\xb9", 0x00002568 => "\xba", 0x00002569 => "\xbb", 0x0000256a => "\xbc", 0x0000256c => "\xbe", 0x00002580 => "\x8b", 0x00002584 => "\x8c", 0x00002588 => "\x8d", 0x0000258c => "\x8e", 0x00002590 => "\x8f", 0x00002591 => "\x90", 0x00002592 => "\x91", 0x00002593 => "\x92", 0x000025a0 => "\x94", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::KOI8_U - Conversion routines for KOI8-U =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for KOI8-U. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.1 source: RFC 2319 source: http://www.net.ua/KOI8-U/ Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL 81 | 00002502 | BOX DRAWINGS LIGHT VERTICAL 82 | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT 83 | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT 84 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT 85 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT 86 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT 87 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT 88 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL 89 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL 8A | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL 8B | 00002580 | UPPER HALF BLOCK 8C | 00002584 | LOWER HALF BLOCK 8D | 00002588 | FULL BLOCK 8E | 0000258C | LEFT HALF BLOCK 8F | 00002590 | RIGHT HALF BLOCK 90 | 00002591 | LIGHT SHADE 91 | 00002592 | MEDIUM SHADE 92 | 00002593 | DARK SHADE 93 | 00002320 | TOP HALF INTEGRAL 94 | 000025A0 | BLACK SQUARE 95 | 00002219 | BULLET OPERATOR 96 | 0000221A | SQUARE ROOT 97 | 00002248 | ALMOST EQUAL TO 98 | 00002264 | LESS THAN OR EQUAL TO 99 | 00002265 | GREATER THAN OR EQUAL TO 9A | 000000A0 | NO-BREAK SPACE 9B | 00002321 | BOTTOM HALF INTEGRAL 9C | 000000B0 | DEGREE SIGN 9D | 000000B2 | SUPERSCRIPT DIGIT TWO 9E | 000000B7 | MIDDLE DOT 9F | 000000F7 | DIVISION SIGN A0 | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL A1 | 00002551 | BOX DRAWINGS DOUBLE VERTICAL A2 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE A3 | 00000451 | CYRILLIC SMALL LETTER IO A4 | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE A5 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT A6 | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I A7 | 00000457 | CYRILLIC SMALL LETTER YI (Ukrainian) A8 | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT A9 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE AA | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE AB | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT AC | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE AD | 00000491 | CYRILLIC SMALL LETTER GHE WITH UPTURN AE | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT AF | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE B0 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE B1 | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT B2 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE B3 | 00000401 | CYRILLIC CAPITAL LETTER IO B4 | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE B5 | 00002563 | DOUBLE VERTICAL AND LEFT B6 | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I B7 | 00000407 | CYRILLIC CAPITAL LETTER YI (Ukrainian) B8 | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL B9 | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE BA | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE BB | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL BC | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE BD | 00000490 | CYRILLIC CAPITAL LETTER GHE WITH UPTURN BE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL BF | 000000A9 | COPYRIGHT SIGN C0 | 0000044E | CYRILLIC SMALL LETTER YU C1 | 00000430 | CYRILLIC SMALL LETTER A C2 | 00000431 | CYRILLIC SMALL LETTER BE C3 | 00000446 | CYRILLIC SMALL LETTER TSE C4 | 00000434 | CYRILLIC SMALL LETTER DE C5 | 00000435 | CYRILLIC SMALL LETTER IE C6 | 00000444 | CYRILLIC SMALL LETTER EF C7 | 00000433 | CYRILLIC SMALL LETTER GHE C8 | 00000445 | CYRILLIC SMALL LETTER HA C9 | 00000438 | CYRILLIC SMALL LETTER I CA | 00000439 | CYRILLIC SMALL LETTER SHORT I CB | 0000043A | CYRILLIC SMALL LETTER KA CC | 0000043B | CYRILLIC SMALL LETTER EL CD | 0000043C | CYRILLIC SMALL LETTER EM CE | 0000043D | CYRILLIC SMALL LETTER EN CF | 0000043E | CYRILLIC SMALL LETTER O D0 | 0000043F | CYRILLIC SMALL LETTER PE D1 | 0000044F | CYRILLIC SMALL LETTER YA D2 | 00000440 | CYRILLIC SMALL LETTER ER D3 | 00000441 | CYRILLIC SMALL LETTER ES D4 | 00000442 | CYRILLIC SMALL LETTER TE D5 | 00000443 | CYRILLIC SMALL LETTER U D6 | 00000436 | CYRILLIC SMALL LETTER ZHE D7 | 00000432 | CYRILLIC SMALL LETTER VE D8 | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN D9 | 0000044B | CYRILLIC SMALL LETTER YERU DA | 00000437 | CYRILLIC SMALL LETTER ZE DB | 00000448 | CYRILLIC SMALL LETTER SHA DC | 0000044D | CYRILLIC SMALL LETTER E DD | 00000449 | CYRILLIC SMALL LETTER SHCHA DE | 00000447 | CYRILLIC SMALL LETTER CHE DF | 0000044A | CYRILLIC SMALL LETTER HARD SIGN E0 | 0000042E | CYRILLIC CAPITAL LETTER YU E1 | 00000410 | CYRILLIC CAPITAL LETTER A E2 | 00000411 | CYRILLIC CAPITAL LETTER BE E3 | 00000426 | CYRILLIC CAPITAL LETTER TSE E4 | 00000414 | CYRILLIC CAPITAL LETTER DE E5 | 00000415 | CYRILLIC CAPITAL LETTER IE E6 | 00000424 | CYRILLIC CAPITAL LETTER EF E7 | 00000413 | CYRILLIC CAPITAL LETTER GHE E8 | 00000425 | CYRILLIC CAPITAL LETTER HA E9 | 00000418 | CYRILLIC CAPITAL LETTER I EA | 00000419 | CYRILLIC CAPITAL LETTER SHORT I EB | 0000041A | CYRILLIC CAPITAL LETTER KA EC | 0000041B | CYRILLIC CAPITAL LETTER EL ED | 0000041C | CYRILLIC CAPITAL LETTER EM EE | 0000041D | CYRILLIC CAPITAL LETTER EN EF | 0000041E | CYRILLIC CAPITAL LETTER O F0 | 0000041F | CYRILLIC CAPITAL LETTER PE F1 | 0000042F | CYRILLIC CAPITAL LETTER YA F2 | 00000420 | CYRILLIC CAPITAL LETTER ER F3 | 00000421 | CYRILLIC CAPITAL LETTER ES F4 | 00000422 | CYRILLIC CAPITAL LETTER TE F5 | 00000423 | CYRILLIC CAPITAL LETTER U F6 | 00000416 | CYRILLIC CAPITAL LETTER ZHE F7 | 00000412 | CYRILLIC CAPITAL LETTER VE F8 | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN F9 | 0000042B | CYRILLIC CAPITAL LETTER YERU FA | 00000417 | CYRILLIC CAPITAL LETTER ZE FB | 00000428 | CYRILLIC CAPITAL LETTER SHA FC | 0000042D | CYRILLIC CAPITAL LETTER E FD | 00000429 | CYRILLIC CAPITAL LETTER SHCHA FE | 00000427 | CYRILLIC CAPITAL LETTER CHE FF | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]UW_i_iRecodeData/ATARI_ST_EURO.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ATARI-ST-EURO. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ATARI_ST_EURO; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, 0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x00df, 0x0192, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, 0x00e3, 0x00f5, 0x00d8, 0x00f8, 0x0153, 0x0152, 0x00c0, 0x00c3, 0x00d5, 0x00a8, 0x00b4, 0x2020, 0x00b6, 0x00a9, 0x00ae, 0x2122, 0x0133, 0x0132, 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, 0x05d8, 0x05d9, 0x05db, 0x05dc, 0x05de, 0x05e0, 0x05e1, 0x05e2, 0x05e4, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x05ea, 0x05df, 0x05da, 0x05dd, 0x05e3, 0x05e5, 0x00a7, 0x20ac, 0x221e, 0x03b1, 0x03b2, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x03b8, 0x03a9, 0x03b4, 0x222e, 0x03c6, 0x2208, 0x220f, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2022, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x00b3, 0x00af, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc3\x87", "\xc3\xbc", "\xc3\xa9", "\xc3\xa2", "\xc3\xa4", "\xc3\xa0", "\xc3\xa5", "\xc3\xa7", "\xc3\xaa", "\xc3\xab", "\xc3\xa8", "\xc3\xaf", "\xc3\xae", "\xc3\xac", "\xc3\x84", "\xc3\x85", "\xc3\x89", "\xc3\xa6", "\xc3\x86", "\xc3\xb4", "\xc3\xb6", "\xc3\xb2", "\xc3\xbb", "\xc3\xb9", "\xc3\xbf", "\xc3\x96", "\xc3\x9c", "\xc2\xa2", "\xc2\xa3", "\xc2\xa5", "\xc3\x9f", "\xc6\x92", "\xc3\xa1", "\xc3\xad", "\xc3\xb3", "\xc3\xba", "\xc3\xb1", "\xc3\x91", "\xc2\xaa", "\xc2\xba", "\xc2\xbf", "\xe2\x8c\x90", "\xc2\xac", "\xc2\xbd", "\xc2\xbc", "\xc2\xa1", "\xc2\xab", "\xc2\xbb", "\xc3\xa3", "\xc3\xb5", "\xc3\x98", "\xc3\xb8", "\xc5\x93", "\xc5\x92", "\xc3\x80", "\xc3\x83", "\xc3\x95", "\xc2\xa8", "\xc2\xb4", "\xe2\x80\xa0", "\xc2\xb6", "\xc2\xa9", "\xc2\xae", "\xe2\x84\xa2", "\xc4\xb3", "\xc4\xb2", "\xd7\x90", "\xd7\x91", "\xd7\x92", "\xd7\x93", "\xd7\x94", "\xd7\x95", "\xd7\x96", "\xd7\x97", "\xd7\x98", "\xd7\x99", "\xd7\x9b", "\xd7\x9c", "\xd7\x9e", "\xd7\xa0", "\xd7\xa1", "\xd7\xa2", "\xd7\xa4", "\xd7\xa6", "\xd7\xa7", "\xd7\xa8", "\xd7\xa9", "\xd7\xaa", "\xd7\x9f", "\xd7\x9a", "\xd7\x9d", "\xd7\xa3", "\xd7\xa5", "\xc2\xa7", "\xe2\x82\xac", "\xe2\x88\x9e", "\xce\xb1", "\xce\xb2", "\xce\x93", "\xcf\x80", "\xce\xa3", "\xcf\x83", "\xc2\xb5", "\xcf\x84", "\xce\xa6", "\xce\xb8", "\xce\xa9", "\xce\xb4", "\xe2\x88\xae", "\xcf\x86", "\xe2\x88\x88", "\xe2\x88\x8f", "\xe2\x89\xa1", "\xc2\xb1", "\xe2\x89\xa5", "\xe2\x89\xa4", "\xe2\x8c\xa0", "\xe2\x8c\xa1", "\xc3\xb7", "\xe2\x89\x88", "\xc2\xb0", "\xe2\x80\xa2", "\xc2\xb7", "\xe2\x88\x9a", "\xe2\x81\xbf", "\xc2\xb2", "\xc2\xb3", "\xc2\xaf", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a1 => "\xad", 0x000000a2 => "\x9b", 0x000000a3 => "\x9c", 0x000000a5 => "\x9d", 0x000000a7 => "\xdd", 0x000000a8 => "\xb9", 0x000000a9 => "\xbd", 0x000000aa => "\xa6", 0x000000ab => "\xae", 0x000000ac => "\xaa", 0x000000ae => "\xbe", 0x000000af => "\xff", 0x000000b0 => "\xf8", 0x000000b1 => "\xf1", 0x000000b2 => "\xfd", 0x000000b3 => "\xfe", 0x000000b4 => "\xba", 0x000000b5 => "\xe6", 0x000000b6 => "\xbc", 0x000000b7 => "\xfa", 0x000000ba => "\xa7", 0x000000bb => "\xaf", 0x000000bc => "\xac", 0x000000bd => "\xab", 0x000000bf => "\xa8", 0x000000c0 => "\xb6", 0x000000c3 => "\xb7", 0x000000c4 => "\x8e", 0x000000c5 => "\x8f", 0x000000c6 => "\x92", 0x000000c7 => "\x80", 0x000000c9 => "\x90", 0x000000d1 => "\xa5", 0x000000d5 => "\xb8", 0x000000d6 => "\x99", 0x000000d8 => "\xb2", 0x000000dc => "\x9a", 0x000000df => "\x9e", 0x000000e0 => "\x85", 0x000000e1 => "\xa0", 0x000000e2 => "\x83", 0x000000e3 => "\xb0", 0x000000e4 => "\x84", 0x000000e5 => "\x86", 0x000000e6 => "\x91", 0x000000e7 => "\x87", 0x000000e8 => "\x8a", 0x000000e9 => "\x82", 0x000000ea => "\x88", 0x000000eb => "\x89", 0x000000ec => "\x8d", 0x000000ed => "\xa1", 0x000000ee => "\x8c", 0x000000ef => "\x8b", 0x000000f1 => "\xa4", 0x000000f2 => "\x95", 0x000000f3 => "\xa2", 0x000000f4 => "\x93", 0x000000f5 => "\xb1", 0x000000f6 => "\x94", 0x000000f7 => "\xf6", 0x000000f8 => "\xb3", 0x000000f9 => "\x97", 0x000000fa => "\xa3", 0x000000fb => "\x96", 0x000000fc => "\x81", 0x000000ff => "\x98", 0x00000132 => "\xc1", 0x00000133 => "\xc0", 0x00000152 => "\xb5", 0x00000153 => "\xb4", 0x00000192 => "\x9f", 0x00000393 => "\xe2", 0x000003a3 => "\xe4", 0x000003a6 => "\xe8", 0x000003a9 => "\xea", 0x000003b1 => "\xe0", 0x000003b2 => "\xe1", 0x000003b4 => "\xeb", 0x000003b8 => "\xe9", 0x000003c0 => "\xe3", 0x000003c3 => "\xe5", 0x000003c4 => "\xe7", 0x000003c6 => "\xed", 0x000005d0 => "\xc2", 0x000005d1 => "\xc3", 0x000005d2 => "\xc4", 0x000005d3 => "\xc5", 0x000005d4 => "\xc6", 0x000005d5 => "\xc7", 0x000005d6 => "\xc8", 0x000005d7 => "\xc9", 0x000005d8 => "\xca", 0x000005d9 => "\xcb", 0x000005da => "\xd9", 0x000005db => "\xcc", 0x000005dc => "\xcd", 0x000005dd => "\xda", 0x000005de => "\xce", 0x000005df => "\xd8", 0x000005e0 => "\xcf", 0x000005e1 => "\xd0", 0x000005e2 => "\xd1", 0x000005e3 => "\xdb", 0x000005e4 => "\xd2", 0x000005e5 => "\xdc", 0x000005e6 => "\xd3", 0x000005e7 => "\xd4", 0x000005e8 => "\xd5", 0x000005e9 => "\xd6", 0x000005ea => "\xd7", 0x00002020 => "\xbb", 0x00002022 => "\xf9", 0x0000207f => "\xfc", 0x000020ac => "\xde", 0x00002122 => "\xbf", 0x00002208 => "\xee", 0x0000220f => "\xef", 0x0000221a => "\xfb", 0x0000221e => "\xdf", 0x0000222e => "\xec", 0x00002248 => "\xf7", 0x00002261 => "\xf0", 0x00002264 => "\xf3", 0x00002265 => "\xf2", 0x00002310 => "\xa9", 0x00002320 => "\xf4", 0x00002321 => "\xf5", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ATARI_ST_EURO - Conversion routines for ATARI-ST-EURO =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for ATARI-ST-EURO. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.1 source: Guido Flohr Eguido.flohr@cantanea.comE alias ATARIST-EURO alias X-ATARIST-EURO alias X-ATARI-ST-EURO Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 84 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 86 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 8B | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 8C | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 8D | 000000EC | LATIN SMALL LETTER I WITH GRAVE 8E | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 8F | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 90 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 91 | 000000E6 | LATIN SMALL LETTER AE 92 | 000000C6 | LATIN CAPITAL LETTER AE 93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX 94 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 95 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE 96 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX 97 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 98 | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS 99 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 9B | 000000A2 | CENT SIGN 9C | 000000A3 | POUND SIGN 9D | 000000A5 | YEN SIGN 9E | 000000DF | LATIN SMALL LETTER SHARP S 9F | 00000192 | LATIN SMALL LETTER F WITH HOOK A0 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE A1 | 000000ED | LATIN SMALL LETTER I WITH ACUTE A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE A4 | 000000F1 | LATIN SMALL LETTER N WITH TILDE A5 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE A6 | 000000AA | FEMININE ORDINAL INDICATOR A7 | 000000BA | MASCULINE ORDINAL INDICATOR A8 | 000000BF | INVERTED QUESTION MARK A9 | 00002310 | REVERSED NOT SIGN AA | 000000AC | NOT SIGN AB | 000000BD | VULGAR FRACTION ONE HALF AC | 000000BC | VULGAR FRACTION ONE QUARTER AD | 000000A1 | INVERTED EXCLAMATION MARK AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK B0 | 000000E3 | LATIN SMALL LETTER A WITH TILDE B1 | 000000F5 | LATIN SMALL LETTER O WITH TILDE B2 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE B3 | 000000F8 | LATIN SMALL LETTER O WITH STROKE B4 | 00000153 | LATIN SMALL LIGATURE OE B5 | 00000152 | LATIN CAPITAL LIGATURE OE B6 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE B7 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE B8 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE B9 | 000000A8 | DIAERESIS BA | 000000B4 | ACUTE ACCENT BB | 00002020 | DAGGER BC | 000000B6 | PILCROW SIGN BD | 000000A9 | COPYRIGHT SIGN BE | 000000AE | REGISTERED SIGN BF | 00002122 | TRADE MARK SIGN C0 | 00000133 | LATIN SMALL LIGATURE IJ C1 | 00000132 | LATIN CAPITAL LIGATURE IJ C2 | 000005D0 | HEBREW LETTER ALEF C3 | 000005D1 | HEBREW LETTER BET C4 | 000005D2 | HEBREW LETTER GIMEL C5 | 000005D3 | HEBREW LETTER DALET C6 | 000005D4 | HEBREW LETTER HE C7 | 000005D5 | HEBREW LETTER VAV C8 | 000005D6 | HEBREW LETTER ZAYIN C9 | 000005D7 | HEBREW LETTER HET CA | 000005D8 | HEBREW LETTER TET CB | 000005D9 | HEBREW LETTER YOD CC | 000005DB | HEBREW LETTER KAF CD | 000005DC | HEBREW LETTER LAMED CE | 000005DE | HEBREW LETTER MEM CF | 000005E0 | HEBREW LETTER NUN D0 | 000005E1 | HEBREW LETTER SAMEKH D1 | 000005E2 | HEBREW LETTER AYIN D2 | 000005E4 | HEBREW LETTER PE D3 | 000005E6 | HEBREW LETTER TSADI D4 | 000005E7 | HEBREW LETTER QOF D5 | 000005E8 | HEBREW LETTER RESH D6 | 000005E9 | HEBREW LETTER SHIN D7 | 000005EA | HEBREW LETTER TAV D8 | 000005DF | HEBREW LETTER FINAL NUN D9 | 000005DA | HEBREW LETTER FINAL KAF DA | 000005DD | HEBREW LETTER FINAL MEM DB | 000005E3 | HEBREW LETTER FINAL PE DC | 000005E5 | HEBREW LETTER FINAL TSADI DD | 000000A7 | SECTION SIGN DE | 000020AC | EURO SIGN DF | 0000221E | INFINITY E0 | 000003B1 | GREEK SMALL LETTER ALPHA E1 | 000003B2 | GREEK SMALL LETTER BETA E2 | 00000393 | GREEK CAPITAL LETTER GAMMA E3 | 000003C0 | GREEK SMALL LETTER PI E4 | 000003A3 | GREEK CAPITAL LETTER SIGMA E5 | 000003C3 | GREEK SMALL LETTER SIGMA E6 | 000000B5 | MICRO SIGN E7 | 000003C4 | GREEK SMALL LETTER TAU E8 | 000003A6 | GREEK CAPITAL LETTER PHI E9 | 000003B8 | GREEK SMALL LETTER THETA EA | 000003A9 | GREEK CAPITAL LETTER OMEGA EB | 000003B4 | GREEK SMALL LETTER DELTA EC | 0000222E | CONTOUR INTEGRAL ED | 000003C6 | GREEK SMALL LETTER PHI EE | 00002208 | ELEMENT OF EF | 0000220F | N-ARY PRODUCT F0 | 00002261 | IDENTICAL TO F1 | 000000B1 | PLUS-MINUS SIGN F2 | 00002265 | GREATER-THAN OR EQUAL TO F3 | 00002264 | LESS-THAN OR EQUAL TO F4 | 00002320 | TOP HALF INTEGRAL F5 | 00002321 | BOTTOM HALF INTEGRAL F6 | 000000F7 | DIVISION SIGN F7 | 00002248 | ALMOST EQUAL TO F8 | 000000B0 | DEGREE SIGN F9 | 00002022 | BULLET FA | 000000B7 | MIDDLE DOT FB | 0000221A | SQUARE ROOT FC | 0000207F | SUPERSCRIPT LATIN SMALL LETTER N FD | 000000B2 | SUPERSCRIPT TWO FE | 000000B3 | SUPERSCRIPT THREE FF | 000000AF | MACRON =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]\n^n^RecodeData/ISO_8859_8.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ISO-8859-8. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ISO_8859_8; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0xfffd, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x00d7, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00f7, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2017, 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x05ea, 0xfffd, 0xfffd, 0x200e, 0x200f, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\xc2\x85", "\xc2\x86", "\xc2\x87", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\xc2\x8d", "\xc2\x8e", "\xc2\x8f", "\xc2\x90", "\xc2\x91", "\xc2\x92", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\xc2\x97", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\xc2\x9c", "\xc2\x9d", "\xc2\x9e", "\xc2\x9f", "\xc2\xa0", "\xef\xbf\xbd", "\xc2\xa2", "\xc2\xa3", "\xc2\xa4", "\xc2\xa5", "\xc2\xa6", "\xc2\xa7", "\xc2\xa8", "\xc2\xa9", "\xc3\x97", "\xc2\xab", "\xc2\xac", "\xc2\xad", "\xc2\xae", "\xc2\xaf", "\xc2\xb0", "\xc2\xb1", "\xc2\xb2", "\xc2\xb3", "\xc2\xb4", "\xc2\xb5", "\xc2\xb6", "\xc2\xb7", "\xc2\xb8", "\xc2\xb9", "\xc3\xb7", "\xc2\xbb", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe2\x80\x97", "\xd7\x90", "\xd7\x91", "\xd7\x92", "\xd7\x93", "\xd7\x94", "\xd7\x95", "\xd7\x96", "\xd7\x97", "\xd7\x98", "\xd7\x99", "\xd7\x9a", "\xd7\x9b", "\xd7\x9c", "\xd7\x9d", "\xd7\x9e", "\xd7\x9f", "\xd7\xa0", "\xd7\xa1", "\xd7\xa2", "\xd7\xa3", "\xd7\xa4", "\xd7\xa5", "\xd7\xa6", "\xd7\xa7", "\xd7\xa8", "\xd7\xa9", "\xd7\xaa", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe2\x80\x8e", "\xe2\x80\x8f", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000080 => "\x80", 0x00000081 => "\x81", 0x00000082 => "\x82", 0x00000083 => "\x83", 0x00000084 => "\x84", 0x00000085 => "\x85", 0x00000086 => "\x86", 0x00000087 => "\x87", 0x00000088 => "\x88", 0x00000089 => "\x89", 0x0000008a => "\x8a", 0x0000008b => "\x8b", 0x0000008c => "\x8c", 0x0000008d => "\x8d", 0x0000008e => "\x8e", 0x0000008f => "\x8f", 0x00000090 => "\x90", 0x00000091 => "\x91", 0x00000092 => "\x92", 0x00000093 => "\x93", 0x00000094 => "\x94", 0x00000095 => "\x95", 0x00000096 => "\x96", 0x00000097 => "\x97", 0x00000098 => "\x98", 0x00000099 => "\x99", 0x0000009a => "\x9a", 0x0000009b => "\x9b", 0x0000009c => "\x9c", 0x0000009d => "\x9d", 0x0000009e => "\x9e", 0x0000009f => "\x9f", 0x000000a0 => "\xa0", 0x000000a2 => "\xa2", 0x000000a3 => "\xa3", 0x000000a4 => "\xa4", 0x000000a5 => "\xa5", 0x000000a6 => "\xa6", 0x000000a7 => "\xa7", 0x000000a8 => "\xa8", 0x000000a9 => "\xa9", 0x000000ab => "\xab", 0x000000ac => "\xac", 0x000000ad => "\xad", 0x000000ae => "\xae", 0x000000af => "\xaf", 0x000000b0 => "\xb0", 0x000000b1 => "\xb1", 0x000000b2 => "\xb2", 0x000000b3 => "\xb3", 0x000000b4 => "\xb4", 0x000000b5 => "\xb5", 0x000000b6 => "\xb6", 0x000000b7 => "\xb7", 0x000000b8 => "\xb8", 0x000000b9 => "\xb9", 0x000000bb => "\xbb", 0x000000bc => "\xbc", 0x000000bd => "\xbd", 0x000000be => "\xbe", 0x000000d7 => "\xaa", 0x000000f7 => "\xba", 0x000005d0 => "\xe0", 0x000005d1 => "\xe1", 0x000005d2 => "\xe2", 0x000005d3 => "\xe3", 0x000005d4 => "\xe4", 0x000005d5 => "\xe5", 0x000005d6 => "\xe6", 0x000005d7 => "\xe7", 0x000005d8 => "\xe8", 0x000005d9 => "\xe9", 0x000005da => "\xea", 0x000005db => "\xeb", 0x000005dc => "\xec", 0x000005dd => "\xed", 0x000005de => "\xee", 0x000005df => "\xef", 0x000005e0 => "\xf0", 0x000005e1 => "\xf1", 0x000005e2 => "\xf2", 0x000005e3 => "\xf3", 0x000005e4 => "\xf4", 0x000005e5 => "\xf5", 0x000005e6 => "\xf6", 0x000005e7 => "\xf7", 0x000005e8 => "\xf8", 0x000005e9 => "\xf9", 0x000005ea => "\xfa", 0x0000200e => "\xfd", 0x0000200f => "\xfe", 0x00002017 => "\xdf", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ISO_8859_8 - Conversion routines for ISO-8859-8 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for ISO-8859-8. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: ECMA registry alias ISO-IR-138 alias ISO_8859-8:1988 alias ISO_8859-8 alias HEBREW Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000080 | PADDING CHARACTER (PAD) 81 | 00000081 | HIGH OCTET PRESET (HOP) 82 | 00000082 | BREAK PERMITTED HERE (BPH) 83 | 00000083 | NO BREAK HERE (NBH) 84 | 00000084 | INDEX (IND) 85 | 00000085 | NEXT LINE (NEL) 86 | 00000086 | START OF SELECTED AREA (SSA) 87 | 00000087 | END OF SELECTED AREA (ESA) 88 | 00000088 | CHARACTER TABULATION SET (HTS) 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 8A | 0000008A | LINE TABULATION SET (VTS) 8B | 0000008B | PARTIAL LINE FORWARD (PLD) 8C | 0000008C | PARTIAL LINE BACKWARD (PLU) 8D | 0000008D | REVERSE LINE FEED (RI) 8E | 0000008E | SINGLE-SHIFT TWO (SS2) 8F | 0000008F | SINGLE-SHIFT THREE (SS3) 90 | 00000090 | DEVICE CONTROL STRING (DCS) 91 | 00000091 | PRIVATE USE ONE (PU1) 92 | 00000092 | PRIVATE USE TWO (PU2) 93 | 00000093 | SET TRANSMIT STATE (STS) 94 | 00000094 | CANCEL CHARACTER (CCH) 95 | 00000095 | MESSAGE WAITING (MW) 96 | 00000096 | START OF GUARDED AREA (SPA) 97 | 00000097 | END OF GUARDED AREA (EPA) 98 | 00000098 | START OF STRING (SOS) 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 9C | 0000009C | STRING TERMINATOR (ST) 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC) 9E | 0000009E | PRIVACY MESSAGE (PM) 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC) A0 | 000000A0 | NO-BREAK SPACE A2 | 000000A2 | CENT SIGN A3 | 000000A3 | POUND SIGN A4 | 000000A4 | CURRENCY SIGN A5 | 000000A5 | YEN SIGN A6 | 000000A6 | BROKEN BAR A7 | 000000A7 | SECTION SIGN A8 | 000000A8 | DIAERESIS A9 | 000000A9 | COPYRIGHT SIGN AA | 000000D7 | MULTIPLICATION SIGN AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AC | 000000AC | NOT SIGN AD | 000000AD | SOFT HYPHEN AE | 000000AE | REGISTERED SIGN AF | 000000AF | MACRON B0 | 000000B0 | DEGREE SIGN B1 | 000000B1 | PLUS-MINUS SIGN B2 | 000000B2 | SUPERSCRIPT TWO B3 | 000000B3 | SUPERSCRIPT THREE B4 | 000000B4 | ACUTE ACCENT B5 | 000000B5 | MICRO SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000B7 | MIDDLE DOT B8 | 000000B8 | CEDILLA B9 | 000000B9 | SUPERSCRIPT ONE BA | 000000F7 | DIVISION SIGN BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK BC | 000000BC | VULGAR FRACTION ONE QUARTER BD | 000000BD | VULGAR FRACTION ONE HALF BE | 000000BE | VULGAR FRACTION THREE QUARTERS DF | 00002017 | DOUBLE LOW LINE E0 | 000005D0 | HEBREW LETTER ALEF E1 | 000005D1 | HEBREW LETTER BET E2 | 000005D2 | HEBREW LETTER GIMEL E3 | 000005D3 | HEBREW LETTER DALET E4 | 000005D4 | HEBREW LETTER HE E5 | 000005D5 | HEBREW LETTER VAV E6 | 000005D6 | HEBREW LETTER ZAYIN E7 | 000005D7 | HEBREW LETTER HET E8 | 000005D8 | HEBREW LETTER TET E9 | 000005D9 | HEBREW LETTER YOD EA | 000005DA | HEBREW LETTER FINAL KAF EB | 000005DB | HEBREW LETTER KAF EC | 000005DC | HEBREW LETTER LAMED ED | 000005DD | HEBREW LETTER FINAL MEM EE | 000005DE | HEBREW LETTER MEM EF | 000005DF | HEBREW LETTER FINAL NUN F0 | 000005E0 | HEBREW LETTER NUN F1 | 000005E1 | HEBREW LETTER SAMEKH F2 | 000005E2 | HEBREW LETTER AYIN F3 | 000005E3 | HEBREW LETTER FINAL PE F4 | 000005E4 | HEBREW LETTER PE F5 | 000005E5 | HEBREW LETTER FINAL TSADI F6 | 000005E6 | HEBREW LETTER TSADI F7 | 000005E7 | HEBREW LETTER QOF F8 | 000005E8 | HEBREW LETTER RESH F9 | 000005E9 | HEBREW LETTER SHIN FA | 000005EA | HEBREW LETTER TAV FD | 0000200E | LEFT-TO-RIGHT MARK FE | 0000200F | RIGHT-TO-LEFT MARK =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]jjRecodeData/IBM864.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM864. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM864; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x066a, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00b0, 0x00b7, 0x2219, 0x221a, 0x2592, 0x2500, 0x2502, 0x253c, 0x2524, 0x252c, 0x251c, 0x2534, 0x2510, 0x250c, 0x2514, 0x2518, 0x03b2, 0x221e, 0x03c6, 0x00b1, 0x00bd, 0x00bc, 0x2248, 0x00ab, 0x00bb, 0xfef7, 0xfef8, 0xfffd, 0xfffd, 0xfefb, 0xfefc, 0xfffd, 0x00a0, 0x00ad, 0xfe82, 0x00a3, 0x00a4, 0xfe84, 0xfffd, 0xfffd, 0xfe8e, 0xfe8f, 0xfe95, 0xfe99, 0x060c, 0xfe9d, 0xfea1, 0xfea5, 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, 0x0668, 0x0669, 0xfed1, 0x061b, 0xfeb1, 0xfeb5, 0xfeb9, 0x061f, 0x00a2, 0xfe80, 0xfe81, 0xfe83, 0xfe85, 0xfeca, 0xfe8b, 0xfe8d, 0xfe91, 0xfe93, 0xfe97, 0xfe9b, 0xfe9f, 0xfea3, 0xfea7, 0xfea9, 0xfeab, 0xfead, 0xfeaf, 0xfeb3, 0xfeb7, 0xfebb, 0xfebf, 0xfec1, 0xfec5, 0xfecb, 0xfecf, 0x00a6, 0x00ac, 0x00f7, 0x00d7, 0xfec9, 0x0640, 0xfed3, 0xfed7, 0xfedb, 0xfedf, 0xfee3, 0xfee7, 0xfeeb, 0xfeed, 0xfeef, 0xfef3, 0xfebd, 0xfecc, 0xfece, 0xfecd, 0xfee1, 0xfe7d, 0x0651, 0xfee5, 0xfee9, 0xfeec, 0xfef0, 0xfef2, 0xfed0, 0xfed5, 0xfef5, 0xfef6, 0xfedd, 0xfed9, 0xfef1, 0x25a0, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\xd9\xaa", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\xb0", "\xc2\xb7", "\xe2\x88\x99", "\xe2\x88\x9a", "\xe2\x96\x92", "\xe2\x94\x80", "\xe2\x94\x82", "\xe2\x94\xbc", "\xe2\x94\xa4", "\xe2\x94\xac", "\xe2\x94\x9c", "\xe2\x94\xb4", "\xe2\x94\x90", "\xe2\x94\x8c", "\xe2\x94\x94", "\xe2\x94\x98", "\xce\xb2", "\xe2\x88\x9e", "\xcf\x86", "\xc2\xb1", "\xc2\xbd", "\xc2\xbc", "\xe2\x89\x88", "\xc2\xab", "\xc2\xbb", "\xef\xbb\xb7", "\xef\xbb\xb8", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbb\xbb", "\xef\xbb\xbc", "\xef\xbf\xbd", "\xc2\xa0", "\xc2\xad", "\xef\xba\x82", "\xc2\xa3", "\xc2\xa4", "\xef\xba\x84", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xba\x8e", "\xef\xba\x8f", "\xef\xba\x95", "\xef\xba\x99", "\xd8\x8c", "\xef\xba\x9d", "\xef\xba\xa1", "\xef\xba\xa5", "\xd9\xa0", "\xd9\xa1", "\xd9\xa2", "\xd9\xa3", "\xd9\xa4", "\xd9\xa5", "\xd9\xa6", "\xd9\xa7", "\xd9\xa8", "\xd9\xa9", "\xef\xbb\x91", "\xd8\x9b", "\xef\xba\xb1", "\xef\xba\xb5", "\xef\xba\xb9", "\xd8\x9f", "\xc2\xa2", "\xef\xba\x80", "\xef\xba\x81", "\xef\xba\x83", "\xef\xba\x85", "\xef\xbb\x8a", "\xef\xba\x8b", "\xef\xba\x8d", "\xef\xba\x91", "\xef\xba\x93", "\xef\xba\x97", "\xef\xba\x9b", "\xef\xba\x9f", "\xef\xba\xa3", "\xef\xba\xa7", "\xef\xba\xa9", "\xef\xba\xab", "\xef\xba\xad", "\xef\xba\xaf", "\xef\xba\xb3", "\xef\xba\xb7", "\xef\xba\xbb", "\xef\xba\xbf", "\xef\xbb\x81", "\xef\xbb\x85", "\xef\xbb\x8b", "\xef\xbb\x8f", "\xc2\xa6", "\xc2\xac", "\xc3\xb7", "\xc3\x97", "\xef\xbb\x89", "\xd9\x80", "\xef\xbb\x93", "\xef\xbb\x97", "\xef\xbb\x9b", "\xef\xbb\x9f", "\xef\xbb\xa3", "\xef\xbb\xa7", "\xef\xbb\xab", "\xef\xbb\xad", "\xef\xbb\xaf", "\xef\xbb\xb3", "\xef\xba\xbd", "\xef\xbb\x8c", "\xef\xbb\x8e", "\xef\xbb\x8d", "\xef\xbb\xa1", "\xef\xb9\xbd", "\xd9\x91", "\xef\xbb\xa5", "\xef\xbb\xa9", "\xef\xbb\xac", "\xef\xbb\xb0", "\xef\xbb\xb2", "\xef\xbb\x90", "\xef\xbb\x95", "\xef\xbb\xb5", "\xef\xbb\xb6", "\xef\xbb\x9d", "\xef\xbb\x99", "\xef\xbb\xb1", "\xe2\x96\xa0", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xa0", 0x000000a2 => "\xc0", 0x000000a3 => "\xa3", 0x000000a4 => "\xa4", 0x000000a6 => "\xdb", 0x000000ab => "\x97", 0x000000ac => "\xdc", 0x000000ad => "\xa1", 0x000000b0 => "\x80", 0x000000b1 => "\x93", 0x000000b7 => "\x81", 0x000000bb => "\x98", 0x000000bc => "\x95", 0x000000bd => "\x94", 0x000000d7 => "\xde", 0x000000f7 => "\xdd", 0x000003b2 => "\x90", 0x000003c6 => "\x92", 0x0000060c => "\xac", 0x0000061b => "\xbb", 0x0000061f => "\xbf", 0x00000640 => "\xe0", 0x00000651 => "\xf1", 0x00000660 => "\xb0", 0x00000661 => "\xb1", 0x00000662 => "\xb2", 0x00000663 => "\xb3", 0x00000664 => "\xb4", 0x00000665 => "\xb5", 0x00000666 => "\xb6", 0x00000667 => "\xb7", 0x00000668 => "\xb8", 0x00000669 => "\xb9", 0x0000066a => "\x25", 0x00002219 => "\x82", 0x0000221a => "\x83", 0x0000221e => "\x91", 0x00002248 => "\x96", 0x00002500 => "\x85", 0x00002502 => "\x86", 0x0000250c => "\x8d", 0x00002510 => "\x8c", 0x00002514 => "\x8e", 0x00002518 => "\x8f", 0x0000251c => "\x8a", 0x00002524 => "\x88", 0x0000252c => "\x89", 0x00002534 => "\x8b", 0x0000253c => "\x87", 0x00002592 => "\x84", 0x000025a0 => "\xfe", 0x0000fe7d => "\xf0", 0x0000fe80 => "\xc1", 0x0000fe81 => "\xc2", 0x0000fe82 => "\xa2", 0x0000fe83 => "\xc3", 0x0000fe84 => "\xa5", 0x0000fe85 => "\xc4", 0x0000fe8b => "\xc6", 0x0000fe8d => "\xc7", 0x0000fe8e => "\xa8", 0x0000fe8f => "\xa9", 0x0000fe91 => "\xc8", 0x0000fe93 => "\xc9", 0x0000fe95 => "\xaa", 0x0000fe97 => "\xca", 0x0000fe99 => "\xab", 0x0000fe9b => "\xcb", 0x0000fe9d => "\xad", 0x0000fe9f => "\xcc", 0x0000fea1 => "\xae", 0x0000fea3 => "\xcd", 0x0000fea5 => "\xaf", 0x0000fea7 => "\xce", 0x0000fea9 => "\xcf", 0x0000feab => "\xd0", 0x0000fead => "\xd1", 0x0000feaf => "\xd2", 0x0000feb1 => "\xbc", 0x0000feb3 => "\xd3", 0x0000feb5 => "\xbd", 0x0000feb7 => "\xd4", 0x0000feb9 => "\xbe", 0x0000febb => "\xd5", 0x0000febd => "\xeb", 0x0000febf => "\xd6", 0x0000fec1 => "\xd7", 0x0000fec5 => "\xd8", 0x0000fec9 => "\xdf", 0x0000feca => "\xc5", 0x0000fecb => "\xd9", 0x0000fecc => "\xec", 0x0000fecd => "\xee", 0x0000fece => "\xed", 0x0000fecf => "\xda", 0x0000fed0 => "\xf7", 0x0000fed1 => "\xba", 0x0000fed3 => "\xe1", 0x0000fed5 => "\xf8", 0x0000fed7 => "\xe2", 0x0000fed9 => "\xfc", 0x0000fedb => "\xe3", 0x0000fedd => "\xfb", 0x0000fedf => "\xe4", 0x0000fee1 => "\xef", 0x0000fee3 => "\xe5", 0x0000fee5 => "\xf2", 0x0000fee7 => "\xe6", 0x0000fee9 => "\xf3", 0x0000feeb => "\xe7", 0x0000feec => "\xf4", 0x0000feed => "\xe8", 0x0000feef => "\xe9", 0x0000fef0 => "\xf5", 0x0000fef1 => "\xfd", 0x0000fef2 => "\xf6", 0x0000fef3 => "\xea", 0x0000fef5 => "\xf9", 0x0000fef6 => "\xfa", 0x0000fef7 => "\x99", 0x0000fef8 => "\x9a", 0x0000fefb => "\x9d", 0x0000fefc => "\x9e", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM864 - Conversion routines for IBM864 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM864. =head1 COMMENTS The following comments have been extracted from the original charmap: automatically generated from the charDB alias CP864 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL 01 | 00000001 | START OF HEADING 02 | 00000002 | START OF TEXT 03 | 00000003 | END OF TEXT 04 | 00000004 | END OF TRANSMISSION 05 | 00000005 | ENQUIRY 06 | 00000006 | ACKNOWLEDGE 07 | 00000007 | BELL 08 | 00000008 | BACKSPACE 09 | 00000009 | HORIZONTAL TABULATION 0A | 0000000A | LINE FEED 0B | 0000000B | VERTICAL TABULATION 0C | 0000000C | FORM FEED 0D | 0000000D | CARRIAGE RETURN 0E | 0000000E | SHIFT OUT 0F | 0000000F | SHIFT IN 10 | 00000010 | DATA LINK ESCAPE 11 | 00000011 | DEVICE CONTROL ONE 12 | 00000012 | DEVICE CONTROL TWO 13 | 00000013 | DEVICE CONTROL THREE 14 | 00000014 | DEVICE CONTROL FOUR 15 | 00000015 | NEGATIVE ACKNOWLEDGE 16 | 00000016 | SYNCHRONOUS IDLE 17 | 00000017 | END OF TRANSMISSION BLOCK 18 | 00000018 | CANCEL 19 | 00000019 | END OF MEDIUM 1A | 0000001A | SUBSTITUTE 1B | 0000001B | ESCAPE 1C | 0000001C | FILE SEPARATOR 1D | 0000001D | GROUP SEPARATOR 1E | 0000001E | RECORD SEPARATOR 1F | 0000001F | UNIT SEPARATOR 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 0000066A | ARABIC PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE 80 | 000000B0 | DEGREE SIGN 81 | 000000B7 | MIDDLE DOT 82 | 00002219 | BULLET OPERATOR 83 | 0000221A | SQUARE ROOT 84 | 00002592 | MEDIUM SHADE 85 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL 86 | 00002502 | BOX DRAWINGS LIGHT VERTICAL 87 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL 88 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT 89 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL 8A | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT 8B | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL 8C | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT 8D | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT 8E | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT 8F | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT 90 | 000003B2 | GREEK SMALL LETTER BETA 91 | 0000221E | INFINITY 92 | 000003C6 | GREEK SMALL LETTER PHI 93 | 000000B1 | PLUS-MINUS SIGN 94 | 000000BD | VULGAR FRACTION ONE HALF 95 | 000000BC | VULGAR FRACTION ONE QUARTER 96 | 00002248 | ALMOST EQUAL TO 97 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 98 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 99 | 0000FEF7 | ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM 9A | 0000FEF8 | ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM 9D | 0000FEFB | ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM 9E | 0000FEFC | ARABIC LIGATURE LAM WITH ALEF FINAL FORM A0 | 000000A0 | NO-BREAK SPACE A1 | 000000AD | SOFT HYPHEN A2 | 0000FE82 | ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM A3 | 000000A3 | POUND SIGN A4 | 000000A4 | CURRENCY SIGN A5 | 0000FE84 | ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM A8 | 0000FE8E | ARABIC LETTER ALEF FINAL FORM A9 | 0000FE8F | ARABIC LETTER BEH ISOLATED FORM AA | 0000FE95 | ARABIC LETTER TEH ISOLATED FORM AB | 0000FE99 | ARABIC LETTER THEH ISOLATED FORM AC | 0000060C | ARABIC COMMA AD | 0000FE9D | ARABIC LETTER JEEM ISOLATED FORM AE | 0000FEA1 | ARABIC LETTER HAH ISOLATED FORM AF | 0000FEA5 | ARABIC LETTER KHAH ISOLATED FORM B0 | 00000660 | ARABIC-INDIC DIGIT ZERO B1 | 00000661 | ARABIC-INDIC DIGIT ONE B2 | 00000662 | ARABIC-INDIC DIGIT TWO B3 | 00000663 | ARABIC-INDIC DIGIT THREE B4 | 00000664 | ARABIC-INDIC DIGIT FOUR B5 | 00000665 | ARABIC-INDIC DIGIT FIVE B6 | 00000666 | ARABIC-INDIC DIGIT SIX B7 | 00000667 | ARABIC-INDIC DIGIT SEVEN B8 | 00000668 | ARABIC-INDIC DIGIT EIGHT B9 | 00000669 | ARABIC-INDIC DIGIT NINE BA | 0000FED1 | ARABIC LETTER FEH ISOLATED FORM BB | 0000061B | ARABIC SEMICOLON BC | 0000FEB1 | ARABIC LETTER SEEN ISOLATED FORM BD | 0000FEB5 | ARABIC LETTER SHEEN ISOLATED FORM BE | 0000FEB9 | ARABIC LETTER SAD ISOLATED FORM BF | 0000061F | ARABIC QUESTION MARK C0 | 000000A2 | CENT SIGN C1 | 0000FE80 | ARABIC LETTER HAMZA ISOLATED FORM C2 | 0000FE81 | ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM C3 | 0000FE83 | ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM C4 | 0000FE85 | ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM C5 | 0000FECA | ARABIC LETTER AIN FINAL FORM C6 | 0000FE8B | ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM C7 | 0000FE8D | ARABIC LETTER ALEF ISOLATED FORM C8 | 0000FE91 | ARABIC LETTER BEH INITIAL FORM C9 | 0000FE93 | ARABIC LETTER TEH MARBUTA ISOLATED FORM CA | 0000FE97 | ARABIC LETTER TEH INITIAL FORM CB | 0000FE9B | ARABIC LETTER THEH INITIAL FORM CC | 0000FE9F | ARABIC LETTER JEEM INITIAL FORM CD | 0000FEA3 | ARABIC LETTER HAH INITIAL FORM CE | 0000FEA7 | ARABIC LETTER KHAH INITIAL FORM CF | 0000FEA9 | ARABIC LETTER DAL ISOLATED FORM D0 | 0000FEAB | ARABIC LETTER THAL ISOLATED FORM D1 | 0000FEAD | ARABIC LETTER REH ISOLATED FORM D2 | 0000FEAF | ARABIC LETTER ZAIN ISOLATED FORM D3 | 0000FEB3 | ARABIC LETTER SEEN INITIAL FORM D4 | 0000FEB7 | ARABIC LETTER SHEEN INITIAL FORM D5 | 0000FEBB | ARABIC LETTER SAD INITIAL FORM D6 | 0000FEBF | ARABIC LETTER DAD INITIAL FORM D7 | 0000FEC1 | ARABIC LETTER TAH ISOLATED FORM D8 | 0000FEC5 | ARABIC LETTER ZAH ISOLATED FORM D9 | 0000FECB | ARABIC LETTER AIN INITIAL FORM DA | 0000FECF | ARABIC LETTER GHAIN INITIAL FORM DB | 000000A6 | BROKEN BAR DC | 000000AC | NOT SIGN DD | 000000F7 | DIVISION SIGN DE | 000000D7 | MULTIPLICATION SIGN DF | 0000FEC9 | ARABIC LETTER AIN ISOLATED FORM E0 | 00000640 | ARABIC TATWEEL E1 | 0000FED3 | ARABIC LETTER FEH INITIAL FORM E2 | 0000FED7 | ARABIC LETTER QAF INITIAL FORM E3 | 0000FEDB | ARABIC LETTER KAF INITIAL FORM E4 | 0000FEDF | ARABIC LETTER LAM INITIAL FORM E5 | 0000FEE3 | ARABIC LETTER MEEM INITIAL FORM E6 | 0000FEE7 | ARABIC LETTER NOON INITIAL FORM E7 | 0000FEEB | ARABIC LETTER HEH INITIAL FORM E8 | 0000FEED | ARABIC LETTER WAW ISOLATED FORM E9 | 0000FEEF | ARABIC LETTER ALEF MAKSURA ISOLATED FORM EA | 0000FEF3 | ARABIC LETTER YEH INITIAL FORM EB | 0000FEBD | ARABIC LETTER DAD ISOLATED FORM EC | 0000FECC | ARABIC LETTER AIN MEDIAL FORM ED | 0000FECE | ARABIC LETTER GHAIN FINAL FORM EE | 0000FECD | ARABIC LETTER GHAIN ISOLATED FORM EF | 0000FEE1 | ARABIC LETTER MEEM ISOLATED FORM F0 | 0000FE7D | ARABIC SHADDA MEDIAL FORM F1 | 00000651 | ARABIC SHADDA F2 | 0000FEE5 | ARABIC LETTER NOON ISOLATED FORM F3 | 0000FEE9 | ARABIC LETTER HEH ISOLATED FORM F4 | 0000FEEC | ARABIC LETTER HEH MEDIAL FORM F5 | 0000FEF0 | ARABIC LETTER ALEF MAKSURA FINAL FORM F6 | 0000FEF2 | ARABIC LETTER YEH FINAL FORM F7 | 0000FED0 | ARABIC LETTER GHAIN MEDIAL FORM F8 | 0000FED5 | ARABIC LETTER QAF ISOLATED FORM F9 | 0000FEF5 | ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM FA | 0000FEF6 | ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM FB | 0000FEDD | ARABIC LETTER LAM ISOLATED FORM FC | 0000FED9 | ARABIC LETTER KAF ISOLATED FORM FD | 0000FEF1 | ARABIC LETTER YEH ISOLATED FORM FE | 000025A0 | BLACK SQUARE =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]ġahahRecodeData/GEORGIAN_ACADEMY.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for GEORGIAN-ACADEMY. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::GEORGIAN_ACADEMY; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0x008d, 0x008e, 0x008f, 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0x009d, 0x009e, 0x0178, 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x10d0, 0x10d1, 0x10d2, 0x10d3, 0x10d4, 0x10d5, 0x10d6, 0x10d7, 0x10d8, 0x10d9, 0x10da, 0x10db, 0x10dc, 0x10dd, 0x10de, 0x10df, 0x10e0, 0x10e1, 0x10e2, 0x10e3, 0x10e4, 0x10e5, 0x10e6, 0x10e7, 0x10e8, 0x10e9, 0x10ea, 0x10eb, 0x10ec, 0x10ed, 0x10ee, 0x10ef, 0x10f0, 0x10f1, 0x10f2, 0x10f3, 0x10f4, 0x10f5, 0x10f6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\x80", "\xc2\x81", "\xe2\x80\x9a", "\xc6\x92", "\xe2\x80\x9e", "\xe2\x80\xa6", "\xe2\x80\xa0", "\xe2\x80\xa1", "\xcb\x86", "\xe2\x80\xb0", "\xc5\xa0", "\xe2\x80\xb9", "\xc5\x92", "\xc2\x8d", "\xc2\x8e", "\xc2\x8f", "\xc2\x90", "\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\xa2", "\xe2\x80\x93", "\xe2\x80\x94", "\xcb\x9c", "\xe2\x84\xa2", "\xc5\xa1", "\xe2\x80\xba", "\xc5\x93", "\xc2\x9d", "\xc2\x9e", "\xc5\xb8", "\xc2\xa0", "\xc2\xa1", "\xc2\xa2", "\xc2\xa3", "\xc2\xa4", "\xc2\xa5", "\xc2\xa6", "\xc2\xa7", "\xc2\xa8", "\xc2\xa9", "\xc2\xaa", "\xc2\xab", "\xc2\xac", "\xc2\xad", "\xc2\xae", "\xc2\xaf", "\xc2\xb0", "\xc2\xb1", "\xc2\xb2", "\xc2\xb3", "\xc2\xb4", "\xc2\xb5", "\xc2\xb6", "\xc2\xb7", "\xc2\xb8", "\xc2\xb9", "\xc2\xba", "\xc2\xbb", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\xc2\xbf", "\xe1\x83\x90", "\xe1\x83\x91", "\xe1\x83\x92", "\xe1\x83\x93", "\xe1\x83\x94", "\xe1\x83\x95", "\xe1\x83\x96", "\xe1\x83\x97", "\xe1\x83\x98", "\xe1\x83\x99", "\xe1\x83\x9a", "\xe1\x83\x9b", "\xe1\x83\x9c", "\xe1\x83\x9d", "\xe1\x83\x9e", "\xe1\x83\x9f", "\xe1\x83\xa0", "\xe1\x83\xa1", "\xe1\x83\xa2", "\xe1\x83\xa3", "\xe1\x83\xa4", "\xe1\x83\xa5", "\xe1\x83\xa6", "\xe1\x83\xa7", "\xe1\x83\xa8", "\xe1\x83\xa9", "\xe1\x83\xaa", "\xe1\x83\xab", "\xe1\x83\xac", "\xe1\x83\xad", "\xe1\x83\xae", "\xe1\x83\xaf", "\xe1\x83\xb0", "\xe1\x83\xb1", "\xe1\x83\xb2", "\xe1\x83\xb3", "\xe1\x83\xb4", "\xe1\x83\xb5", "\xe1\x83\xb6", "\xc3\xa7", "\xc3\xa8", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xac", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc3\xb0", "\xc3\xb1", "\xc3\xb2", "\xc3\xb3", "\xc3\xb4", "\xc3\xb5", "\xc3\xb6", "\xc3\xb7", "\xc3\xb8", "\xc3\xb9", "\xc3\xba", "\xc3\xbb", "\xc3\xbc", "\xc3\xbd", "\xc3\xbe", "\xc3\xbf", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000080 => "\x80", 0x00000081 => "\x81", 0x0000008d => "\x8d", 0x0000008e => "\x8e", 0x0000008f => "\x8f", 0x00000090 => "\x90", 0x0000009d => "\x9d", 0x0000009e => "\x9e", 0x000000a0 => "\xa0", 0x000000a1 => "\xa1", 0x000000a2 => "\xa2", 0x000000a3 => "\xa3", 0x000000a4 => "\xa4", 0x000000a5 => "\xa5", 0x000000a6 => "\xa6", 0x000000a7 => "\xa7", 0x000000a8 => "\xa8", 0x000000a9 => "\xa9", 0x000000aa => "\xaa", 0x000000ab => "\xab", 0x000000ac => "\xac", 0x000000ad => "\xad", 0x000000ae => "\xae", 0x000000af => "\xaf", 0x000000b0 => "\xb0", 0x000000b1 => "\xb1", 0x000000b2 => "\xb2", 0x000000b3 => "\xb3", 0x000000b4 => "\xb4", 0x000000b5 => "\xb5", 0x000000b6 => "\xb6", 0x000000b7 => "\xb7", 0x000000b8 => "\xb8", 0x000000b9 => "\xb9", 0x000000ba => "\xba", 0x000000bb => "\xbb", 0x000000bc => "\xbc", 0x000000bd => "\xbd", 0x000000be => "\xbe", 0x000000bf => "\xbf", 0x000000e7 => "\xe7", 0x000000e8 => "\xe8", 0x000000e9 => "\xe9", 0x000000ea => "\xea", 0x000000eb => "\xeb", 0x000000ec => "\xec", 0x000000ed => "\xed", 0x000000ee => "\xee", 0x000000ef => "\xef", 0x000000f0 => "\xf0", 0x000000f1 => "\xf1", 0x000000f2 => "\xf2", 0x000000f3 => "\xf3", 0x000000f4 => "\xf4", 0x000000f5 => "\xf5", 0x000000f6 => "\xf6", 0x000000f7 => "\xf7", 0x000000f8 => "\xf8", 0x000000f9 => "\xf9", 0x000000fa => "\xfa", 0x000000fb => "\xfb", 0x000000fc => "\xfc", 0x000000fd => "\xfd", 0x000000fe => "\xfe", 0x000000ff => "\xff", 0x00000152 => "\x8c", 0x00000153 => "\x9c", 0x00000160 => "\x8a", 0x00000161 => "\x9a", 0x00000178 => "\x9f", 0x00000192 => "\x83", 0x000002c6 => "\x88", 0x000002dc => "\x98", 0x000010d0 => "\xc0", 0x000010d1 => "\xc1", 0x000010d2 => "\xc2", 0x000010d3 => "\xc3", 0x000010d4 => "\xc4", 0x000010d5 => "\xc5", 0x000010d6 => "\xc6", 0x000010d7 => "\xc7", 0x000010d8 => "\xc8", 0x000010d9 => "\xc9", 0x000010da => "\xca", 0x000010db => "\xcb", 0x000010dc => "\xcc", 0x000010dd => "\xcd", 0x000010de => "\xce", 0x000010df => "\xcf", 0x000010e0 => "\xd0", 0x000010e1 => "\xd1", 0x000010e2 => "\xd2", 0x000010e3 => "\xd3", 0x000010e4 => "\xd4", 0x000010e5 => "\xd5", 0x000010e6 => "\xd6", 0x000010e7 => "\xd7", 0x000010e8 => "\xd8", 0x000010e9 => "\xd9", 0x000010ea => "\xda", 0x000010eb => "\xdb", 0x000010ec => "\xdc", 0x000010ed => "\xdd", 0x000010ee => "\xde", 0x000010ef => "\xdf", 0x000010f0 => "\xe0", 0x000010f1 => "\xe1", 0x000010f2 => "\xe2", 0x000010f3 => "\xe3", 0x000010f4 => "\xe4", 0x000010f5 => "\xe5", 0x000010f6 => "\xe6", 0x00002013 => "\x96", 0x00002014 => "\x97", 0x00002018 => "\x91", 0x00002019 => "\x92", 0x0000201a => "\x82", 0x0000201c => "\x93", 0x0000201d => "\x94", 0x0000201e => "\x84", 0x00002020 => "\x86", 0x00002021 => "\x87", 0x00002022 => "\x95", 0x00002026 => "\x85", 0x00002030 => "\x89", 0x00002039 => "\x8b", 0x0000203a => "\x9b", 0x00002122 => "\x99", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::GEORGIAN_ACADEMY - Conversion routines for GEORGIAN-ACADEMY =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for GEORGIAN-ACADEMY. =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000080 | PADDING CHARACTER (PAD) 81 | 00000081 | HIGH OCTET PRESET (HOP) 82 | 0000201A | SINGLE LOW-9 QUOTATION MARK 83 | 00000192 | LATIN SMALL LETTER F WITH HOOK 84 | 0000201E | DOUBLE LOW-9 QUOTATION MARK 85 | 00002026 | HORIZONTAL ELLIPSIS 86 | 00002020 | DAGGER 87 | 00002021 | DOUBLE DAGGER 88 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT 89 | 00002030 | PER MILLE SIGN 8A | 00000160 | LATIN CAPITAL LETTER S WITH CARON 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK 8C | 00000152 | LATIN CAPITAL LIGATURE OE 8D | 0000008D | REVERSE LINE FEED (RI) 8E | 0000008E | SINGLE-SHIFT TWO (SS2) 8F | 0000008F | SINGLE-SHIFT THREE (SS3) 90 | 00000090 | DEVICE CONTROL STRING (DCS) 91 | 00002018 | LEFT SINGLE QUOTATION MARK 92 | 00002019 | RIGHT SINGLE QUOTATION MARK 93 | 0000201C | LEFT DOUBLE QUOTATION MARK 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK 95 | 00002022 | BULLET 96 | 00002013 | EN DASH 97 | 00002014 | EM DASH 98 | 000002DC | SMALL TILDE 99 | 00002122 | TRADE MARK SIGN 9A | 00000161 | LATIN SMALL LETTER S WITH CARON 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 9C | 00000153 | LATIN SMALL LIGATURE OE 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC) 9E | 0000009E | PRIVACY MESSAGE (PM) 9F | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS A0 | 000000A0 | NO-BREAK SPACE A1 | 000000A1 | INVERTED EXCLAMATION MARK A2 | 000000A2 | CENT SIGN A3 | 000000A3 | POUND SIGN A4 | 000000A4 | CURRENCY SIGN A5 | 000000A5 | YEN SIGN A6 | 000000A6 | BROKEN BAR A7 | 000000A7 | SECTION SIGN A8 | 000000A8 | DIAERESIS A9 | 000000A9 | COPYRIGHT SIGN AA | 000000AA | FEMININE ORDINAL INDICATOR AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AC | 000000AC | NOT SIGN AD | 000000AD | SOFT HYPHEN AE | 000000AE | REGISTERED SIGN AF | 000000AF | MACRON B0 | 000000B0 | DEGREE SIGN B1 | 000000B1 | PLUS-MINUS SIGN B2 | 000000B2 | SUPERSCRIPT TWO B3 | 000000B3 | SUPERSCRIPT THREE B4 | 000000B4 | ACUTE ACCENT B5 | 000000B5 | MICRO SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000B7 | MIDDLE DOT B8 | 000000B8 | CEDILLA B9 | 000000B9 | SUPERSCRIPT ONE BA | 000000BA | MASCULINE ORDINAL INDICATOR BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK BC | 000000BC | VULGAR FRACTION ONE QUARTER BD | 000000BD | VULGAR FRACTION ONE HALF BE | 000000BE | VULGAR FRACTION THREE QUARTERS BF | 000000BF | INVERTED QUESTION MARK C0 | 000010D0 | GEORGIAN LETTER AN C1 | 000010D1 | GEORGIAN LETTER BAN C2 | 000010D2 | GEORGIAN LETTER GAN C3 | 000010D3 | GEORGIAN LETTER DON C4 | 000010D4 | GEORGIAN LETTER EN C5 | 000010D5 | GEORGIAN LETTER VIN C6 | 000010D6 | GEORGIAN LETTER ZEN C7 | 000010D7 | GEORGIAN LETTER TAN C8 | 000010D8 | GEORGIAN LETTER IN C9 | 000010D9 | GEORGIAN LETTER KAN CA | 000010DA | GEORGIAN LETTER LAS CB | 000010DB | GEORGIAN LETTER MAN CC | 000010DC | GEORGIAN LETTER NAR CD | 000010DD | GEORGIAN LETTER ON CE | 000010DE | GEORGIAN LETTER PAR CF | 000010DF | GEORGIAN LETTER ZHAR D0 | 000010E0 | GEORGIAN LETTER RAE D1 | 000010E1 | GEORGIAN LETTER SAN D2 | 000010E2 | GEORGIAN LETTER TAR D3 | 000010E3 | GEORGIAN LETTER UN D4 | 000010E4 | GEORGIAN LETTER PHAR D5 | 000010E5 | GEORGIAN LETTER KHAR D6 | 000010E6 | GEORGIAN LETTER GHAN D7 | 000010E7 | GEORGIAN LETTER QAR D8 | 000010E8 | GEORGIAN LETTER SHIN D9 | 000010E9 | GEORGIAN LETTER CHIN DA | 000010EA | GEORGIAN LETTER CAN DB | 000010EB | GEORGIAN LETTER JIL DC | 000010EC | GEORGIAN LETTER CIL DD | 000010ED | GEORGIAN LETTER CHAR DE | 000010EE | GEORGIAN LETTER XAN DF | 000010EF | GEORGIAN LETTER JHAN E0 | 000010F0 | GEORGIAN LETTER HAE E1 | 000010F1 | GEORGIAN LETTER HE E2 | 000010F2 | GEORGIAN LETTER HIE E3 | 000010F3 | GEORGIAN LETTER WE E4 | 000010F4 | GEORGIAN LETTER HAR E5 | 000010F5 | GEORGIAN LETTER HOE E6 | 000010F6 | GEORGIAN LETTER FI E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS F0 | 000000F0 | LATIN SMALL LETTER ETH (Icelandic) F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS F7 | 000000F7 | DIVISION SIGN F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE FE | 000000FE | LATIN SMALL LETTER THORN (Icelandic) FF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]mK6)l)lRecodeData/ISO_8859_4.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ISO-8859-4. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ISO_8859_4; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x0104, 0x0138, 0x0156, 0x00a4, 0x0128, 0x013b, 0x00a7, 0x00a8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00ad, 0x017d, 0x00af, 0x00b0, 0x0105, 0x02db, 0x0157, 0x00b4, 0x0129, 0x013c, 0x02c7, 0x00b8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014a, 0x017e, 0x014b, 0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e, 0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x012a, 0x0110, 0x0145, 0x014c, 0x0136, 0x00d4, 0x00d5, 0x00d6, 0x00d7, 0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x0168, 0x016a, 0x00df, 0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f, 0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x012b, 0x0111, 0x0146, 0x014d, 0x0137, 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x0169, 0x016b, 0x02d9, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\xc2\x85", "\xc2\x86", "\xc2\x87", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\xc2\x8d", "\xc2\x8e", "\xc2\x8f", "\xc2\x90", "\xc2\x91", "\xc2\x92", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\xc2\x97", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\xc2\x9c", "\xc2\x9d", "\xc2\x9e", "\xc2\x9f", "\xc2\xa0", "\xc4\x84", "\xc4\xb8", "\xc5\x96", "\xc2\xa4", "\xc4\xa8", "\xc4\xbb", "\xc2\xa7", "\xc2\xa8", "\xc5\xa0", "\xc4\x92", "\xc4\xa2", "\xc5\xa6", "\xc2\xad", "\xc5\xbd", "\xc2\xaf", "\xc2\xb0", "\xc4\x85", "\xcb\x9b", "\xc5\x97", "\xc2\xb4", "\xc4\xa9", "\xc4\xbc", "\xcb\x87", "\xc2\xb8", "\xc5\xa1", "\xc4\x93", "\xc4\xa3", "\xc5\xa7", "\xc5\x8a", "\xc5\xbe", "\xc5\x8b", "\xc4\x80", "\xc3\x81", "\xc3\x82", "\xc3\x83", "\xc3\x84", "\xc3\x85", "\xc3\x86", "\xc4\xae", "\xc4\x8c", "\xc3\x89", "\xc4\x98", "\xc3\x8b", "\xc4\x96", "\xc3\x8d", "\xc3\x8e", "\xc4\xaa", "\xc4\x90", "\xc5\x85", "\xc5\x8c", "\xc4\xb6", "\xc3\x94", "\xc3\x95", "\xc3\x96", "\xc3\x97", "\xc3\x98", "\xc5\xb2", "\xc3\x9a", "\xc3\x9b", "\xc3\x9c", "\xc5\xa8", "\xc5\xaa", "\xc3\x9f", "\xc4\x81", "\xc3\xa1", "\xc3\xa2", "\xc3\xa3", "\xc3\xa4", "\xc3\xa5", "\xc3\xa6", "\xc4\xaf", "\xc4\x8d", "\xc3\xa9", "\xc4\x99", "\xc3\xab", "\xc4\x97", "\xc3\xad", "\xc3\xae", "\xc4\xab", "\xc4\x91", "\xc5\x86", "\xc5\x8d", "\xc4\xb7", "\xc3\xb4", "\xc3\xb5", "\xc3\xb6", "\xc3\xb7", "\xc3\xb8", "\xc5\xb3", "\xc3\xba", "\xc3\xbb", "\xc3\xbc", "\xc5\xa9", "\xc5\xab", "\xcb\x99", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000080 => "\x80", 0x00000081 => "\x81", 0x00000082 => "\x82", 0x00000083 => "\x83", 0x00000084 => "\x84", 0x00000085 => "\x85", 0x00000086 => "\x86", 0x00000087 => "\x87", 0x00000088 => "\x88", 0x00000089 => "\x89", 0x0000008a => "\x8a", 0x0000008b => "\x8b", 0x0000008c => "\x8c", 0x0000008d => "\x8d", 0x0000008e => "\x8e", 0x0000008f => "\x8f", 0x00000090 => "\x90", 0x00000091 => "\x91", 0x00000092 => "\x92", 0x00000093 => "\x93", 0x00000094 => "\x94", 0x00000095 => "\x95", 0x00000096 => "\x96", 0x00000097 => "\x97", 0x00000098 => "\x98", 0x00000099 => "\x99", 0x0000009a => "\x9a", 0x0000009b => "\x9b", 0x0000009c => "\x9c", 0x0000009d => "\x9d", 0x0000009e => "\x9e", 0x0000009f => "\x9f", 0x000000a0 => "\xa0", 0x000000a4 => "\xa4", 0x000000a7 => "\xa7", 0x000000a8 => "\xa8", 0x000000ad => "\xad", 0x000000af => "\xaf", 0x000000b0 => "\xb0", 0x000000b4 => "\xb4", 0x000000b8 => "\xb8", 0x000000c1 => "\xc1", 0x000000c2 => "\xc2", 0x000000c3 => "\xc3", 0x000000c4 => "\xc4", 0x000000c5 => "\xc5", 0x000000c6 => "\xc6", 0x000000c9 => "\xc9", 0x000000cb => "\xcb", 0x000000cd => "\xcd", 0x000000ce => "\xce", 0x000000d4 => "\xd4", 0x000000d5 => "\xd5", 0x000000d6 => "\xd6", 0x000000d7 => "\xd7", 0x000000d8 => "\xd8", 0x000000da => "\xda", 0x000000db => "\xdb", 0x000000dc => "\xdc", 0x000000df => "\xdf", 0x000000e1 => "\xe1", 0x000000e2 => "\xe2", 0x000000e3 => "\xe3", 0x000000e4 => "\xe4", 0x000000e5 => "\xe5", 0x000000e6 => "\xe6", 0x000000e9 => "\xe9", 0x000000eb => "\xeb", 0x000000ed => "\xed", 0x000000ee => "\xee", 0x000000f4 => "\xf4", 0x000000f5 => "\xf5", 0x000000f6 => "\xf6", 0x000000f7 => "\xf7", 0x000000f8 => "\xf8", 0x000000fa => "\xfa", 0x000000fb => "\xfb", 0x000000fc => "\xfc", 0x00000100 => "\xc0", 0x00000101 => "\xe0", 0x00000104 => "\xa1", 0x00000105 => "\xb1", 0x0000010c => "\xc8", 0x0000010d => "\xe8", 0x00000110 => "\xd0", 0x00000111 => "\xf0", 0x00000112 => "\xaa", 0x00000113 => "\xba", 0x00000116 => "\xcc", 0x00000117 => "\xec", 0x00000118 => "\xca", 0x00000119 => "\xea", 0x00000122 => "\xab", 0x00000123 => "\xbb", 0x00000128 => "\xa5", 0x00000129 => "\xb5", 0x0000012a => "\xcf", 0x0000012b => "\xef", 0x0000012e => "\xc7", 0x0000012f => "\xe7", 0x00000136 => "\xd3", 0x00000137 => "\xf3", 0x00000138 => "\xa2", 0x0000013b => "\xa6", 0x0000013c => "\xb6", 0x00000145 => "\xd1", 0x00000146 => "\xf1", 0x0000014a => "\xbd", 0x0000014b => "\xbf", 0x0000014c => "\xd2", 0x0000014d => "\xf2", 0x00000156 => "\xa3", 0x00000157 => "\xb3", 0x00000160 => "\xa9", 0x00000161 => "\xb9", 0x00000166 => "\xac", 0x00000167 => "\xbc", 0x00000168 => "\xdd", 0x00000169 => "\xfd", 0x0000016a => "\xde", 0x0000016b => "\xfe", 0x00000172 => "\xd9", 0x00000173 => "\xf9", 0x0000017d => "\xae", 0x0000017e => "\xbe", 0x000002c7 => "\xb7", 0x000002d9 => "\xff", 0x000002db => "\xb2", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ISO_8859_4 - Conversion routines for ISO-8859-4 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for ISO-8859-4. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: ECMA registry alias ISO-IR-110 alias ISO_8859-4:1988 alias ISO_8859-4 alias LATIN4 alias L4 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000080 | PADDING CHARACTER (PAD) 81 | 00000081 | HIGH OCTET PRESET (HOP) 82 | 00000082 | BREAK PERMITTED HERE (BPH) 83 | 00000083 | NO BREAK HERE (NBH) 84 | 00000084 | INDEX (IND) 85 | 00000085 | NEXT LINE (NEL) 86 | 00000086 | START OF SELECTED AREA (SSA) 87 | 00000087 | END OF SELECTED AREA (ESA) 88 | 00000088 | CHARACTER TABULATION SET (HTS) 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 8A | 0000008A | LINE TABULATION SET (VTS) 8B | 0000008B | PARTIAL LINE FORWARD (PLD) 8C | 0000008C | PARTIAL LINE BACKWARD (PLU) 8D | 0000008D | REVERSE LINE FEED (RI) 8E | 0000008E | SINGLE-SHIFT TWO (SS2) 8F | 0000008F | SINGLE-SHIFT THREE (SS3) 90 | 00000090 | DEVICE CONTROL STRING (DCS) 91 | 00000091 | PRIVATE USE ONE (PU1) 92 | 00000092 | PRIVATE USE TWO (PU2) 93 | 00000093 | SET TRANSMIT STATE (STS) 94 | 00000094 | CANCEL CHARACTER (CCH) 95 | 00000095 | MESSAGE WAITING (MW) 96 | 00000096 | START OF GUARDED AREA (SPA) 97 | 00000097 | END OF GUARDED AREA (EPA) 98 | 00000098 | START OF STRING (SOS) 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 9C | 0000009C | STRING TERMINATOR (ST) 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC) 9E | 0000009E | PRIVACY MESSAGE (PM) 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC) A0 | 000000A0 | NO-BREAK SPACE A1 | 00000104 | LATIN CAPITAL LETTER A WITH OGONEK A2 | 00000138 | LATIN SMALL LETTER KRA (Greenlandic) A3 | 00000156 | LATIN CAPITAL LETTER R WITH CEDILLA A4 | 000000A4 | CURRENCY SIGN A5 | 00000128 | LATIN CAPITAL LETTER I WITH TILDE A6 | 0000013B | LATIN CAPITAL LETTER L WITH CEDILLA A7 | 000000A7 | SECTION SIGN A8 | 000000A8 | DIAERESIS A9 | 00000160 | LATIN CAPITAL LETTER S WITH CARON AA | 00000112 | LATIN CAPITAL LETTER E WITH MACRON AB | 00000122 | LATIN CAPITAL LETTER G WITH CEDILLA AC | 00000166 | LATIN CAPITAL LETTER T WITH STROKE AD | 000000AD | SOFT HYPHEN AE | 0000017D | LATIN CAPITAL LETTER Z WITH CARON AF | 000000AF | MACRON B0 | 000000B0 | DEGREE SIGN B1 | 00000105 | LATIN SMALL LETTER A WITH OGONEK B2 | 000002DB | OGONEK B3 | 00000157 | LATIN SMALL LETTER R WITH CEDILLA B4 | 000000B4 | ACUTE ACCENT B5 | 00000129 | LATIN SMALL LETTER I WITH TILDE B6 | 0000013C | LATIN SMALL LETTER L WITH CEDILLA B7 | 000002C7 | CARON (Mandarin Chinese third tone) B8 | 000000B8 | CEDILLA B9 | 00000161 | LATIN SMALL LETTER S WITH CARON BA | 00000113 | LATIN SMALL LETTER E WITH MACRON BB | 00000123 | LATIN SMALL LETTER G WITH CEDILLA BC | 00000167 | LATIN SMALL LETTER T WITH STROKE BD | 0000014A | LATIN CAPITAL LETTER ENG (Sami) BE | 0000017E | LATIN SMALL LETTER Z WITH CARON BF | 0000014B | LATIN SMALL LETTER ENG (Sami) C0 | 00000100 | LATIN CAPITAL LETTER A WITH MACRON C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE C6 | 000000C6 | LATIN CAPITAL LETTER AE C7 | 0000012E | LATIN CAPITAL LETTER I WITH OGONEK C8 | 0000010C | LATIN CAPITAL LETTER C WITH CARON C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE CA | 00000118 | LATIN CAPITAL LETTER E WITH OGONEK CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS CC | 00000116 | LATIN CAPITAL LETTER E WITH DOT ABOVE CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX CF | 0000012A | LATIN CAPITAL LETTER I WITH MACRON D0 | 00000110 | LATIN CAPITAL LETTER D WITH STROKE D1 | 00000145 | LATIN CAPITAL LETTER N WITH CEDILLA D2 | 0000014C | LATIN CAPITAL LETTER O WITH MACRON D3 | 00000136 | LATIN CAPITAL LETTER K WITH CEDILLA D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS D7 | 000000D7 | MULTIPLICATION SIGN D8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE D9 | 00000172 | LATIN CAPITAL LETTER U WITH OGONEK DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS DD | 00000168 | LATIN CAPITAL LETTER U WITH TILDE DE | 0000016A | LATIN CAPITAL LETTER U WITH MACRON DF | 000000DF | LATIN SMALL LETTER SHARP S (German) E0 | 00000101 | LATIN SMALL LETTER A WITH MACRON E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE E6 | 000000E6 | LATIN SMALL LETTER AE E7 | 0000012F | LATIN SMALL LETTER I WITH OGONEK E8 | 0000010D | LATIN SMALL LETTER C WITH CARON E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE EA | 00000119 | LATIN SMALL LETTER E WITH OGONEK EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS EC | 00000117 | LATIN SMALL LETTER E WITH DOT ABOVE ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX EF | 0000012B | LATIN SMALL LETTER I WITH MACRON F0 | 00000111 | LATIN SMALL LETTER D WITH STROKE F1 | 00000146 | LATIN SMALL LETTER N WITH CEDILLA F2 | 0000014D | LATIN SMALL LETTER O WITH MACRON F3 | 00000137 | LATIN SMALL LETTER K WITH CEDILLA F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS F7 | 000000F7 | DIVISION SIGN F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE F9 | 00000173 | LATIN SMALL LETTER U WITH OGONEK FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS FD | 00000169 | LATIN SMALL LETTER U WITH TILDE FE | 0000016B | LATIN SMALL LETTER U WITH MACRON FF | 000002D9 | DOT ABOVE (Mandarin Chinese light tone) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]%f0llRecodeData/CSN_369103.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for CSN_369103. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::CSN_369103; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x00a4, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x0104, 0x02d8, 0x0141, 0x0024, 0x013d, 0x015a, 0x00a7, 0x00a8, 0x0160, 0x015e, 0x0164, 0x0179, 0x00ad, 0x017d, 0x017b, 0x00b0, 0x0105, 0x02db, 0x0142, 0x00b4, 0x013e, 0x015b, 0x02c7, 0x00b8, 0x0161, 0x015f, 0x0165, 0x017a, 0x02dd, 0x017e, 0x017c, 0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7, 0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e, 0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7, 0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df, 0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7, 0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f, 0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7, 0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\xc2\xa4", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\xc2\x85", "\xc2\x86", "\xc2\x87", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\xc2\x8d", "\xc2\x8e", "\xc2\x8f", "\xc2\x90", "\xc2\x91", "\xc2\x92", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\xc2\x97", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\xc2\x9c", "\xc2\x9d", "\xc2\x9e", "\xc2\x9f", "\xc2\xa0", "\xc4\x84", "\xcb\x98", "\xc5\x81", "\x24", "\xc4\xbd", "\xc5\x9a", "\xc2\xa7", "\xc2\xa8", "\xc5\xa0", "\xc5\x9e", "\xc5\xa4", "\xc5\xb9", "\xc2\xad", "\xc5\xbd", "\xc5\xbb", "\xc2\xb0", "\xc4\x85", "\xcb\x9b", "\xc5\x82", "\xc2\xb4", "\xc4\xbe", "\xc5\x9b", "\xcb\x87", "\xc2\xb8", "\xc5\xa1", "\xc5\x9f", "\xc5\xa5", "\xc5\xba", "\xcb\x9d", "\xc5\xbe", "\xc5\xbc", "\xc5\x94", "\xc3\x81", "\xc3\x82", "\xc4\x82", "\xc3\x84", "\xc4\xb9", "\xc4\x86", "\xc3\x87", "\xc4\x8c", "\xc3\x89", "\xc4\x98", "\xc3\x8b", "\xc4\x9a", "\xc3\x8d", "\xc3\x8e", "\xc4\x8e", "\xc4\x90", "\xc5\x83", "\xc5\x87", "\xc3\x93", "\xc3\x94", "\xc5\x90", "\xc3\x96", "\xc3\x97", "\xc5\x98", "\xc5\xae", "\xc3\x9a", "\xc5\xb0", "\xc3\x9c", "\xc3\x9d", "\xc5\xa2", "\xc3\x9f", "\xc5\x95", "\xc3\xa1", "\xc3\xa2", "\xc4\x83", "\xc3\xa4", "\xc4\xba", "\xc4\x87", "\xc3\xa7", "\xc4\x8d", "\xc3\xa9", "\xc4\x99", "\xc3\xab", "\xc4\x9b", "\xc3\xad", "\xc3\xae", "\xc4\x8f", "\xc4\x91", "\xc5\x84", "\xc5\x88", "\xc3\xb3", "\xc3\xb4", "\xc5\x91", "\xc3\xb6", "\xc3\xb7", "\xc5\x99", "\xc5\xaf", "\xc3\xba", "\xc5\xb1", "\xc3\xbc", "\xc3\xbd", "\xc5\xa3", "\xcb\x99", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\xa4", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000080 => "\x80", 0x00000081 => "\x81", 0x00000082 => "\x82", 0x00000083 => "\x83", 0x00000084 => "\x84", 0x00000085 => "\x85", 0x00000086 => "\x86", 0x00000087 => "\x87", 0x00000088 => "\x88", 0x00000089 => "\x89", 0x0000008a => "\x8a", 0x0000008b => "\x8b", 0x0000008c => "\x8c", 0x0000008d => "\x8d", 0x0000008e => "\x8e", 0x0000008f => "\x8f", 0x00000090 => "\x90", 0x00000091 => "\x91", 0x00000092 => "\x92", 0x00000093 => "\x93", 0x00000094 => "\x94", 0x00000095 => "\x95", 0x00000096 => "\x96", 0x00000097 => "\x97", 0x00000098 => "\x98", 0x00000099 => "\x99", 0x0000009a => "\x9a", 0x0000009b => "\x9b", 0x0000009c => "\x9c", 0x0000009d => "\x9d", 0x0000009e => "\x9e", 0x0000009f => "\x9f", 0x000000a0 => "\xa0", 0x000000a4 => "\x24", 0x000000a7 => "\xa7", 0x000000a8 => "\xa8", 0x000000ad => "\xad", 0x000000b0 => "\xb0", 0x000000b4 => "\xb4", 0x000000b8 => "\xb8", 0x000000c1 => "\xc1", 0x000000c2 => "\xc2", 0x000000c4 => "\xc4", 0x000000c7 => "\xc7", 0x000000c9 => "\xc9", 0x000000cb => "\xcb", 0x000000cd => "\xcd", 0x000000ce => "\xce", 0x000000d3 => "\xd3", 0x000000d4 => "\xd4", 0x000000d6 => "\xd6", 0x000000d7 => "\xd7", 0x000000da => "\xda", 0x000000dc => "\xdc", 0x000000dd => "\xdd", 0x000000df => "\xdf", 0x000000e1 => "\xe1", 0x000000e2 => "\xe2", 0x000000e4 => "\xe4", 0x000000e7 => "\xe7", 0x000000e9 => "\xe9", 0x000000eb => "\xeb", 0x000000ed => "\xed", 0x000000ee => "\xee", 0x000000f3 => "\xf3", 0x000000f4 => "\xf4", 0x000000f6 => "\xf6", 0x000000f7 => "\xf7", 0x000000fa => "\xfa", 0x000000fc => "\xfc", 0x000000fd => "\xfd", 0x00000102 => "\xc3", 0x00000103 => "\xe3", 0x00000104 => "\xa1", 0x00000105 => "\xb1", 0x00000106 => "\xc6", 0x00000107 => "\xe6", 0x0000010c => "\xc8", 0x0000010d => "\xe8", 0x0000010e => "\xcf", 0x0000010f => "\xef", 0x00000110 => "\xd0", 0x00000111 => "\xf0", 0x00000118 => "\xca", 0x00000119 => "\xea", 0x0000011a => "\xcc", 0x0000011b => "\xec", 0x00000139 => "\xc5", 0x0000013a => "\xe5", 0x0000013d => "\xa5", 0x0000013e => "\xb5", 0x00000141 => "\xa3", 0x00000142 => "\xb3", 0x00000143 => "\xd1", 0x00000144 => "\xf1", 0x00000147 => "\xd2", 0x00000148 => "\xf2", 0x00000150 => "\xd5", 0x00000151 => "\xf5", 0x00000154 => "\xc0", 0x00000155 => "\xe0", 0x00000158 => "\xd8", 0x00000159 => "\xf8", 0x0000015a => "\xa6", 0x0000015b => "\xb6", 0x0000015e => "\xaa", 0x0000015f => "\xba", 0x00000160 => "\xa9", 0x00000161 => "\xb9", 0x00000162 => "\xde", 0x00000163 => "\xfe", 0x00000164 => "\xab", 0x00000165 => "\xbb", 0x0000016e => "\xd9", 0x0000016f => "\xf9", 0x00000170 => "\xdb", 0x00000171 => "\xfb", 0x00000179 => "\xac", 0x0000017a => "\xbc", 0x0000017b => "\xaf", 0x0000017c => "\xbf", 0x0000017d => "\xae", 0x0000017e => "\xbe", 0x000002c7 => "\xb7", 0x000002d8 => "\xa2", 0x000002d9 => "\xff", 0x000002db => "\xb2", 0x000002dd => "\xbd", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::CSN_369103 - Conversion routines for CSN_369103 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for CSN_369103. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 repertoiremap: mnemonic,ds source: ECMA registry alias ISO-IR-139 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 000000A4 | CURRENCY SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000080 | PADDING CHARACTER (PAD) 81 | 00000081 | HIGH OCTET PRESET (HOP) 82 | 00000082 | BREAK PERMITTED HERE (BPH) 83 | 00000083 | NO BREAK HERE (NBH) 84 | 00000084 | INDEX (IND) 85 | 00000085 | NEXT LINE (NEL) 86 | 00000086 | START OF SELECTED AREA (SSA) 87 | 00000087 | END OF SELECTED AREA (ESA) 88 | 00000088 | CHARACTER TABULATION SET (HTS) 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 8A | 0000008A | LINE TABULATION SET (VTS) 8B | 0000008B | PARTIAL LINE FORWARD (PLD) 8C | 0000008C | PARTIAL LINE BACKWARD (PLU) 8D | 0000008D | REVERSE LINE FEED (RI) 8E | 0000008E | SINGLE-SHIFT TWO (SS2) 8F | 0000008F | SINGLE-SHIFT THREE (SS3) 90 | 00000090 | DEVICE CONTROL STRING (DCS) 91 | 00000091 | PRIVATE USE ONE (PU1) 92 | 00000092 | PRIVATE USE TWO (PU2) 93 | 00000093 | SET TRANSMIT STATE (STS) 94 | 00000094 | CANCEL CHARACTER (CCH) 95 | 00000095 | MESSAGE WAITING (MW) 96 | 00000096 | START OF GUARDED AREA (SPA) 97 | 00000097 | END OF GUARDED AREA (EPA) 98 | 00000098 | START OF STRING (SOS) 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 9C | 0000009C | STRING TERMINATOR (ST) 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC) 9E | 0000009E | PRIVACY MESSAGE (PM) 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC) A0 | 000000A0 | NO-BREAK SPACE A1 | 00000104 | LATIN CAPITAL LETTER A WITH OGONEK A2 | 000002D8 | BREVE A3 | 00000141 | LATIN CAPITAL LETTER L WITH STROKE A4 | 00000024 | DOLLAR SIGN A5 | 0000013D | LATIN CAPITAL LETTER L WITH CARON A6 | 0000015A | LATIN CAPITAL LETTER S WITH ACUTE A7 | 000000A7 | SECTION SIGN A8 | 000000A8 | DIAERESIS A9 | 00000160 | LATIN CAPITAL LETTER S WITH CARON AA | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA AB | 00000164 | LATIN CAPITAL LETTER T WITH CARON AC | 00000179 | LATIN CAPITAL LETTER Z WITH ACUTE AD | 000000AD | SOFT HYPHEN AE | 0000017D | LATIN CAPITAL LETTER Z WITH CARON AF | 0000017B | LATIN CAPITAL LETTER Z WITH DOT ABOVE B0 | 000000B0 | DEGREE SIGN B1 | 00000105 | LATIN SMALL LETTER A WITH OGONEK B2 | 000002DB | OGONEK B3 | 00000142 | LATIN SMALL LETTER L WITH STROKE B4 | 000000B4 | ACUTE ACCENT B5 | 0000013E | LATIN SMALL LETTER L WITH CARON B6 | 0000015B | LATIN SMALL LETTER S WITH ACUTE B7 | 000002C7 | CARON (Mandarin Chinese third tone) B8 | 000000B8 | CEDILLA B9 | 00000161 | LATIN SMALL LETTER S WITH CARON BA | 0000015F | LATIN SMALL LETTER S WITH CEDILLA BB | 00000165 | LATIN SMALL LETTER T WITH CARON BC | 0000017A | LATIN SMALL LETTER Z WITH ACUTE BD | 000002DD | DOUBLE ACUTE ACCENT BE | 0000017E | LATIN SMALL LETTER Z WITH CARON BF | 0000017C | LATIN SMALL LETTER Z WITH DOT ABOVE C0 | 00000154 | LATIN CAPITAL LETTER R WITH ACUTE C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX C3 | 00000102 | LATIN CAPITAL LETTER A WITH BREVE C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS C5 | 00000139 | LATIN CAPITAL LETTER L WITH ACUTE C6 | 00000106 | LATIN CAPITAL LETTER C WITH ACUTE C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA C8 | 0000010C | LATIN CAPITAL LETTER C WITH CARON C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE CA | 00000118 | LATIN CAPITAL LETTER E WITH OGONEK CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS CC | 0000011A | LATIN CAPITAL LETTER E WITH CARON CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX CF | 0000010E | LATIN CAPITAL LETTER D WITH CARON D0 | 00000110 | LATIN CAPITAL LETTER D WITH STROKE D1 | 00000143 | LATIN CAPITAL LETTER N WITH ACUTE D2 | 00000147 | LATIN CAPITAL LETTER N WITH CARON D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX D5 | 00000150 | LATIN CAPITAL LETTER O WITH DOUBLE ACUTE D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS D7 | 000000D7 | MULTIPLICATION SIGN D8 | 00000158 | LATIN CAPITAL LETTER R WITH CARON D9 | 0000016E | LATIN CAPITAL LETTER U WITH RING ABOVE DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE DB | 00000170 | LATIN CAPITAL LETTER U WITH DOUBLE ACUTE DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS DD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE DE | 00000162 | LATIN CAPITAL LETTER T WITH CEDILLA DF | 000000DF | LATIN SMALL LETTER SHARP S (German) E0 | 00000155 | LATIN SMALL LETTER R WITH ACUTE E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX E3 | 00000103 | LATIN SMALL LETTER A WITH BREVE E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS E5 | 0000013A | LATIN SMALL LETTER L WITH ACUTE E6 | 00000107 | LATIN SMALL LETTER C WITH ACUTE E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA E8 | 0000010D | LATIN SMALL LETTER C WITH CARON E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE EA | 00000119 | LATIN SMALL LETTER E WITH OGONEK EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS EC | 0000011B | LATIN SMALL LETTER E WITH CARON ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX EF | 0000010F | LATIN SMALL LETTER D WITH CARON F0 | 00000111 | LATIN SMALL LETTER D WITH STROKE F1 | 00000144 | LATIN SMALL LETTER N WITH ACUTE F2 | 00000148 | LATIN SMALL LETTER N WITH CARON F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX F5 | 00000151 | LATIN SMALL LETTER O WITH DOUBLE ACUTE F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS F7 | 000000F7 | DIVISION SIGN F8 | 00000159 | LATIN SMALL LETTER R WITH CARON F9 | 0000016F | LATIN SMALL LETTER U WITH RING ABOVE FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE FB | 00000171 | LATIN SMALL LETTER U WITH DOUBLE ACUTE FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE FE | 00000163 | LATIN SMALL LETTER T WITH CEDILLA FF | 000002D9 | DOT ABOVE (Mandarin Chinese light tone) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]so@EGGRecodeData/GREEK_CCITT.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for GREEK-CCITT. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::GREEK_CCITT; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x00a4, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0xfffd, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0xfffd, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0xfffd, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0xfffd, 0x007b, 0x007c, 0x007d, 0x00af, 0x007f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\xc2\xa4", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\xce\x91", "\xce\x92", "\xce\x93", "\xce\x94", "\xce\x95", "\xce\x96", "\xce\x97", "\xce\x98", "\xce\x99", "\xce\x9a", "\xce\x9b", "\xce\x9c", "\xce\x9d", "\xce\x9e", "\xce\x9f", "\xce\xa0", "\xce\xa1", "\xef\xbf\xbd", "\xce\xa3", "\xce\xa4", "\xce\xa5", "\xce\xa6", "\xce\xa7", "\xce\xa8", "\xce\xa9", "\xef\xbf\xbd", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\xef\xbf\xbd", "\xce\xb1", "\xce\xb2", "\xce\xb3", "\xce\xb4", "\xce\xb5", "\xce\xb6", "\xce\xb7", "\xce\xb8", "\xce\xb9", "\xce\xba", "\xce\xbb", "\xce\xbc", "\xce\xbd", "\xce\xbe", "\xce\xbf", "\xcf\x80", "\xcf\x81", "\xcf\x82", "\xcf\x83", "\xcf\x84", "\xcf\x85", "\xcf\x86", "\xcf\x87", "\xcf\x88", "\xcf\x89", "\xef\xbf\xbd", "\x7b", "\x7c", "\x7d", "\xc2\xaf", "\x7f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007f => "\x7f", 0x000000a4 => "\x24", 0x000000af => "\x7e", 0x00000391 => "\x41", 0x00000392 => "\x42", 0x00000393 => "\x43", 0x00000394 => "\x44", 0x00000395 => "\x45", 0x00000396 => "\x46", 0x00000397 => "\x47", 0x00000398 => "\x48", 0x00000399 => "\x49", 0x0000039a => "\x4a", 0x0000039b => "\x4b", 0x0000039c => "\x4c", 0x0000039d => "\x4d", 0x0000039e => "\x4e", 0x0000039f => "\x4f", 0x000003a0 => "\x50", 0x000003a1 => "\x51", 0x000003a3 => "\x53", 0x000003a4 => "\x54", 0x000003a5 => "\x55", 0x000003a6 => "\x56", 0x000003a7 => "\x57", 0x000003a8 => "\x58", 0x000003a9 => "\x59", 0x000003b1 => "\x61", 0x000003b2 => "\x62", 0x000003b3 => "\x63", 0x000003b4 => "\x64", 0x000003b5 => "\x65", 0x000003b6 => "\x66", 0x000003b7 => "\x67", 0x000003b8 => "\x68", 0x000003b9 => "\x69", 0x000003ba => "\x6a", 0x000003bb => "\x6b", 0x000003bc => "\x6c", 0x000003bd => "\x6d", 0x000003be => "\x6e", 0x000003bf => "\x6f", 0x000003c0 => "\x70", 0x000003c1 => "\x71", 0x000003c2 => "\x72", 0x000003c3 => "\x73", 0x000003c4 => "\x74", 0x000003c5 => "\x75", 0x000003c6 => "\x76", 0x000003c7 => "\x77", 0x000003c8 => "\x78", 0x000003c9 => "\x79", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::GREEK_CCITT - Conversion routines for GREEK_CCITT =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for GREEK-CCITT. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 repertoiremap: mnemonic,ds source: ECMA registry alias ISO-IR-150 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 000000A4 | CURRENCY SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000391 | GREEK CAPITAL LETTER ALPHA 42 | 00000392 | GREEK CAPITAL LETTER BETA 43 | 00000393 | GREEK CAPITAL LETTER GAMMA 44 | 00000394 | GREEK CAPITAL LETTER DELTA 45 | 00000395 | GREEK CAPITAL LETTER EPSILON 46 | 00000396 | GREEK CAPITAL LETTER ZETA 47 | 00000397 | GREEK CAPITAL LETTER ETA 48 | 00000398 | GREEK CAPITAL LETTER THETA 49 | 00000399 | GREEK CAPITAL LETTER IOTA 4A | 0000039A | GREEK CAPITAL LETTER KAPPA 4B | 0000039B | GREEK CAPITAL LETTER LAMDA 4C | 0000039C | GREEK CAPITAL LETTER MU 4D | 0000039D | GREEK CAPITAL LETTER NU 4E | 0000039E | GREEK CAPITAL LETTER XI 4F | 0000039F | GREEK CAPITAL LETTER OMICRON 50 | 000003A0 | GREEK CAPITAL LETTER PI 51 | 000003A1 | GREEK CAPITAL LETTER RHO 53 | 000003A3 | GREEK CAPITAL LETTER SIGMA 54 | 000003A4 | GREEK CAPITAL LETTER TAU 55 | 000003A5 | GREEK CAPITAL LETTER UPSILON 56 | 000003A6 | GREEK CAPITAL LETTER PHI 57 | 000003A7 | GREEK CAPITAL LETTER CHI 58 | 000003A8 | GREEK CAPITAL LETTER PSI 59 | 000003A9 | GREEK CAPITAL LETTER OMEGA 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 61 | 000003B1 | GREEK SMALL LETTER ALPHA 62 | 000003B2 | GREEK SMALL LETTER BETA 63 | 000003B3 | GREEK SMALL LETTER GAMMA 64 | 000003B4 | GREEK SMALL LETTER DELTA 65 | 000003B5 | GREEK SMALL LETTER EPSILON 66 | 000003B6 | GREEK SMALL LETTER ZETA 67 | 000003B7 | GREEK SMALL LETTER ETA 68 | 000003B8 | GREEK SMALL LETTER THETA 69 | 000003B9 | GREEK SMALL LETTER IOTA 6A | 000003BA | GREEK SMALL LETTER KAPPA 6B | 000003BB | GREEK SMALL LETTER LAMDA 6C | 000003BC | GREEK SMALL LETTER MU 6D | 000003BD | GREEK SMALL LETTER NU 6E | 000003BE | GREEK SMALL LETTER XI 6F | 000003BF | GREEK SMALL LETTER OMICRON 70 | 000003C0 | GREEK SMALL LETTER PI 71 | 000003C1 | GREEK SMALL LETTER RHO 72 | 000003C2 | GREEK SMALL LETTER FINAL SIGMA 73 | 000003C3 | GREEK SMALL LETTER SIGMA 74 | 000003C4 | GREEK SMALL LETTER TAU 75 | 000003C5 | GREEK SMALL LETTER UPSILON 76 | 000003C6 | GREEK SMALL LETTER PHI 77 | 000003C7 | GREEK SMALL LETTER CHI 78 | 000003C8 | GREEK SMALL LETTER PSI 79 | 000003C9 | GREEK SMALL LETTER OMEGA 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 000000AF | MACRON 7F | 0000007F | DELETE (DEL) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]d3i3iRecodeData/ATARI_ST.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ATARI-ST. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ATARI_ST; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, 0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x00df, 0x0192, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, 0x00e3, 0x00f5, 0x00d8, 0x00f8, 0x0153, 0x0152, 0x00c0, 0x00c3, 0x00d5, 0x00a8, 0x00b4, 0x2020, 0x00b6, 0x00a9, 0x00ae, 0x2122, 0x0133, 0x0132, 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, 0x05d8, 0x05d9, 0x05db, 0x05dc, 0x05de, 0x05e0, 0x05e1, 0x05e2, 0x05e4, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x05ea, 0x05df, 0x05da, 0x05dd, 0x05e3, 0x05e5, 0x00a7, 0x2038, 0x221e, 0x03b1, 0x03b2, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x03b8, 0x03a9, 0x03b4, 0x222e, 0x03c6, 0x2208, 0x220f, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2022, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x00b3, 0x00af, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc3\x87", "\xc3\xbc", "\xc3\xa9", "\xc3\xa2", "\xc3\xa4", "\xc3\xa0", "\xc3\xa5", "\xc3\xa7", "\xc3\xaa", "\xc3\xab", "\xc3\xa8", "\xc3\xaf", "\xc3\xae", "\xc3\xac", "\xc3\x84", "\xc3\x85", "\xc3\x89", "\xc3\xa6", "\xc3\x86", "\xc3\xb4", "\xc3\xb6", "\xc3\xb2", "\xc3\xbb", "\xc3\xb9", "\xc3\xbf", "\xc3\x96", "\xc3\x9c", "\xc2\xa2", "\xc2\xa3", "\xc2\xa5", "\xc3\x9f", "\xc6\x92", "\xc3\xa1", "\xc3\xad", "\xc3\xb3", "\xc3\xba", "\xc3\xb1", "\xc3\x91", "\xc2\xaa", "\xc2\xba", "\xc2\xbf", "\xe2\x8c\x90", "\xc2\xac", "\xc2\xbd", "\xc2\xbc", "\xc2\xa1", "\xc2\xab", "\xc2\xbb", "\xc3\xa3", "\xc3\xb5", "\xc3\x98", "\xc3\xb8", "\xc5\x93", "\xc5\x92", "\xc3\x80", "\xc3\x83", "\xc3\x95", "\xc2\xa8", "\xc2\xb4", "\xe2\x80\xa0", "\xc2\xb6", "\xc2\xa9", "\xc2\xae", "\xe2\x84\xa2", "\xc4\xb3", "\xc4\xb2", "\xd7\x90", "\xd7\x91", "\xd7\x92", "\xd7\x93", "\xd7\x94", "\xd7\x95", "\xd7\x96", "\xd7\x97", "\xd7\x98", "\xd7\x99", "\xd7\x9b", "\xd7\x9c", "\xd7\x9e", "\xd7\xa0", "\xd7\xa1", "\xd7\xa2", "\xd7\xa4", "\xd7\xa6", "\xd7\xa7", "\xd7\xa8", "\xd7\xa9", "\xd7\xaa", "\xd7\x9f", "\xd7\x9a", "\xd7\x9d", "\xd7\xa3", "\xd7\xa5", "\xc2\xa7", "\xe2\x80\xb8", "\xe2\x88\x9e", "\xce\xb1", "\xce\xb2", "\xce\x93", "\xcf\x80", "\xce\xa3", "\xcf\x83", "\xc2\xb5", "\xcf\x84", "\xce\xa6", "\xce\xb8", "\xce\xa9", "\xce\xb4", "\xe2\x88\xae", "\xcf\x86", "\xe2\x88\x88", "\xe2\x88\x8f", "\xe2\x89\xa1", "\xc2\xb1", "\xe2\x89\xa5", "\xe2\x89\xa4", "\xe2\x8c\xa0", "\xe2\x8c\xa1", "\xc3\xb7", "\xe2\x89\x88", "\xc2\xb0", "\xe2\x80\xa2", "\xc2\xb7", "\xe2\x88\x9a", "\xe2\x81\xbf", "\xc2\xb2", "\xc2\xb3", "\xc2\xaf", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a1 => "\xad", 0x000000a2 => "\x9b", 0x000000a3 => "\x9c", 0x000000a5 => "\x9d", 0x000000a7 => "\xdd", 0x000000a8 => "\xb9", 0x000000a9 => "\xbd", 0x000000aa => "\xa6", 0x000000ab => "\xae", 0x000000ac => "\xaa", 0x000000ae => "\xbe", 0x000000af => "\xff", 0x000000b0 => "\xf8", 0x000000b1 => "\xf1", 0x000000b2 => "\xfd", 0x000000b3 => "\xfe", 0x000000b4 => "\xba", 0x000000b5 => "\xe6", 0x000000b6 => "\xbc", 0x000000b7 => "\xfa", 0x000000ba => "\xa7", 0x000000bb => "\xaf", 0x000000bc => "\xac", 0x000000bd => "\xab", 0x000000bf => "\xa8", 0x000000c0 => "\xb6", 0x000000c3 => "\xb7", 0x000000c4 => "\x8e", 0x000000c5 => "\x8f", 0x000000c6 => "\x92", 0x000000c7 => "\x80", 0x000000c9 => "\x90", 0x000000d1 => "\xa5", 0x000000d5 => "\xb8", 0x000000d6 => "\x99", 0x000000d8 => "\xb2", 0x000000dc => "\x9a", 0x000000df => "\x9e", 0x000000e0 => "\x85", 0x000000e1 => "\xa0", 0x000000e2 => "\x83", 0x000000e3 => "\xb0", 0x000000e4 => "\x84", 0x000000e5 => "\x86", 0x000000e6 => "\x91", 0x000000e7 => "\x87", 0x000000e8 => "\x8a", 0x000000e9 => "\x82", 0x000000ea => "\x88", 0x000000eb => "\x89", 0x000000ec => "\x8d", 0x000000ed => "\xa1", 0x000000ee => "\x8c", 0x000000ef => "\x8b", 0x000000f1 => "\xa4", 0x000000f2 => "\x95", 0x000000f3 => "\xa2", 0x000000f4 => "\x93", 0x000000f5 => "\xb1", 0x000000f6 => "\x94", 0x000000f7 => "\xf6", 0x000000f8 => "\xb3", 0x000000f9 => "\x97", 0x000000fa => "\xa3", 0x000000fb => "\x96", 0x000000fc => "\x81", 0x000000ff => "\x98", 0x00000132 => "\xc1", 0x00000133 => "\xc0", 0x00000152 => "\xb5", 0x00000153 => "\xb4", 0x00000192 => "\x9f", 0x00000393 => "\xe2", 0x000003a3 => "\xe4", 0x000003a6 => "\xe8", 0x000003a9 => "\xea", 0x000003b1 => "\xe0", 0x000003b2 => "\xe1", 0x000003b4 => "\xeb", 0x000003b8 => "\xe9", 0x000003c0 => "\xe3", 0x000003c3 => "\xe5", 0x000003c4 => "\xe7", 0x000003c6 => "\xed", 0x000005d0 => "\xc2", 0x000005d1 => "\xc3", 0x000005d2 => "\xc4", 0x000005d3 => "\xc5", 0x000005d4 => "\xc6", 0x000005d5 => "\xc7", 0x000005d6 => "\xc8", 0x000005d7 => "\xc9", 0x000005d8 => "\xca", 0x000005d9 => "\xcb", 0x000005da => "\xd9", 0x000005db => "\xcc", 0x000005dc => "\xcd", 0x000005dd => "\xda", 0x000005de => "\xce", 0x000005df => "\xd8", 0x000005e0 => "\xcf", 0x000005e1 => "\xd0", 0x000005e2 => "\xd1", 0x000005e3 => "\xdb", 0x000005e4 => "\xd2", 0x000005e5 => "\xdc", 0x000005e6 => "\xd3", 0x000005e7 => "\xd4", 0x000005e8 => "\xd5", 0x000005e9 => "\xd6", 0x000005ea => "\xd7", 0x00002020 => "\xbb", 0x00002022 => "\xf9", 0x00002038 => "\xde", 0x0000207f => "\xfc", 0x00002122 => "\xbf", 0x00002208 => "\xee", 0x0000220f => "\xef", 0x0000221a => "\xfb", 0x0000221e => "\xdf", 0x0000222e => "\xec", 0x00002248 => "\xf7", 0x00002261 => "\xf0", 0x00002264 => "\xf3", 0x00002265 => "\xf2", 0x00002310 => "\xa9", 0x00002320 => "\xf4", 0x00002321 => "\xf5", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ATARI_ST - Conversion routines for ATARI-ST =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for ATARI-ST. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.1 source: Guido Flohr Eguido.flohr@cantanea.comE alias ATARIST alias X-ATARIST alias X-ATARI-ST Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 84 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 86 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 8B | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 8C | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 8D | 000000EC | LATIN SMALL LETTER I WITH GRAVE 8E | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 8F | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 90 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 91 | 000000E6 | LATIN SMALL LETTER AE 92 | 000000C6 | LATIN CAPITAL LETTER AE 93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX 94 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 95 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE 96 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX 97 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 98 | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS 99 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 9B | 000000A2 | CENT SIGN 9C | 000000A3 | POUND SIGN 9D | 000000A5 | YEN SIGN 9E | 000000DF | LATIN SMALL LETTER SHARP S 9F | 00000192 | LATIN SMALL LETTER F WITH HOOK A0 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE A1 | 000000ED | LATIN SMALL LETTER I WITH ACUTE A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE A4 | 000000F1 | LATIN SMALL LETTER N WITH TILDE A5 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE A6 | 000000AA | FEMININE ORDINAL INDICATOR A7 | 000000BA | MASCULINE ORDINAL INDICATOR A8 | 000000BF | INVERTED QUESTION MARK A9 | 00002310 | REVERSED NOT SIGN AA | 000000AC | NOT SIGN AB | 000000BD | VULGAR FRACTION ONE HALF AC | 000000BC | VULGAR FRACTION ONE QUARTER AD | 000000A1 | INVERTED EXCLAMATION MARK AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK B0 | 000000E3 | LATIN SMALL LETTER A WITH TILDE B1 | 000000F5 | LATIN SMALL LETTER O WITH TILDE B2 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE B3 | 000000F8 | LATIN SMALL LETTER O WITH STROKE B4 | 00000153 | LATIN SMALL LIGATURE OE B5 | 00000152 | LATIN CAPITAL LIGATURE OE B6 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE B7 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE B8 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE B9 | 000000A8 | DIAERESIS BA | 000000B4 | ACUTE ACCENT BB | 00002020 | DAGGER BC | 000000B6 | PILCROW SIGN BD | 000000A9 | COPYRIGHT SIGN BE | 000000AE | REGISTERED SIGN BF | 00002122 | TRADE MARK SIGN C0 | 00000133 | LATIN SMALL LIGATURE IJ C1 | 00000132 | LATIN CAPITAL LIGATURE IJ C2 | 000005D0 | HEBREW LETTER ALEF C3 | 000005D1 | HEBREW LETTER BET C4 | 000005D2 | HEBREW LETTER GIMEL C5 | 000005D3 | HEBREW LETTER DALET C6 | 000005D4 | HEBREW LETTER HE C7 | 000005D5 | HEBREW LETTER VAV C8 | 000005D6 | HEBREW LETTER ZAYIN C9 | 000005D7 | HEBREW LETTER HET CA | 000005D8 | HEBREW LETTER TET CB | 000005D9 | HEBREW LETTER YOD CC | 000005DB | HEBREW LETTER KAF CD | 000005DC | HEBREW LETTER LAMED CE | 000005DE | HEBREW LETTER MEM CF | 000005E0 | HEBREW LETTER NUN D0 | 000005E1 | HEBREW LETTER SAMEKH D1 | 000005E2 | HEBREW LETTER AYIN D2 | 000005E4 | HEBREW LETTER PE D3 | 000005E6 | HEBREW LETTER TSADI D4 | 000005E7 | HEBREW LETTER QOF D5 | 000005E8 | HEBREW LETTER RESH D6 | 000005E9 | HEBREW LETTER SHIN D7 | 000005EA | HEBREW LETTER TAV D8 | 000005DF | HEBREW LETTER FINAL NUN D9 | 000005DA | HEBREW LETTER FINAL KAF DA | 000005DD | HEBREW LETTER FINAL MEM DB | 000005E3 | HEBREW LETTER FINAL PE DC | 000005E5 | HEBREW LETTER FINAL TSADI DD | 000000A7 | SECTION SIGN DE | 00002038 | CARET DF | 0000221E | INFINITY E0 | 000003B1 | GREEK SMALL LETTER ALPHA E1 | 000003B2 | GREEK SMALL LETTER BETA E2 | 00000393 | GREEK CAPITAL LETTER GAMMA E3 | 000003C0 | GREEK SMALL LETTER PI E4 | 000003A3 | GREEK CAPITAL LETTER SIGMA E5 | 000003C3 | GREEK SMALL LETTER SIGMA E6 | 000000B5 | MICRO SIGN E7 | 000003C4 | GREEK SMALL LETTER TAU E8 | 000003A6 | GREEK CAPITAL LETTER PHI E9 | 000003B8 | GREEK SMALL LETTER THETA EA | 000003A9 | GREEK CAPITAL LETTER OMEGA EB | 000003B4 | GREEK SMALL LETTER DELTA EC | 0000222E | CONTOUR INTEGRAL ED | 000003C6 | GREEK SMALL LETTER PHI EE | 00002208 | ELEMENT OF EF | 0000220F | N-ARY PRODUCT F0 | 00002261 | IDENTICAL TO F1 | 000000B1 | PLUS-MINUS SIGN F2 | 00002265 | GREATER-THAN OR EQUAL TO F3 | 00002264 | LESS-THAN OR EQUAL TO F4 | 00002320 | TOP HALF INTEGRAL F5 | 00002321 | BOTTOM HALF INTEGRAL F6 | 000000F7 | DIVISION SIGN F7 | 00002248 | ALMOST EQUAL TO F8 | 000000B0 | DEGREE SIGN F9 | 00002022 | BULLET FA | 000000B7 | MIDDLE DOT FB | 0000221A | SQUARE ROOT FC | 0000207F | SUPERSCRIPT LATIN SMALL LETTER N FD | 000000B2 | SUPERSCRIPT TWO FE | 000000B3 | SUPERSCRIPT THREE FF | 000000AF | MACRON =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]CRff(g(gRecodeData/DEC_MCS.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for DEC-MCS. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::DEC_MCS; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0xfffd, 0x00a1, 0x00a2, 0x00a3, 0xfffd, 0x00a5, 0xfffd, 0x00a7, 0x00a4, 0x00a9, 0x00aa, 0x00ab, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0xfffd, 0x00b5, 0x00b6, 0x00b7, 0xfffd, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0xfffd, 0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0xfffd, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x0152, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0178, 0xfffd, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0xfffd, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x0153, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00ff, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\xc2\x85", "\xc2\x86", "\xc2\x87", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\xc2\x8d", "\xc2\x8e", "\xc2\x8f", "\xc2\x90", "\xc2\x91", "\xc2\x92", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\xc2\x97", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\xc2\x9c", "\xc2\x9d", "\xc2\x9e", "\xc2\x9f", "\xef\xbf\xbd", "\xc2\xa1", "\xc2\xa2", "\xc2\xa3", "\xef\xbf\xbd", "\xc2\xa5", "\xef\xbf\xbd", "\xc2\xa7", "\xc2\xa4", "\xc2\xa9", "\xc2\xaa", "\xc2\xab", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xb0", "\xc2\xb1", "\xc2\xb2", "\xc2\xb3", "\xef\xbf\xbd", "\xc2\xb5", "\xc2\xb6", "\xc2\xb7", "\xef\xbf\xbd", "\xc2\xb9", "\xc2\xba", "\xc2\xbb", "\xc2\xbc", "\xc2\xbd", "\xef\xbf\xbd", "\xc2\xbf", "\xc3\x80", "\xc3\x81", "\xc3\x82", "\xc3\x83", "\xc3\x84", "\xc3\x85", "\xc3\x86", "\xc3\x87", "\xc3\x88", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x8c", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xef\xbf\xbd", "\xc3\x91", "\xc3\x92", "\xc3\x93", "\xc3\x94", "\xc3\x95", "\xc3\x96", "\xc5\x92", "\xc3\x98", "\xc3\x99", "\xc3\x9a", "\xc3\x9b", "\xc3\x9c", "\xc5\xb8", "\xef\xbf\xbd", "\xc3\x9f", "\xc3\xa0", "\xc3\xa1", "\xc3\xa2", "\xc3\xa3", "\xc3\xa4", "\xc3\xa5", "\xc3\xa6", "\xc3\xa7", "\xc3\xa8", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xac", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xef\xbf\xbd", "\xc3\xb1", "\xc3\xb2", "\xc3\xb3", "\xc3\xb4", "\xc3\xb5", "\xc3\xb6", "\xc5\x93", "\xc3\xb8", "\xc3\xb9", "\xc3\xba", "\xc3\xbb", "\xc3\xbc", "\xc3\xbf", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000080 => "\x80", 0x00000081 => "\x81", 0x00000082 => "\x82", 0x00000083 => "\x83", 0x00000084 => "\x84", 0x00000085 => "\x85", 0x00000086 => "\x86", 0x00000087 => "\x87", 0x00000088 => "\x88", 0x00000089 => "\x89", 0x0000008a => "\x8a", 0x0000008b => "\x8b", 0x0000008c => "\x8c", 0x0000008d => "\x8d", 0x0000008e => "\x8e", 0x0000008f => "\x8f", 0x00000090 => "\x90", 0x00000091 => "\x91", 0x00000092 => "\x92", 0x00000093 => "\x93", 0x00000094 => "\x94", 0x00000095 => "\x95", 0x00000096 => "\x96", 0x00000097 => "\x97", 0x00000098 => "\x98", 0x00000099 => "\x99", 0x0000009a => "\x9a", 0x0000009b => "\x9b", 0x0000009c => "\x9c", 0x0000009d => "\x9d", 0x0000009e => "\x9e", 0x0000009f => "\x9f", 0x000000a1 => "\xa1", 0x000000a2 => "\xa2", 0x000000a3 => "\xa3", 0x000000a4 => "\xa8", 0x000000a5 => "\xa5", 0x000000a7 => "\xa7", 0x000000a9 => "\xa9", 0x000000aa => "\xaa", 0x000000ab => "\xab", 0x000000b0 => "\xb0", 0x000000b1 => "\xb1", 0x000000b2 => "\xb2", 0x000000b3 => "\xb3", 0x000000b5 => "\xb5", 0x000000b6 => "\xb6", 0x000000b7 => "\xb7", 0x000000b9 => "\xb9", 0x000000ba => "\xba", 0x000000bb => "\xbb", 0x000000bc => "\xbc", 0x000000bd => "\xbd", 0x000000bf => "\xbf", 0x000000c0 => "\xc0", 0x000000c1 => "\xc1", 0x000000c2 => "\xc2", 0x000000c3 => "\xc3", 0x000000c4 => "\xc4", 0x000000c5 => "\xc5", 0x000000c6 => "\xc6", 0x000000c7 => "\xc7", 0x000000c8 => "\xc8", 0x000000c9 => "\xc9", 0x000000ca => "\xca", 0x000000cb => "\xcb", 0x000000cc => "\xcc", 0x000000cd => "\xcd", 0x000000ce => "\xce", 0x000000cf => "\xcf", 0x000000d1 => "\xd1", 0x000000d2 => "\xd2", 0x000000d3 => "\xd3", 0x000000d4 => "\xd4", 0x000000d5 => "\xd5", 0x000000d6 => "\xd6", 0x000000d8 => "\xd8", 0x000000d9 => "\xd9", 0x000000da => "\xda", 0x000000db => "\xdb", 0x000000dc => "\xdc", 0x000000df => "\xdf", 0x000000e0 => "\xe0", 0x000000e1 => "\xe1", 0x000000e2 => "\xe2", 0x000000e3 => "\xe3", 0x000000e4 => "\xe4", 0x000000e5 => "\xe5", 0x000000e6 => "\xe6", 0x000000e7 => "\xe7", 0x000000e8 => "\xe8", 0x000000e9 => "\xe9", 0x000000ea => "\xea", 0x000000eb => "\xeb", 0x000000ec => "\xec", 0x000000ed => "\xed", 0x000000ee => "\xee", 0x000000ef => "\xef", 0x000000f1 => "\xf1", 0x000000f2 => "\xf2", 0x000000f3 => "\xf3", 0x000000f4 => "\xf4", 0x000000f5 => "\xf5", 0x000000f6 => "\xf6", 0x000000f8 => "\xf8", 0x000000f9 => "\xf9", 0x000000fa => "\xfa", 0x000000fb => "\xfb", 0x000000fc => "\xfc", 0x000000ff => "\xfd", 0x00000152 => "\xd7", 0x00000153 => "\xf7", 0x00000178 => "\xdd", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::DEC_MCS - Conversion routines for DEC_MCS =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for DEC-MCS. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 VAX/VMS User's Manual, Order Number: AI-Y517A-TE, April 1986. alias DEC Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000080 | PADDING CHARACTER (PAD) 81 | 00000081 | HIGH OCTET PRESET (HOP) 82 | 00000082 | BREAK PERMITTED HERE (BPH) 83 | 00000083 | NO BREAK HERE (NBH) 84 | 00000084 | INDEX (IND) 85 | 00000085 | NEXT LINE (NEL) 86 | 00000086 | START OF SELECTED AREA (SSA) 87 | 00000087 | END OF SELECTED AREA (ESA) 88 | 00000088 | CHARACTER TABULATION SET (HTS) 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 8A | 0000008A | LINE TABULATION SET (VTS) 8B | 0000008B | PARTIAL LINE FORWARD (PLD) 8C | 0000008C | PARTIAL LINE BACKWARD (PLU) 8D | 0000008D | REVERSE LINE FEED (RI) 8E | 0000008E | SINGLE-SHIFT TWO (SS2) 8F | 0000008F | SINGLE-SHIFT THREE (SS3) 90 | 00000090 | DEVICE CONTROL STRING (DCS) 91 | 00000091 | PRIVATE USE ONE (PU1) 92 | 00000092 | PRIVATE USE TWO (PU2) 93 | 00000093 | SET TRANSMIT STATE (STS) 94 | 00000094 | CANCEL CHARACTER (CCH) 95 | 00000095 | MESSAGE WAITING (MW) 96 | 00000096 | START OF GUARDED AREA (SPA) 97 | 00000097 | END OF GUARDED AREA (EPA) 98 | 00000098 | START OF STRING (SOS) 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 9C | 0000009C | STRING TERMINATOR (ST) 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC) 9E | 0000009E | PRIVACY MESSAGE (PM) 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC) A1 | 000000A1 | INVERTED EXCLAMATION MARK A2 | 000000A2 | CENT SIGN A3 | 000000A3 | POUND SIGN A5 | 000000A5 | YEN SIGN A7 | 000000A7 | SECTION SIGN A8 | 000000A4 | CURRENCY SIGN A9 | 000000A9 | COPYRIGHT SIGN AA | 000000AA | FEMININE ORDINAL INDICATOR AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK B0 | 000000B0 | DEGREE SIGN B1 | 000000B1 | PLUS-MINUS SIGN B2 | 000000B2 | SUPERSCRIPT TWO B3 | 000000B3 | SUPERSCRIPT THREE B5 | 000000B5 | MICRO SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000B7 | MIDDLE DOT B9 | 000000B9 | SUPERSCRIPT ONE BA | 000000BA | MASCULINE ORDINAL INDICATOR BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK BC | 000000BC | VULGAR FRACTION ONE QUARTER BD | 000000BD | VULGAR FRACTION ONE HALF BF | 000000BF | INVERTED QUESTION MARK C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE C6 | 000000C6 | LATIN CAPITAL LETTER AE C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS D1 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS D7 | 00000152 | LATIN CAPITAL LIGATURE OE D8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS DD | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS DF | 000000DF | LATIN SMALL LETTER SHARP S (German) E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE E6 | 000000E6 | LATIN SMALL LETTER AE E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS F7 | 00000153 | LATIN SMALL LIGATURE OE F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS FD | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]7$P$PRecodeData/EBCDIC_ES_S.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for EBCDIC-ES-S. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::EBCDIC_ES_S; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00f1, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0060, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x0022, 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x005c, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa2", "\x2e", "\x3c", "\x28", "\x2b", "\x7c", "\x26", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x21", "\x24", "\x2a", "\x29", "\x3b", "\xc2\xac", "\x2d", "\x2f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xb1", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x60", "\x3a", "\xc3\x91", "\x40", "\x27", "\x3d", "\x22", "\xef\xbf\xbd", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa8", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x7b", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x7d", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x5c", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x5a", 0x00000022 => "\x7f", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\x7c", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005c => "\xe0", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\xc0", 0x0000007c => "\x4f", 0x0000007d => "\xd0", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a2 => "\x4a", 0x000000a8 => "\xa1", 0x000000ac => "\x5f", 0x000000d1 => "\x7b", 0x000000f1 => "\x6a", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::EBCDIC_ES_S - Conversion routines for EBCDIC_ES_S =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for EBCDIC-ES-S. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 4A | 000000A2 | CENT SIGN 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 0000007C | VERTICAL LINE 50 | 00000026 | AMPERSAND 5A | 00000021 | EXCLAMATION MARK 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 000000AC | NOT SIGN 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 6A | 000000F1 | LATIN SMALL LETTER N WITH TILDE 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 7C | 00000040 | COMMERCIAL AT 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R A1 | 000000A8 | DIAERESIS A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z C0 | 0000007B | LEFT CURLY BRACKET C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I D0 | 0000007D | RIGHT CURLY BRACKET D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R E0 | 0000005C | REVERSE SOLIDUS E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]TjggRecodeData/MACTHAI.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for MACTHAI. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::MACTHAI; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00ab, 0x00bb, 0x2026, 0xf88c, 0xf88f, 0xf892, 0xf895, 0xf898, 0xf88b, 0xf88e, 0xf891, 0xf894, 0xf897, 0x201c, 0x201d, 0xf899, 0xfffd, 0x2022, 0xf884, 0xf889, 0xf885, 0xf886, 0xf887, 0xf888, 0xf88a, 0xf88d, 0xf890, 0xf893, 0xf896, 0x2018, 0x2019, 0xfffd, 0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f, 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17, 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f, 0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, 0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f, 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37, 0x0e38, 0x0e39, 0x0e3a, 0xfeff, 0x200b, 0x2013, 0x2014, 0x0e3f, 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47, 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x2122, 0x0e4f, 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, 0x0e58, 0x0e59, 0x00ae, 0x00a9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\xab", "\xc2\xbb", "\xe2\x80\xa6", "\xef\xa2\x8c", "\xef\xa2\x8f", "\xef\xa2\x92", "\xef\xa2\x95", "\xef\xa2\x98", "\xef\xa2\x8b", "\xef\xa2\x8e", "\xef\xa2\x91", "\xef\xa2\x94", "\xef\xa2\x97", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xef\xa2\x99", "\xef\xbf\xbd", "\xe2\x80\xa2", "\xef\xa2\x84", "\xef\xa2\x89", "\xef\xa2\x85", "\xef\xa2\x86", "\xef\xa2\x87", "\xef\xa2\x88", "\xef\xa2\x8a", "\xef\xa2\x8d", "\xef\xa2\x90", "\xef\xa2\x93", "\xef\xa2\x96", "\xe2\x80\x98", "\xe2\x80\x99", "\xef\xbf\xbd", "\xc2\xa0", "\xe0\xb8\x81", "\xe0\xb8\x82", "\xe0\xb8\x83", "\xe0\xb8\x84", "\xe0\xb8\x85", "\xe0\xb8\x86", "\xe0\xb8\x87", "\xe0\xb8\x88", "\xe0\xb8\x89", "\xe0\xb8\x8a", "\xe0\xb8\x8b", "\xe0\xb8\x8c", "\xe0\xb8\x8d", "\xe0\xb8\x8e", "\xe0\xb8\x8f", "\xe0\xb8\x90", "\xe0\xb8\x91", "\xe0\xb8\x92", "\xe0\xb8\x93", "\xe0\xb8\x94", "\xe0\xb8\x95", "\xe0\xb8\x96", "\xe0\xb8\x97", "\xe0\xb8\x98", "\xe0\xb8\x99", "\xe0\xb8\x9a", "\xe0\xb8\x9b", "\xe0\xb8\x9c", "\xe0\xb8\x9d", "\xe0\xb8\x9e", "\xe0\xb8\x9f", "\xe0\xb8\xa0", "\xe0\xb8\xa1", "\xe0\xb8\xa2", "\xe0\xb8\xa3", "\xe0\xb8\xa4", "\xe0\xb8\xa5", "\xe0\xb8\xa6", "\xe0\xb8\xa7", "\xe0\xb8\xa8", "\xe0\xb8\xa9", "\xe0\xb8\xaa", "\xe0\xb8\xab", "\xe0\xb8\xac", "\xe0\xb8\xad", "\xe0\xb8\xae", "\xe0\xb8\xaf", "\xe0\xb8\xb0", "\xe0\xb8\xb1", "\xe0\xb8\xb2", "\xe0\xb8\xb3", "\xe0\xb8\xb4", "\xe0\xb8\xb5", "\xe0\xb8\xb6", "\xe0\xb8\xb7", "\xe0\xb8\xb8", "\xe0\xb8\xb9", "\xe0\xb8\xba", "\xef\xbb\xbf", "\xe2\x80\x8b", "\xe2\x80\x93", "\xe2\x80\x94", "\xe0\xb8\xbf", "\xe0\xb9\x80", "\xe0\xb9\x81", "\xe0\xb9\x82", "\xe0\xb9\x83", "\xe0\xb9\x84", "\xe0\xb9\x85", "\xe0\xb9\x86", "\xe0\xb9\x87", "\xe0\xb9\x88", "\xe0\xb9\x89", "\xe0\xb9\x8a", "\xe0\xb9\x8b", "\xe0\xb9\x8c", "\xe0\xb9\x8d", "\xe2\x84\xa2", "\xe0\xb9\x8f", "\xe0\xb9\x90", "\xe0\xb9\x91", "\xe0\xb9\x92", "\xe0\xb9\x93", "\xe0\xb9\x94", "\xe0\xb9\x95", "\xe0\xb9\x96", "\xe0\xb9\x97", "\xe0\xb9\x98", "\xe0\xb9\x99", "\xc2\xae", "\xc2\xa9", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xa0", 0x000000a9 => "\xfb", 0x000000ab => "\x80", 0x000000ae => "\xfa", 0x000000bb => "\x81", 0x00000e01 => "\xa1", 0x00000e02 => "\xa2", 0x00000e03 => "\xa3", 0x00000e04 => "\xa4", 0x00000e05 => "\xa5", 0x00000e06 => "\xa6", 0x00000e07 => "\xa7", 0x00000e08 => "\xa8", 0x00000e09 => "\xa9", 0x00000e0a => "\xaa", 0x00000e0b => "\xab", 0x00000e0c => "\xac", 0x00000e0d => "\xad", 0x00000e0e => "\xae", 0x00000e0f => "\xaf", 0x00000e10 => "\xb0", 0x00000e11 => "\xb1", 0x00000e12 => "\xb2", 0x00000e13 => "\xb3", 0x00000e14 => "\xb4", 0x00000e15 => "\xb5", 0x00000e16 => "\xb6", 0x00000e17 => "\xb7", 0x00000e18 => "\xb8", 0x00000e19 => "\xb9", 0x00000e1a => "\xba", 0x00000e1b => "\xbb", 0x00000e1c => "\xbc", 0x00000e1d => "\xbd", 0x00000e1e => "\xbe", 0x00000e1f => "\xbf", 0x00000e20 => "\xc0", 0x00000e21 => "\xc1", 0x00000e22 => "\xc2", 0x00000e23 => "\xc3", 0x00000e24 => "\xc4", 0x00000e25 => "\xc5", 0x00000e26 => "\xc6", 0x00000e27 => "\xc7", 0x00000e28 => "\xc8", 0x00000e29 => "\xc9", 0x00000e2a => "\xca", 0x00000e2b => "\xcb", 0x00000e2c => "\xcc", 0x00000e2d => "\xcd", 0x00000e2e => "\xce", 0x00000e2f => "\xcf", 0x00000e30 => "\xd0", 0x00000e31 => "\xd1", 0x00000e32 => "\xd2", 0x00000e33 => "\xd3", 0x00000e34 => "\xd4", 0x00000e35 => "\xd5", 0x00000e36 => "\xd6", 0x00000e37 => "\xd7", 0x00000e38 => "\xd8", 0x00000e39 => "\xd9", 0x00000e3a => "\xda", 0x00000e3f => "\xdf", 0x00000e40 => "\xe0", 0x00000e41 => "\xe1", 0x00000e42 => "\xe2", 0x00000e43 => "\xe3", 0x00000e44 => "\xe4", 0x00000e45 => "\xe5", 0x00000e46 => "\xe6", 0x00000e47 => "\xe7", 0x00000e48 => "\xe8", 0x00000e49 => "\xe9", 0x00000e4a => "\xea", 0x00000e4b => "\xeb", 0x00000e4c => "\xec", 0x00000e4d => "\xed", 0x00000e4f => "\xef", 0x00000e50 => "\xf0", 0x00000e51 => "\xf1", 0x00000e52 => "\xf2", 0x00000e53 => "\xf3", 0x00000e54 => "\xf4", 0x00000e55 => "\xf5", 0x00000e56 => "\xf6", 0x00000e57 => "\xf7", 0x00000e58 => "\xf8", 0x00000e59 => "\xf9", 0x0000200b => "\xdc", 0x00002013 => "\xdd", 0x00002014 => "\xde", 0x00002018 => "\x9d", 0x00002019 => "\x9e", 0x0000201c => "\x8d", 0x0000201d => "\x8e", 0x00002022 => "\x91", 0x00002026 => "\x82", 0x00002122 => "\xee", 0x0000f884 => "\x92", 0x0000f885 => "\x94", 0x0000f886 => "\x95", 0x0000f887 => "\x96", 0x0000f888 => "\x97", 0x0000f889 => "\x93", 0x0000f88a => "\x98", 0x0000f88b => "\x88", 0x0000f88c => "\x83", 0x0000f88d => "\x99", 0x0000f88e => "\x89", 0x0000f88f => "\x84", 0x0000f890 => "\x9a", 0x0000f891 => "\x8a", 0x0000f892 => "\x85", 0x0000f893 => "\x9b", 0x0000f894 => "\x8b", 0x0000f895 => "\x86", 0x0000f896 => "\x9c", 0x0000f897 => "\x8c", 0x0000f898 => "\x87", 0x0000f899 => "\x8f", 0x0000feff => "\xdb", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::MACTHAI - Conversion routines for MACTHAI =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for MACTHAI. =head1 COMMENTS The following comments have been extracted from the original charmap: This charmap has been generated automatically from GNU libiconv conversions. Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 81 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 82 | 00002026 | HORIZONTAL ELLIPSIS 83 | 0000F88C | ECJKE 84 | 0000F88F | ECJKE 85 | 0000F892 | ECJKE 86 | 0000F895 | ECJKE 87 | 0000F898 | ECJKE 88 | 0000F88B | ECJKE 89 | 0000F88E | ECJKE 8A | 0000F891 | ECJKE 8B | 0000F894 | ECJKE 8C | 0000F897 | ECJKE 8D | 0000201C | LEFT DOUBLE QUOTATION MARK 8E | 0000201D | RIGHT DOUBLE QUOTATION MARK 8F | 0000F899 | ECJKE 91 | 00002022 | BULLET 92 | 0000F884 | ECJKE 93 | 0000F889 | ECJKE 94 | 0000F885 | ECJKE 95 | 0000F886 | ECJKE 96 | 0000F887 | ECJKE 97 | 0000F888 | ECJKE 98 | 0000F88A | ECJKE 99 | 0000F88D | ECJKE 9A | 0000F890 | ECJKE 9B | 0000F893 | ECJKE 9C | 0000F896 | ECJKE 9D | 00002018 | LEFT SINGLE QUOTATION MARK 9E | 00002019 | RIGHT SINGLE QUOTATION MARK A0 | 000000A0 | NO-BREAK SPACE A1 | 00000E01 | THAI CHARACTER KO KAI A2 | 00000E02 | THAI CHARACTER KHO KHAI A3 | 00000E03 | THAI CHARACTER KHO KHUAT A4 | 00000E04 | THAI CHARACTER KHO KHWAI A5 | 00000E05 | THAI CHARACTER KHO KHON A6 | 00000E06 | THAI CHARACTER KHO RAKHANG A7 | 00000E07 | THAI CHARACTER NGO NGU A8 | 00000E08 | THAI CHARACTER CHO CHAN A9 | 00000E09 | THAI CHARACTER CHO CHING AA | 00000E0A | THAI CHARACTER CHO CHANG AB | 00000E0B | THAI CHARACTER SO SO AC | 00000E0C | THAI CHARACTER CHO CHOE AD | 00000E0D | THAI CHARACTER YO YING AE | 00000E0E | THAI CHARACTER DO CHADA AF | 00000E0F | THAI CHARACTER TO PATAK B0 | 00000E10 | THAI CHARACTER THO THAN B1 | 00000E11 | THAI CHARACTER THO NANGMONTHO B2 | 00000E12 | THAI CHARACTER THO PHUTHAO B3 | 00000E13 | THAI CHARACTER NO NEN B4 | 00000E14 | THAI CHARACTER DO DEK B5 | 00000E15 | THAI CHARACTER TO TAO B6 | 00000E16 | THAI CHARACTER THO THUNG B7 | 00000E17 | THAI CHARACTER THO THAHAN B8 | 00000E18 | THAI CHARACTER THO THONG B9 | 00000E19 | THAI CHARACTER NO NU BA | 00000E1A | THAI CHARACTER BO BAIMAI BB | 00000E1B | THAI CHARACTER PO PLA BC | 00000E1C | THAI CHARACTER PHO PHUNG BD | 00000E1D | THAI CHARACTER FO FA BE | 00000E1E | THAI CHARACTER PHO PHAN BF | 00000E1F | THAI CHARACTER FO FAN C0 | 00000E20 | THAI CHARACTER PHO SAMPHAO C1 | 00000E21 | THAI CHARACTER MO MA C2 | 00000E22 | THAI CHARACTER YO YAK C3 | 00000E23 | THAI CHARACTER RO RUA C4 | 00000E24 | THAI CHARACTER RU C5 | 00000E25 | THAI CHARACTER LO LING C6 | 00000E26 | THAI CHARACTER LU C7 | 00000E27 | THAI CHARACTER WO WAEN C8 | 00000E28 | THAI CHARACTER SO SALA C9 | 00000E29 | THAI CHARACTER SO RUSI CA | 00000E2A | THAI CHARACTER SO SUA CB | 00000E2B | THAI CHARACTER HO HIP CC | 00000E2C | THAI CHARACTER LO CHULA CD | 00000E2D | THAI CHARACTER O ANG CE | 00000E2E | THAI CHARACTER HO NOKHUK CF | 00000E2F | THAI CHARACTER PAIYANNOI D0 | 00000E30 | THAI CHARACTER SARA A D1 | 00000E31 | THAI CHARACTER MAI HAN-AKAT D2 | 00000E32 | THAI CHARACTER SARA AA D3 | 00000E33 | THAI CHARACTER SARA AM D4 | 00000E34 | THAI CHARACTER SARA I D5 | 00000E35 | THAI CHARACTER SARA II D6 | 00000E36 | THAI CHARACTER SARA UE D7 | 00000E37 | THAI CHARACTER SARA UEE D8 | 00000E38 | THAI CHARACTER SARA U D9 | 00000E39 | THAI CHARACTER SARA UU DA | 00000E3A | THAI CHARACTER PHINTHU DB | 0000FEFF | ZERO WIDTH NO-BREAK SPACE DC | 0000200B | ZERO WIDTH SPACE DD | 00002013 | EN DASH DE | 00002014 | EM DASH DF | 00000E3F | THAI CURRENCY SYMBOL BAHT E0 | 00000E40 | THAI CHARACTER SARA E E1 | 00000E41 | THAI CHARACTER SARA AE E2 | 00000E42 | THAI CHARACTER SARA O E3 | 00000E43 | THAI CHARACTER SARA AI MAIMUAN E4 | 00000E44 | THAI CHARACTER SARA AI MAIMALAI E5 | 00000E45 | THAI CHARACTER LAKKHANGYAO E6 | 00000E46 | THAI CHARACTER MAIYAMOK E7 | 00000E47 | THAI CHARACTER MAITAIKHU E8 | 00000E48 | THAI CHARACTER MAI EK E9 | 00000E49 | THAI CHARACTER MAI THO EA | 00000E4A | THAI CHARACTER MAI TRI EB | 00000E4B | THAI CHARACTER MAI CHATTAWA EC | 00000E4C | THAI CHARACTER THANTHAKHAT ED | 00000E4D | THAI CHARACTER NIKHAHIT EE | 00002122 | TRADE MARK SIGN EF | 00000E4F | THAI CHARACTER FONGMAN F0 | 00000E50 | THAI DIGIT ZERO F1 | 00000E51 | THAI DIGIT ONE F2 | 00000E52 | THAI DIGIT TWO F3 | 00000E53 | THAI DIGIT THREE F4 | 00000E54 | THAI DIGIT FOUR F5 | 00000E55 | THAI DIGIT FIVE F6 | 00000E56 | THAI DIGIT SIX F7 | 00000E57 | THAI DIGIT SEVEN F8 | 00000E58 | THAI DIGIT EIGHT F9 | 00000E59 | THAI DIGIT NINE FA | 000000AE | REGISTERED SIGN FB | 000000A9 | COPYRIGHT SIGN =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]eOORecodeData/EBCDIC_AT_DE_A.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for EBCDIC-AT-DE-A. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::EBCDIC_AT_DE_A; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00f6, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00fc, 0x00dc, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00df, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x00e4, 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xb6", "\x2e", "\x3c", "\x28", "\x2b", "\x7c", "\x26", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xbc", "\xc3\x9c", "\x2a", "\x29", "\x3b", "\xc2\xac", "\x2d", "\x2f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\x9f", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x3a", "\xc3\x84", "\xc3\x96", "\x27", "\x3d", "\xc3\xa4", "\xef\xbf\xbd", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005f => "\x6d", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007c => "\x4f", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000ac => "\x5f", 0x000000c4 => "\x7b", 0x000000d6 => "\x7c", 0x000000dc => "\x5b", 0x000000df => "\x6a", 0x000000e4 => "\x7f", 0x000000f6 => "\x4a", 0x000000fc => "\x5a", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::EBCDIC_AT_DE_A - Conversion routines for EBCDIC_AT_DE_A =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for EBCDIC-AT-DE-A. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 4A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 0000007C | VERTICAL LINE 50 | 00000026 | AMPERSAND 5A | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS 5B | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 000000AC | NOT SIGN 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 6A | 000000DF | LATIN SMALL LETTER SHARP S (German) 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 7A | 0000003A | COLON 7B | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 7C | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]x=j=jRecodeData/MACCROATIAN.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for MACCROATIAN. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::MACCROATIAN; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, 0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, 0x00ae, 0x0160, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x017d, 0x00d8, 0x221e, 0x00b1, 0x2264, 0x2265, 0x2206, 0x00b5, 0x2202, 0x2211, 0x220f, 0x0161, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x017e, 0x00f8, 0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x0106, 0x00ab, 0x010c, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153, 0x0110, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, 0xfffd, 0x00a9, 0x2044, 0x00a4, 0x2039, 0x203a, 0x00c6, 0x00bb, 0x2013, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x0107, 0x00c1, 0x010d, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4, 0x0111, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc, 0x00af, 0x03c0, 0x00cb, 0x02da, 0x00b8, 0x00ca, 0x00e6, 0x02c7, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc3\x84", "\xc3\x85", "\xc3\x87", "\xc3\x89", "\xc3\x91", "\xc3\x96", "\xc3\x9c", "\xc3\xa1", "\xc3\xa0", "\xc3\xa2", "\xc3\xa4", "\xc3\xa3", "\xc3\xa5", "\xc3\xa7", "\xc3\xa9", "\xc3\xa8", "\xc3\xaa", "\xc3\xab", "\xc3\xad", "\xc3\xac", "\xc3\xae", "\xc3\xaf", "\xc3\xb1", "\xc3\xb3", "\xc3\xb2", "\xc3\xb4", "\xc3\xb6", "\xc3\xb5", "\xc3\xba", "\xc3\xb9", "\xc3\xbb", "\xc3\xbc", "\xe2\x80\xa0", "\xc2\xb0", "\xc2\xa2", "\xc2\xa3", "\xc2\xa7", "\xe2\x80\xa2", "\xc2\xb6", "\xc3\x9f", "\xc2\xae", "\xc5\xa0", "\xe2\x84\xa2", "\xc2\xb4", "\xc2\xa8", "\xe2\x89\xa0", "\xc5\xbd", "\xc3\x98", "\xe2\x88\x9e", "\xc2\xb1", "\xe2\x89\xa4", "\xe2\x89\xa5", "\xe2\x88\x86", "\xc2\xb5", "\xe2\x88\x82", "\xe2\x88\x91", "\xe2\x88\x8f", "\xc5\xa1", "\xe2\x88\xab", "\xc2\xaa", "\xc2\xba", "\xe2\x84\xa6", "\xc5\xbe", "\xc3\xb8", "\xc2\xbf", "\xc2\xa1", "\xc2\xac", "\xe2\x88\x9a", "\xc6\x92", "\xe2\x89\x88", "\xc4\x86", "\xc2\xab", "\xc4\x8c", "\xe2\x80\xa6", "\xc2\xa0", "\xc3\x80", "\xc3\x83", "\xc3\x95", "\xc5\x92", "\xc5\x93", "\xc4\x90", "\xe2\x80\x94", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x98", "\xe2\x80\x99", "\xc3\xb7", "\xe2\x97\x8a", "\xef\xbf\xbd", "\xc2\xa9", "\xe2\x81\x84", "\xc2\xa4", "\xe2\x80\xb9", "\xe2\x80\xba", "\xc3\x86", "\xc2\xbb", "\xe2\x80\x93", "\xc2\xb7", "\xe2\x80\x9a", "\xe2\x80\x9e", "\xe2\x80\xb0", "\xc3\x82", "\xc4\x87", "\xc3\x81", "\xc4\x8d", "\xc3\x88", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x8c", "\xc3\x93", "\xc3\x94", "\xc4\x91", "\xc3\x92", "\xc3\x9a", "\xc3\x9b", "\xc3\x99", "\xc4\xb1", "\xcb\x86", "\xcb\x9c", "\xc2\xaf", "\xcf\x80", "\xc3\x8b", "\xcb\x9a", "\xc2\xb8", "\xc3\x8a", "\xc3\xa6", "\xcb\x87", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xca", 0x000000a1 => "\xc1", 0x000000a2 => "\xa2", 0x000000a3 => "\xa3", 0x000000a4 => "\xdb", 0x000000a7 => "\xa4", 0x000000a8 => "\xac", 0x000000a9 => "\xd9", 0x000000aa => "\xbb", 0x000000ab => "\xc7", 0x000000ac => "\xc2", 0x000000ae => "\xa8", 0x000000af => "\xf8", 0x000000b0 => "\xa1", 0x000000b1 => "\xb1", 0x000000b4 => "\xab", 0x000000b5 => "\xb5", 0x000000b6 => "\xa6", 0x000000b7 => "\xe1", 0x000000b8 => "\xfc", 0x000000ba => "\xbc", 0x000000bb => "\xdf", 0x000000bf => "\xc0", 0x000000c0 => "\xcb", 0x000000c1 => "\xe7", 0x000000c2 => "\xe5", 0x000000c3 => "\xcc", 0x000000c4 => "\x80", 0x000000c5 => "\x81", 0x000000c6 => "\xde", 0x000000c7 => "\x82", 0x000000c8 => "\xe9", 0x000000c9 => "\x83", 0x000000ca => "\xfd", 0x000000cb => "\xfa", 0x000000cc => "\xed", 0x000000cd => "\xea", 0x000000ce => "\xeb", 0x000000cf => "\xec", 0x000000d1 => "\x84", 0x000000d2 => "\xf1", 0x000000d3 => "\xee", 0x000000d4 => "\xef", 0x000000d5 => "\xcd", 0x000000d6 => "\x85", 0x000000d8 => "\xaf", 0x000000d9 => "\xf4", 0x000000da => "\xf2", 0x000000db => "\xf3", 0x000000dc => "\x86", 0x000000df => "\xa7", 0x000000e0 => "\x88", 0x000000e1 => "\x87", 0x000000e2 => "\x89", 0x000000e3 => "\x8b", 0x000000e4 => "\x8a", 0x000000e5 => "\x8c", 0x000000e6 => "\xfe", 0x000000e7 => "\x8d", 0x000000e8 => "\x8f", 0x000000e9 => "\x8e", 0x000000ea => "\x90", 0x000000eb => "\x91", 0x000000ec => "\x93", 0x000000ed => "\x92", 0x000000ee => "\x94", 0x000000ef => "\x95", 0x000000f1 => "\x96", 0x000000f2 => "\x98", 0x000000f3 => "\x97", 0x000000f4 => "\x99", 0x000000f5 => "\x9b", 0x000000f6 => "\x9a", 0x000000f7 => "\xd6", 0x000000f8 => "\xbf", 0x000000f9 => "\x9d", 0x000000fa => "\x9c", 0x000000fb => "\x9e", 0x000000fc => "\x9f", 0x00000106 => "\xc6", 0x00000107 => "\xe6", 0x0000010c => "\xc8", 0x0000010d => "\xe8", 0x00000110 => "\xd0", 0x00000111 => "\xf0", 0x00000131 => "\xf5", 0x00000152 => "\xce", 0x00000153 => "\xcf", 0x00000160 => "\xa9", 0x00000161 => "\xb9", 0x0000017d => "\xae", 0x0000017e => "\xbe", 0x00000192 => "\xc4", 0x000002c6 => "\xf6", 0x000002c7 => "\xff", 0x000002da => "\xfb", 0x000002dc => "\xf7", 0x000003c0 => "\xf9", 0x00002013 => "\xe0", 0x00002014 => "\xd1", 0x00002018 => "\xd4", 0x00002019 => "\xd5", 0x0000201a => "\xe2", 0x0000201c => "\xd2", 0x0000201d => "\xd3", 0x0000201e => "\xe3", 0x00002020 => "\xa0", 0x00002022 => "\xa5", 0x00002026 => "\xc9", 0x00002030 => "\xe4", 0x00002039 => "\xdc", 0x0000203a => "\xdd", 0x00002044 => "\xda", 0x00002122 => "\xaa", 0x00002126 => "\xbd", 0x00002202 => "\xb6", 0x00002206 => "\xb4", 0x0000220f => "\xb8", 0x00002211 => "\xb7", 0x0000221a => "\xc3", 0x0000221e => "\xb0", 0x0000222b => "\xba", 0x00002248 => "\xc5", 0x00002260 => "\xad", 0x00002264 => "\xb2", 0x00002265 => "\xb3", 0x000025ca => "\xd7", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::MACCROATIAN - Conversion routines for MACCROATIAN =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for MACCROATIAN. =head1 COMMENTS The following comments have been extracted from the original charmap: This charmap has been generated automatically from GNU libiconv conversions. Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 81 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 82 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 83 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 84 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 85 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 86 | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 87 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 88 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 89 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 8A | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 8B | 000000E3 | LATIN SMALL LETTER A WITH TILDE 8C | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 8D | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 8E | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 8F | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 90 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 91 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 92 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 93 | 000000EC | LATIN SMALL LETTER I WITH GRAVE 94 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 95 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 96 | 000000F1 | LATIN SMALL LETTER N WITH TILDE 97 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE 98 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE 99 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX 9A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 9B | 000000F5 | LATIN SMALL LETTER O WITH TILDE 9C | 000000FA | LATIN SMALL LETTER U WITH ACUTE 9D | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 9E | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX 9F | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS A0 | 00002020 | DAGGER A1 | 000000B0 | DEGREE SIGN A2 | 000000A2 | CENT SIGN A3 | 000000A3 | POUND SIGN A4 | 000000A7 | SECTION SIGN A5 | 00002022 | BULLET A6 | 000000B6 | PILCROW SIGN A7 | 000000DF | LATIN SMALL LETTER SHARP S A8 | 000000AE | REGISTERED SIGN A9 | 00000160 | LATIN CAPITAL LETTER S WITH CARON AA | 00002122 | TRADE MARK SIGN AB | 000000B4 | ACUTE ACCENT AC | 000000A8 | DIAERESIS AD | 00002260 | NOT EQUAL TO AE | 0000017D | LATIN CAPITAL LETTER Z WITH CARON AF | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE B0 | 0000221E | INFINITY B1 | 000000B1 | PLUS-MINUS SIGN B2 | 00002264 | LESS-THAN OR EQUAL TO B3 | 00002265 | GREATER-THAN OR EQUAL TO B4 | 00002206 | INCREMENT B5 | 000000B5 | MICRO SIGN B6 | 00002202 | PARTIAL DIFFERENTIAL B7 | 00002211 | N-ARY SUMMATION B8 | 0000220F | N-ARY PRODUCT B9 | 00000161 | LATIN SMALL LETTER S WITH CARON BA | 0000222B | INTEGRAL BB | 000000AA | FEMININE ORDINAL INDICATOR BC | 000000BA | MASCULINE ORDINAL INDICATOR BD | 00002126 | OHM SIGN BE | 0000017E | LATIN SMALL LETTER Z WITH CARON BF | 000000F8 | LATIN SMALL LETTER O WITH STROKE C0 | 000000BF | INVERTED QUESTION MARK C1 | 000000A1 | INVERTED EXCLAMATION MARK C2 | 000000AC | NOT SIGN C3 | 0000221A | SQUARE ROOT C4 | 00000192 | LATIN SMALL LETTER F WITH HOOK C5 | 00002248 | ALMOST EQUAL TO C6 | 00000106 | LATIN CAPITAL LETTER C WITH ACUTE C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK C8 | 0000010C | LATIN CAPITAL LETTER C WITH CARON C9 | 00002026 | HORIZONTAL ELLIPSIS CA | 000000A0 | NO-BREAK SPACE CB | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE CC | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE CD | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE CE | 00000152 | LATIN CAPITAL LIGATURE OE CF | 00000153 | LATIN SMALL LIGATURE OE D0 | 00000110 | LATIN CAPITAL LETTER D WITH STROKE D1 | 00002014 | EM DASH D2 | 0000201C | LEFT DOUBLE QUOTATION MARK D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK D4 | 00002018 | LEFT SINGLE QUOTATION MARK D5 | 00002019 | RIGHT SINGLE QUOTATION MARK D6 | 000000F7 | DIVISION SIGN D7 | 000025CA | LOZENGE D9 | 000000A9 | COPYRIGHT SIGN DA | 00002044 | FRACTION SLASH DB | 000000A4 | CURRENCY SIGN DC | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK DD | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK DE | 000000C6 | LATIN CAPITAL LETTER AE DF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK E0 | 00002013 | EN DASH E1 | 000000B7 | MIDDLE DOT E2 | 0000201A | SINGLE LOW-9 QUOTATION MARK E3 | 0000201E | DOUBLE LOW-9 QUOTATION MARK E4 | 00002030 | PER MILLE SIGN E5 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX E6 | 00000107 | LATIN SMALL LETTER C WITH ACUTE E7 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE E8 | 0000010D | LATIN SMALL LETTER C WITH CARON E9 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE EA | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE EB | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX EC | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS ED | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE EF | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX F0 | 00000111 | LATIN SMALL LETTER D WITH STROKE F1 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE F2 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE F3 | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX F4 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE F5 | 00000131 | LATIN SMALL LETTER DOTLESS I F6 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT F7 | 000002DC | SMALL TILDE F8 | 000000AF | MACRON F9 | 000003C0 | GREEK SMALL LETTER PI FA | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS FB | 000002DA | RING ABOVE FC | 000000B8 | CEDILLA FD | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX FE | 000000E6 | LATIN SMALL LETTER AE FF | 000002C7 | CARON =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]ihhRecodeData/IBM870.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM870. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM870; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x00a0, 0xfffd, 0x00e4, 0xfffd, 0x00e1, 0x0103, 0x010d, 0x00e7, 0x0107, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0xfffd, 0x00eb, 0x016f, 0x00ed, 0xfffd, 0x013e, 0x013a, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0xfffd, 0x00c4, 0x02dd, 0x00c1, 0xfffd, 0x010c, 0x00c7, 0x0106, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x02c7, 0x00c9, 0xfffd, 0x00cb, 0x016e, 0x00cd, 0xfffd, 0x013d, 0x0139, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x02d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x015b, 0x0148, 0x0111, 0x00fd, 0x0159, 0xfffd, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0142, 0x0144, 0x0161, 0x00b8, 0x02db, 0x00a4, 0x0105, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x015a, 0x0147, 0x0110, 0x00dd, 0x0158, 0xfffd, 0x00b7, 0x0104, 0x017c, 0xfffd, 0x017b, 0x00a7, 0x00b6, 0x017e, 0x017a, 0x017d, 0x0179, 0x0143, 0x0160, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x0155, 0x00f3, 0x0151, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x011a, 0x0171, 0x00fc, 0x0165, 0x00fa, 0x011b, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x010f, 0x00d4, 0x00d6, 0x0154, 0x00d3, 0x0150, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x010e, 0x0170, 0x00dc, 0x0164, 0x00da, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xc2\xa0", "\xef\xbf\xbd", "\xc3\xa4", "\xef\xbf\xbd", "\xc3\xa1", "\xc4\x83", "\xc4\x8d", "\xc3\xa7", "\xc4\x87", "\x5b", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\xc3\xa9", "\xef\xbf\xbd", "\xc3\xab", "\xc5\xaf", "\xc3\xad", "\xef\xbf\xbd", "\xc4\xbe", "\xc4\xba", "\xc3\x9f", "\x5d", "\x24", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xef\xbf\xbd", "\xc3\x84", "\xcb\x9d", "\xc3\x81", "\xef\xbf\xbd", "\xc4\x8c", "\xc3\x87", "\xc4\x86", "\x7c", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xcb\x87", "\xc3\x89", "\xef\xbf\xbd", "\xc3\x8b", "\xc5\xae", "\xc3\x8d", "\xef\xbf\xbd", "\xc4\xbd", "\xc4\xb9", "\x60", "\x3a", "\x23", "\x40", "\x27", "\x3d", "\x22", "\xcb\x98", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xc5\x9b", "\xc5\x88", "\xc4\x91", "\xc3\xbd", "\xc5\x99", "\xef\xbf\xbd", "\xc2\xb0", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xc5\x82", "\xc5\x84", "\xc5\xa1", "\xc2\xb8", "\xcb\x9b", "\xc2\xa4", "\xc4\x85", "\x7e", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xc5\x9a", "\xc5\x87", "\xc4\x90", "\xc3\x9d", "\xc5\x98", "\xef\xbf\xbd", "\xc2\xb7", "\xc4\x84", "\xc5\xbc", "\xef\xbf\xbd", "\xc5\xbb", "\xc2\xa7", "\xc2\xb6", "\xc5\xbe", "\xc5\xba", "\xc5\xbd", "\xc5\xb9", "\xc5\x83", "\xc5\xa0", "\xc2\xa8", "\xc2\xb4", "\xc3\x97", "\x7b", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xc2\xad", "\xc3\xb4", "\xc3\xb6", "\xc5\x95", "\xc3\xb3", "\xc5\x91", "\x7d", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xc4\x9a", "\xc5\xb1", "\xc3\xbc", "\xc5\xa5", "\xc3\xba", "\xc4\x9b", "\x5c", "\xc3\xb7", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xc4\x8f", "\xc3\x94", "\xc3\x96", "\xc5\x94", "\xc3\x93", "\xc5\x90", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xc4\x8e", "\xc5\xb0", "\xc3\x9c", "\xc5\xa4", "\xc3\x9a", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000023 => "\x7b", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\x7c", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\x4a", 0x0000005c => "\xe0", 0x0000005d => "\x5a", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\xc0", 0x0000007c => "\x6a", 0x0000007d => "\xd0", 0x0000007e => "\xa1", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a0 => "\x41", 0x000000a4 => "\x9f", 0x000000a7 => "\xb5", 0x000000a8 => "\xbd", 0x000000ad => "\xca", 0x000000b0 => "\x90", 0x000000b4 => "\xbe", 0x000000b6 => "\xb6", 0x000000b7 => "\xb0", 0x000000b8 => "\x9d", 0x000000c1 => "\x65", 0x000000c4 => "\x63", 0x000000c7 => "\x68", 0x000000c9 => "\x71", 0x000000cb => "\x73", 0x000000cd => "\x75", 0x000000d3 => "\xee", 0x000000d4 => "\xeb", 0x000000d6 => "\xec", 0x000000d7 => "\xbf", 0x000000da => "\xfe", 0x000000dc => "\xfc", 0x000000dd => "\xad", 0x000000df => "\x59", 0x000000e1 => "\x45", 0x000000e4 => "\x43", 0x000000e7 => "\x48", 0x000000e9 => "\x51", 0x000000eb => "\x53", 0x000000ed => "\x55", 0x000000f3 => "\xce", 0x000000f4 => "\xcb", 0x000000f6 => "\xcc", 0x000000f7 => "\xe1", 0x000000fa => "\xde", 0x000000fc => "\xdc", 0x000000fd => "\x8d", 0x00000103 => "\x46", 0x00000104 => "\xb1", 0x00000105 => "\xa0", 0x00000106 => "\x69", 0x00000107 => "\x49", 0x0000010c => "\x67", 0x0000010d => "\x47", 0x0000010e => "\xfa", 0x0000010f => "\xea", 0x00000110 => "\xac", 0x00000111 => "\x8c", 0x0000011a => "\xda", 0x0000011b => "\xdf", 0x00000139 => "\x78", 0x0000013a => "\x58", 0x0000013d => "\x77", 0x0000013e => "\x57", 0x00000142 => "\x9a", 0x00000143 => "\xbb", 0x00000144 => "\x9b", 0x00000147 => "\xab", 0x00000148 => "\x8b", 0x00000150 => "\xef", 0x00000151 => "\xcf", 0x00000154 => "\xed", 0x00000155 => "\xcd", 0x00000158 => "\xae", 0x00000159 => "\x8e", 0x0000015a => "\xaa", 0x0000015b => "\x8a", 0x00000160 => "\xbc", 0x00000161 => "\x9c", 0x00000164 => "\xfd", 0x00000165 => "\xdd", 0x0000016e => "\x74", 0x0000016f => "\x54", 0x00000170 => "\xfb", 0x00000171 => "\xdb", 0x00000179 => "\xba", 0x0000017a => "\xb8", 0x0000017b => "\xb4", 0x0000017c => "\xb2", 0x0000017d => "\xb9", 0x0000017e => "\xb7", 0x000002c7 => "\x70", 0x000002d8 => "\x80", 0x000002db => "\x9e", 0x000002dd => "\x64", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM870 - Conversion routines for IBM870 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM870. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP870 alias EBCDIC-CP-ROECE alias EBCDIC-CP-YU Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 41 | 000000A0 | NO-BREAK SPACE 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 46 | 00000103 | LATIN SMALL LETTER A WITH BREVE 47 | 0000010D | LATIN SMALL LETTER C WITH CARON 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 49 | 00000107 | LATIN SMALL LETTER C WITH ACUTE 4A | 0000005B | LEFT SQUARE BRACKET 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 54 | 0000016F | LATIN SMALL LETTER U WITH RING ABOVE 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 57 | 0000013E | LATIN SMALL LETTER L WITH CARON 58 | 0000013A | LATIN SMALL LETTER L WITH ACUTE 59 | 000000DF | LATIN SMALL LETTER SHARP S (German) 5A | 0000005D | RIGHT SQUARE BRACKET 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 64 | 000002DD | DOUBLE ACUTE ACCENT 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE 67 | 0000010C | LATIN CAPITAL LETTER C WITH CARON 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 69 | 00000106 | LATIN CAPITAL LETTER C WITH ACUTE 6A | 0000007C | VERTICAL LINE 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 70 | 000002C7 | CARON (Mandarin Chinese third tone) 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS 74 | 0000016E | LATIN CAPITAL LETTER U WITH RING ABOVE 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE 77 | 0000013D | LATIN CAPITAL LETTER L WITH CARON 78 | 00000139 | LATIN CAPITAL LETTER L WITH ACUTE 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 00000023 | NUMBER SIGN 7C | 00000040 | COMMERCIAL AT 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 80 | 000002D8 | BREVE 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 8A | 0000015B | LATIN SMALL LETTER S WITH ACUTE 8B | 00000148 | LATIN SMALL LETTER N WITH CARON 8C | 00000111 | LATIN SMALL LETTER D WITH STROKE 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE 8E | 00000159 | LATIN SMALL LETTER R WITH CARON 90 | 000000B0 | DEGREE SIGN 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R 9A | 00000142 | LATIN SMALL LETTER L WITH STROKE 9B | 00000144 | LATIN SMALL LETTER N WITH ACUTE 9C | 00000161 | LATIN SMALL LETTER S WITH CARON 9D | 000000B8 | CEDILLA 9E | 000002DB | OGONEK 9F | 000000A4 | CURRENCY SIGN A0 | 00000105 | LATIN SMALL LETTER A WITH OGONEK A1 | 0000007E | TILDE A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z AA | 0000015A | LATIN CAPITAL LETTER S WITH ACUTE AB | 00000147 | LATIN CAPITAL LETTER N WITH CARON AC | 00000110 | LATIN CAPITAL LETTER D WITH STROKE AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE AE | 00000158 | LATIN CAPITAL LETTER R WITH CARON B0 | 000000B7 | MIDDLE DOT B1 | 00000104 | LATIN CAPITAL LETTER A WITH OGONEK B2 | 0000017C | LATIN SMALL LETTER Z WITH DOT ABOVE B4 | 0000017B | LATIN CAPITAL LETTER Z WITH DOT ABOVE B5 | 000000A7 | SECTION SIGN B6 | 000000B6 | PILCROW SIGN B7 | 0000017E | LATIN SMALL LETTER Z WITH CARON B8 | 0000017A | LATIN SMALL LETTER Z WITH ACUTE B9 | 0000017D | LATIN CAPITAL LETTER Z WITH CARON BA | 00000179 | LATIN CAPITAL LETTER Z WITH ACUTE BB | 00000143 | LATIN CAPITAL LETTER N WITH ACUTE BC | 00000160 | LATIN CAPITAL LETTER S WITH CARON BD | 000000A8 | DIAERESIS BE | 000000B4 | ACUTE ACCENT BF | 000000D7 | MULTIPLICATION SIGN C0 | 0000007B | LEFT CURLY BRACKET C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I CA | 000000AD | SOFT HYPHEN CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX CC | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS CD | 00000155 | LATIN SMALL LETTER R WITH ACUTE CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE CF | 00000151 | LATIN SMALL LETTER O WITH DOUBLE ACUTE D0 | 0000007D | RIGHT CURLY BRACKET D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R DA | 0000011A | LATIN CAPITAL LETTER E WITH CARON DB | 00000171 | LATIN SMALL LETTER U WITH DOUBLE ACUTE DC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS DD | 00000165 | LATIN SMALL LETTER T WITH CARON DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE DF | 0000011B | LATIN SMALL LETTER E WITH CARON E0 | 0000005C | REVERSE SOLIDUS E1 | 000000F7 | DIVISION SIGN E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z EA | 0000010F | LATIN SMALL LETTER D WITH CARON EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX EC | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS ED | 00000154 | LATIN CAPITAL LETTER R WITH ACUTE EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE EF | 00000150 | LATIN CAPITAL LETTER O WITH DOUBLE ACUTE F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FA | 0000010E | LATIN CAPITAL LETTER D WITH CARON FB | 00000170 | LATIN CAPITAL LETTER U WITH DOUBLE ACUTE FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS FD | 00000164 | LATIN CAPITAL LETTER T WITH CARON FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]?kkRecodeData/IBM851.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM851. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM851; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x0386, 0x00e7, 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x0388, 0x00c4, 0x0389, 0x038a, 0xfffd, 0x038c, 0x00f4, 0x00f6, 0x038e, 0x00fb, 0x00f9, 0x038f, 0x00d6, 0x00dc, 0x03ac, 0x00a3, 0x03ad, 0x03ae, 0x03af, 0x03ca, 0x0390, 0x03cc, 0x03cd, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x00bd, 0x0398, 0x0399, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039a, 0x039b, 0x039d, 0x039c, 0x2563, 0x2551, 0x2557, 0x255d, 0x039e, 0x039f, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x03a0, 0x03a1, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03b1, 0x03b2, 0x03b3, 0x2518, 0x250c, 0x2588, 0x2584, 0x03b4, 0x03b5, 0x2580, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c2, 0x03c4, 0x00b4, 0x00ad, 0x00b1, 0x03c5, 0x03c6, 0x03c7, 0x00a7, 0x03c8, 0x02db, 0x00b0, 0x00a8, 0x03c9, 0x03cb, 0x03b0, 0x03ce, 0x25a0, 0x00a0, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc3\x87", "\xc3\xbc", "\xc3\xa9", "\xc3\xa2", "\xc3\xa4", "\xc3\xa0", "\xce\x86", "\xc3\xa7", "\xc3\xaa", "\xc3\xab", "\xc3\xa8", "\xc3\xaf", "\xc3\xae", "\xce\x88", "\xc3\x84", "\xce\x89", "\xce\x8a", "\xef\xbf\xbd", "\xce\x8c", "\xc3\xb4", "\xc3\xb6", "\xce\x8e", "\xc3\xbb", "\xc3\xb9", "\xce\x8f", "\xc3\x96", "\xc3\x9c", "\xce\xac", "\xc2\xa3", "\xce\xad", "\xce\xae", "\xce\xaf", "\xcf\x8a", "\xce\x90", "\xcf\x8c", "\xcf\x8d", "\xce\x91", "\xce\x92", "\xce\x93", "\xce\x94", "\xce\x95", "\xce\x96", "\xce\x97", "\xc2\xbd", "\xce\x98", "\xce\x99", "\xc2\xab", "\xc2\xbb", "\xe2\x96\x91", "\xe2\x96\x92", "\xe2\x96\x93", "\xe2\x94\x82", "\xe2\x94\xa4", "\xce\x9a", "\xce\x9b", "\xce\x9d", "\xce\x9c", "\xe2\x95\xa3", "\xe2\x95\x91", "\xe2\x95\x97", "\xe2\x95\x9d", "\xce\x9e", "\xce\x9f", "\xe2\x94\x90", "\xe2\x94\x94", "\xe2\x94\xb4", "\xe2\x94\xac", "\xe2\x94\x9c", "\xe2\x94\x80", "\xe2\x94\xbc", "\xce\xa0", "\xce\xa1", "\xe2\x95\x9a", "\xe2\x95\x94", "\xe2\x95\xa9", "\xe2\x95\xa6", "\xe2\x95\xa0", "\xe2\x95\x90", "\xe2\x95\xac", "\xce\xa3", "\xce\xa4", "\xce\xa5", "\xce\xa6", "\xce\xa7", "\xce\xa8", "\xce\xa9", "\xce\xb1", "\xce\xb2", "\xce\xb3", "\xe2\x94\x98", "\xe2\x94\x8c", "\xe2\x96\x88", "\xe2\x96\x84", "\xce\xb4", "\xce\xb5", "\xe2\x96\x80", "\xce\xb6", "\xce\xb7", "\xce\xb8", "\xce\xb9", "\xce\xba", "\xce\xbb", "\xce\xbc", "\xce\xbd", "\xce\xbe", "\xce\xbf", "\xcf\x80", "\xcf\x81", "\xcf\x83", "\xcf\x82", "\xcf\x84", "\xc2\xb4", "\xc2\xad", "\xc2\xb1", "\xcf\x85", "\xcf\x86", "\xcf\x87", "\xc2\xa7", "\xcf\x88", "\xcb\x9b", "\xc2\xb0", "\xc2\xa8", "\xcf\x89", "\xcf\x8b", "\xce\xb0", "\xcf\x8e", "\xe2\x96\xa0", "\xc2\xa0", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xff", 0x000000a3 => "\x9c", 0x000000a7 => "\xf5", 0x000000a8 => "\xf9", 0x000000ab => "\xae", 0x000000ad => "\xf0", 0x000000b0 => "\xf8", 0x000000b1 => "\xf1", 0x000000b4 => "\xef", 0x000000bb => "\xaf", 0x000000bd => "\xab", 0x000000c4 => "\x8e", 0x000000c7 => "\x80", 0x000000d6 => "\x99", 0x000000dc => "\x9a", 0x000000e0 => "\x85", 0x000000e2 => "\x83", 0x000000e4 => "\x84", 0x000000e7 => "\x87", 0x000000e8 => "\x8a", 0x000000e9 => "\x82", 0x000000ea => "\x88", 0x000000eb => "\x89", 0x000000ee => "\x8c", 0x000000ef => "\x8b", 0x000000f4 => "\x93", 0x000000f6 => "\x94", 0x000000f9 => "\x97", 0x000000fb => "\x96", 0x000000fc => "\x81", 0x000002db => "\xf7", 0x00000386 => "\x86", 0x00000388 => "\x8d", 0x00000389 => "\x8f", 0x0000038a => "\x90", 0x0000038c => "\x92", 0x0000038e => "\x95", 0x0000038f => "\x98", 0x00000390 => "\xa1", 0x00000391 => "\xa4", 0x00000392 => "\xa5", 0x00000393 => "\xa6", 0x00000394 => "\xa7", 0x00000395 => "\xa8", 0x00000396 => "\xa9", 0x00000397 => "\xaa", 0x00000398 => "\xac", 0x00000399 => "\xad", 0x0000039a => "\xb5", 0x0000039b => "\xb6", 0x0000039c => "\xb8", 0x0000039d => "\xb7", 0x0000039e => "\xbd", 0x0000039f => "\xbe", 0x000003a0 => "\xc6", 0x000003a1 => "\xc7", 0x000003a3 => "\xcf", 0x000003a4 => "\xd0", 0x000003a5 => "\xd1", 0x000003a6 => "\xd2", 0x000003a7 => "\xd3", 0x000003a8 => "\xd4", 0x000003a9 => "\xd5", 0x000003ac => "\x9b", 0x000003ad => "\x9d", 0x000003ae => "\x9e", 0x000003af => "\x9f", 0x000003b0 => "\xfc", 0x000003b1 => "\xd6", 0x000003b2 => "\xd7", 0x000003b3 => "\xd8", 0x000003b4 => "\xdd", 0x000003b5 => "\xde", 0x000003b6 => "\xe0", 0x000003b7 => "\xe1", 0x000003b8 => "\xe2", 0x000003b9 => "\xe3", 0x000003ba => "\xe4", 0x000003bb => "\xe5", 0x000003bc => "\xe6", 0x000003bd => "\xe7", 0x000003be => "\xe8", 0x000003bf => "\xe9", 0x000003c0 => "\xea", 0x000003c1 => "\xeb", 0x000003c2 => "\xed", 0x000003c3 => "\xec", 0x000003c4 => "\xee", 0x000003c5 => "\xf2", 0x000003c6 => "\xf3", 0x000003c7 => "\xf4", 0x000003c8 => "\xf6", 0x000003c9 => "\xfa", 0x000003ca => "\xa0", 0x000003cb => "\xfb", 0x000003cc => "\xa2", 0x000003cd => "\xa3", 0x000003ce => "\xfd", 0x00002500 => "\xc4", 0x00002502 => "\xb3", 0x0000250c => "\xda", 0x00002510 => "\xbf", 0x00002514 => "\xc0", 0x00002518 => "\xd9", 0x0000251c => "\xc3", 0x00002524 => "\xb4", 0x0000252c => "\xc2", 0x00002534 => "\xc1", 0x0000253c => "\xc5", 0x00002550 => "\xcd", 0x00002551 => "\xba", 0x00002554 => "\xc9", 0x00002557 => "\xbb", 0x0000255a => "\xc8", 0x0000255d => "\xbc", 0x00002560 => "\xcc", 0x00002563 => "\xb9", 0x00002566 => "\xcb", 0x00002569 => "\xca", 0x0000256c => "\xce", 0x00002580 => "\xdf", 0x00002584 => "\xdc", 0x00002588 => "\xdb", 0x00002591 => "\xb0", 0x00002592 => "\xb1", 0x00002593 => "\xb2", 0x000025a0 => "\xfe", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM851 - Conversion routines for IBM851 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM851. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP851 alias 851 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 84 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 86 | 00000386 | GREEK CAPITAL LETTER ALPHA WITH TONOS 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 8B | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 8C | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 8D | 00000388 | GREEK CAPITAL LETTER EPSILON WITH TONOS 8E | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 8F | 00000389 | GREEK CAPITAL LETTER ETA WITH TONOS 90 | 0000038A | GREEK CAPITAL LETTER IOTA WITH TONOS 92 | 0000038C | GREEK CAPITAL LETTER OMICRON WITH TONOS 93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX 94 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 95 | 0000038E | GREEK CAPITAL LETTER UPSILON WITH TONOS 96 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX 97 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 98 | 0000038F | GREEK CAPITAL LETTER OMEGA WITH TONOS 99 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 9B | 000003AC | GREEK SMALL LETTER ALPHA WITH TONOS 9C | 000000A3 | POUND SIGN 9D | 000003AD | GREEK SMALL LETTER EPSILON WITH TONOS 9E | 000003AE | GREEK SMALL LETTER ETA WITH TONOS 9F | 000003AF | GREEK SMALL LETTER IOTA WITH TONOS A0 | 000003CA | GREEK SMALL LETTER IOTA WITH DIALYTIKA A1 | 00000390 | GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS A2 | 000003CC | GREEK SMALL LETTER OMICRON WITH TONOS A3 | 000003CD | GREEK SMALL LETTER UPSILON WITH TONOS A4 | 00000391 | GREEK CAPITAL LETTER ALPHA A5 | 00000392 | GREEK CAPITAL LETTER BETA A6 | 00000393 | GREEK CAPITAL LETTER GAMMA A7 | 00000394 | GREEK CAPITAL LETTER DELTA A8 | 00000395 | GREEK CAPITAL LETTER EPSILON A9 | 00000396 | GREEK CAPITAL LETTER ZETA AA | 00000397 | GREEK CAPITAL LETTER ETA AB | 000000BD | VULGAR FRACTION ONE HALF AC | 00000398 | GREEK CAPITAL LETTER THETA AD | 00000399 | GREEK CAPITAL LETTER IOTA AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK B0 | 00002591 | LIGHT SHADE B1 | 00002592 | MEDIUM SHADE B2 | 00002593 | DARK SHADE B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT B5 | 0000039A | GREEK CAPITAL LETTER KAPPA B6 | 0000039B | GREEK CAPITAL LETTER LAMDA B7 | 0000039D | GREEK CAPITAL LETTER NU B8 | 0000039C | GREEK CAPITAL LETTER MU B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT BD | 0000039E | GREEK CAPITAL LETTER XI BE | 0000039F | GREEK CAPITAL LETTER OMICRON BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL C6 | 000003A0 | GREEK CAPITAL LETTER PI C7 | 000003A1 | GREEK CAPITAL LETTER RHO C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL CF | 000003A3 | GREEK CAPITAL LETTER SIGMA D0 | 000003A4 | GREEK CAPITAL LETTER TAU D1 | 000003A5 | GREEK CAPITAL LETTER UPSILON D2 | 000003A6 | GREEK CAPITAL LETTER PHI D3 | 000003A7 | GREEK CAPITAL LETTER CHI D4 | 000003A8 | GREEK CAPITAL LETTER PSI D5 | 000003A9 | GREEK CAPITAL LETTER OMEGA D6 | 000003B1 | GREEK SMALL LETTER ALPHA D7 | 000003B2 | GREEK SMALL LETTER BETA D8 | 000003B3 | GREEK SMALL LETTER GAMMA D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT DB | 00002588 | FULL BLOCK DC | 00002584 | LOWER HALF BLOCK DD | 000003B4 | GREEK SMALL LETTER DELTA DE | 000003B5 | GREEK SMALL LETTER EPSILON DF | 00002580 | UPPER HALF BLOCK E0 | 000003B6 | GREEK SMALL LETTER ZETA E1 | 000003B7 | GREEK SMALL LETTER ETA E2 | 000003B8 | GREEK SMALL LETTER THETA E3 | 000003B9 | GREEK SMALL LETTER IOTA E4 | 000003BA | GREEK SMALL LETTER KAPPA E5 | 000003BB | GREEK SMALL LETTER LAMDA E6 | 000003BC | GREEK SMALL LETTER MU E7 | 000003BD | GREEK SMALL LETTER NU E8 | 000003BE | GREEK SMALL LETTER XI E9 | 000003BF | GREEK SMALL LETTER OMICRON EA | 000003C0 | GREEK SMALL LETTER PI EB | 000003C1 | GREEK SMALL LETTER RHO EC | 000003C3 | GREEK SMALL LETTER SIGMA ED | 000003C2 | GREEK SMALL LETTER FINAL SIGMA EE | 000003C4 | GREEK SMALL LETTER TAU EF | 000000B4 | ACUTE ACCENT F0 | 000000AD | SOFT HYPHEN F1 | 000000B1 | PLUS-MINUS SIGN F2 | 000003C5 | GREEK SMALL LETTER UPSILON F3 | 000003C6 | GREEK SMALL LETTER PHI F4 | 000003C7 | GREEK SMALL LETTER CHI F5 | 000000A7 | SECTION SIGN F6 | 000003C8 | GREEK SMALL LETTER PSI F7 | 000002DB | OGONEK F8 | 000000B0 | DEGREE SIGN F9 | 000000A8 | DIAERESIS FA | 000003C9 | GREEK SMALL LETTER OMEGA FB | 000003CB | GREEK SMALL LETTER UPSILON WITH DIALYTIKA FC | 000003B0 | GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS FD | 000003CE | GREEK SMALL LETTER OMEGA WITH TONOS FE | 000025A0 | BLACK SQUARE FF | 000000A0 | NO-BREAK SPACE =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]K3llRecodeData/IBM865.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM865. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM865; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, 0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x20a7, 0x0192, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00a4, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc3\x87", "\xc3\xbc", "\xc3\xa9", "\xc3\xa2", "\xc3\xa4", "\xc3\xa0", "\xc3\xa5", "\xc3\xa7", "\xc3\xaa", "\xc3\xab", "\xc3\xa8", "\xc3\xaf", "\xc3\xae", "\xc3\xac", "\xc3\x84", "\xc3\x85", "\xc3\x89", "\xc3\xa6", "\xc3\x86", "\xc3\xb4", "\xc3\xb6", "\xc3\xb2", "\xc3\xbb", "\xc3\xb9", "\xc3\xbf", "\xc3\x96", "\xc3\x9c", "\xc3\xb8", "\xc2\xa3", "\xc3\x98", "\xe2\x82\xa7", "\xc6\x92", "\xc3\xa1", "\xc3\xad", "\xc3\xb3", "\xc3\xba", "\xc3\xb1", "\xc3\x91", "\xc2\xaa", "\xc2\xba", "\xc2\xbf", "\xe2\x8c\x90", "\xc2\xac", "\xc2\xbd", "\xc2\xbc", "\xc2\xa1", "\xc2\xab", "\xc2\xa4", "\xe2\x96\x91", "\xe2\x96\x92", "\xe2\x96\x93", "\xe2\x94\x82", "\xe2\x94\xa4", "\xe2\x95\xa1", "\xe2\x95\xa2", "\xe2\x95\x96", "\xe2\x95\x95", "\xe2\x95\xa3", "\xe2\x95\x91", "\xe2\x95\x97", "\xe2\x95\x9d", "\xe2\x95\x9c", "\xe2\x95\x9b", "\xe2\x94\x90", "\xe2\x94\x94", "\xe2\x94\xb4", "\xe2\x94\xac", "\xe2\x94\x9c", "\xe2\x94\x80", "\xe2\x94\xbc", "\xe2\x95\x9e", "\xe2\x95\x9f", "\xe2\x95\x9a", "\xe2\x95\x94", "\xe2\x95\xa9", "\xe2\x95\xa6", "\xe2\x95\xa0", "\xe2\x95\x90", "\xe2\x95\xac", "\xe2\x95\xa7", "\xe2\x95\xa8", "\xe2\x95\xa4", "\xe2\x95\xa5", "\xe2\x95\x99", "\xe2\x95\x98", "\xe2\x95\x92", "\xe2\x95\x93", "\xe2\x95\xab", "\xe2\x95\xaa", "\xe2\x94\x98", "\xe2\x94\x8c", "\xe2\x96\x88", "\xe2\x96\x84", "\xe2\x96\x8c", "\xe2\x96\x90", "\xe2\x96\x80", "\xce\xb1", "\xc3\x9f", "\xce\x93", "\xcf\x80", "\xce\xa3", "\xcf\x83", "\xc2\xb5", "\xcf\x84", "\xce\xa6", "\xce\x98", "\xce\xa9", "\xce\xb4", "\xe2\x88\x9e", "\xcf\x86", "\xce\xb5", "\xe2\x88\xa9", "\xe2\x89\xa1", "\xc2\xb1", "\xe2\x89\xa5", "\xe2\x89\xa4", "\xe2\x8c\xa0", "\xe2\x8c\xa1", "\xc3\xb7", "\xe2\x89\x88", "\xc2\xb0", "\xe2\x88\x99", "\xc2\xb7", "\xe2\x88\x9a", "\xe2\x81\xbf", "\xc2\xb2", "\xe2\x96\xa0", "\xc2\xa0", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xff", 0x000000a1 => "\xad", 0x000000a3 => "\x9c", 0x000000a4 => "\xaf", 0x000000aa => "\xa6", 0x000000ab => "\xae", 0x000000ac => "\xaa", 0x000000b0 => "\xf8", 0x000000b1 => "\xf1", 0x000000b2 => "\xfd", 0x000000b5 => "\xe6", 0x000000b7 => "\xfa", 0x000000ba => "\xa7", 0x000000bc => "\xac", 0x000000bd => "\xab", 0x000000bf => "\xa8", 0x000000c4 => "\x8e", 0x000000c5 => "\x8f", 0x000000c6 => "\x92", 0x000000c7 => "\x80", 0x000000c9 => "\x90", 0x000000d1 => "\xa5", 0x000000d6 => "\x99", 0x000000d8 => "\x9d", 0x000000dc => "\x9a", 0x000000df => "\xe1", 0x000000e0 => "\x85", 0x000000e1 => "\xa0", 0x000000e2 => "\x83", 0x000000e4 => "\x84", 0x000000e5 => "\x86", 0x000000e6 => "\x91", 0x000000e7 => "\x87", 0x000000e8 => "\x8a", 0x000000e9 => "\x82", 0x000000ea => "\x88", 0x000000eb => "\x89", 0x000000ec => "\x8d", 0x000000ed => "\xa1", 0x000000ee => "\x8c", 0x000000ef => "\x8b", 0x000000f1 => "\xa4", 0x000000f2 => "\x95", 0x000000f3 => "\xa2", 0x000000f4 => "\x93", 0x000000f6 => "\x94", 0x000000f7 => "\xf6", 0x000000f8 => "\x9b", 0x000000f9 => "\x97", 0x000000fa => "\xa3", 0x000000fb => "\x96", 0x000000fc => "\x81", 0x000000ff => "\x98", 0x00000192 => "\x9f", 0x00000393 => "\xe2", 0x00000398 => "\xe9", 0x000003a3 => "\xe4", 0x000003a6 => "\xe8", 0x000003a9 => "\xea", 0x000003b1 => "\xe0", 0x000003b4 => "\xeb", 0x000003b5 => "\xee", 0x000003c0 => "\xe3", 0x000003c3 => "\xe5", 0x000003c4 => "\xe7", 0x000003c6 => "\xed", 0x0000207f => "\xfc", 0x000020a7 => "\x9e", 0x00002219 => "\xf9", 0x0000221a => "\xfb", 0x0000221e => "\xec", 0x00002229 => "\xef", 0x00002248 => "\xf7", 0x00002261 => "\xf0", 0x00002264 => "\xf3", 0x00002265 => "\xf2", 0x00002310 => "\xa9", 0x00002320 => "\xf4", 0x00002321 => "\xf5", 0x00002500 => "\xc4", 0x00002502 => "\xb3", 0x0000250c => "\xda", 0x00002510 => "\xbf", 0x00002514 => "\xc0", 0x00002518 => "\xd9", 0x0000251c => "\xc3", 0x00002524 => "\xb4", 0x0000252c => "\xc2", 0x00002534 => "\xc1", 0x0000253c => "\xc5", 0x00002550 => "\xcd", 0x00002551 => "\xba", 0x00002552 => "\xd5", 0x00002553 => "\xd6", 0x00002554 => "\xc9", 0x00002555 => "\xb8", 0x00002556 => "\xb7", 0x00002557 => "\xbb", 0x00002558 => "\xd4", 0x00002559 => "\xd3", 0x0000255a => "\xc8", 0x0000255b => "\xbe", 0x0000255c => "\xbd", 0x0000255d => "\xbc", 0x0000255e => "\xc6", 0x0000255f => "\xc7", 0x00002560 => "\xcc", 0x00002561 => "\xb5", 0x00002562 => "\xb6", 0x00002563 => "\xb9", 0x00002564 => "\xd1", 0x00002565 => "\xd2", 0x00002566 => "\xcb", 0x00002567 => "\xcf", 0x00002568 => "\xd0", 0x00002569 => "\xca", 0x0000256a => "\xd8", 0x0000256b => "\xd7", 0x0000256c => "\xce", 0x00002580 => "\xdf", 0x00002584 => "\xdc", 0x00002588 => "\xdb", 0x0000258c => "\xdd", 0x00002590 => "\xde", 0x00002591 => "\xb0", 0x00002592 => "\xb1", 0x00002593 => "\xb2", 0x000025a0 => "\xfe", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM865 - Conversion routines for IBM865 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM865. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM DOS 3.3 Ref (Abridged), 94X9575 (Feb 1987) alias CP865 alias 865 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 84 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 86 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 8B | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 8C | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 8D | 000000EC | LATIN SMALL LETTER I WITH GRAVE 8E | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 8F | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 90 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 91 | 000000E6 | LATIN SMALL LETTER AE 92 | 000000C6 | LATIN CAPITAL LETTER AE 93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX 94 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 95 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE 96 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX 97 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 98 | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS 99 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 9B | 000000F8 | LATIN SMALL LETTER O WITH STROKE 9C | 000000A3 | POUND SIGN 9D | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE 9E | 000020A7 | PESETA SIGN 9F | 00000192 | LATIN SMALL LETTER F WITH HOOK A0 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE A1 | 000000ED | LATIN SMALL LETTER I WITH ACUTE A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE A4 | 000000F1 | LATIN SMALL LETTER N WITH TILDE A5 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE A6 | 000000AA | FEMININE ORDINAL INDICATOR A7 | 000000BA | MASCULINE ORDINAL INDICATOR A8 | 000000BF | INVERTED QUESTION MARK A9 | 00002310 | REVERSED NOT SIGN AA | 000000AC | NOT SIGN AB | 000000BD | VULGAR FRACTION ONE HALF AC | 000000BC | VULGAR FRACTION ONE QUARTER AD | 000000A1 | INVERTED EXCLAMATION MARK AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AF | 000000A4 | CURRENCY SIGN B0 | 00002591 | LIGHT SHADE B1 | 00002592 | MEDIUM SHADE B2 | 00002593 | DARK SHADE B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT B5 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE B6 | 00002562 | BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE B7 | 00002556 | BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE B8 | 00002555 | BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT BD | 0000255C | BOX DRAWINGS UP DOUBLE AND LEFT SINGLE BE | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL C6 | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE C7 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL CF | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE D0 | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE D1 | 00002564 | BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE D2 | 00002565 | BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE D3 | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE D4 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE D5 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE D6 | 00002553 | BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE D7 | 0000256B | BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE D8 | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT DB | 00002588 | FULL BLOCK DC | 00002584 | LOWER HALF BLOCK DD | 0000258C | LEFT HALF BLOCK DE | 00002590 | RIGHT HALF BLOCK DF | 00002580 | UPPER HALF BLOCK E0 | 000003B1 | GREEK SMALL LETTER ALPHA E1 | 000000DF | LATIN SMALL LETTER SHARP S (German) E2 | 00000393 | GREEK CAPITAL LETTER GAMMA E3 | 000003C0 | GREEK SMALL LETTER PI E4 | 000003A3 | GREEK CAPITAL LETTER SIGMA E5 | 000003C3 | GREEK SMALL LETTER SIGMA E6 | 000000B5 | MICRO SIGN E7 | 000003C4 | GREEK SMALL LETTER TAU E8 | 000003A6 | GREEK CAPITAL LETTER PHI E9 | 00000398 | GREEK CAPITAL LETTER THETA EA | 000003A9 | GREEK CAPITAL LETTER OMEGA EB | 000003B4 | GREEK SMALL LETTER DELTA EC | 0000221E | INFINITY ED | 000003C6 | GREEK SMALL LETTER PHI EE | 000003B5 | GREEK SMALL LETTER EPSILON EF | 00002229 | INTERSECTION F0 | 00002261 | IDENTICAL TO F1 | 000000B1 | PLUS-MINUS SIGN F2 | 00002265 | GREATER-THAN OR EQUAL TO F3 | 00002264 | LESS-THAN OR EQUAL TO F4 | 00002320 | TOP HALF INTEGRAL F5 | 00002321 | BOTTOM HALF INTEGRAL F6 | 000000F7 | DIVISION SIGN F7 | 00002248 | ALMOST EQUAL TO F8 | 000000B0 | DEGREE SIGN F9 | 00002219 | BULLET OPERATOR FA | 000000B7 | MIDDLE DOT FB | 0000221A | SQUARE ROOT FC | 0000207F | SUPERSCRIPT LATIN SMALL LETTER N FD | 000000B2 | SUPERSCRIPT TWO FE | 000025A0 | BLACK SQUARE FF | 000000A0 | NO-BREAK SPACE =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]9h9hRecodeData/IBM875.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM875. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM875; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0xfffd, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a8, 0x0386, 0x0388, 0x0389, 0x2207, 0x038a, 0x038c, 0x038e, 0x038f, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0385, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x00b4, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x00a3, 0x03ac, 0x03ad, 0x03ae, 0x0390, 0x03af, 0x03cc, 0x03cd, 0x03b0, 0x03ce, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x03c9, 0x03ca, 0x03cb, 0x2018, 0x2015, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b1, 0x00bd, 0xfffd, 0x00b7, 0x2019, 0x00a6, 0x005c, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00a7, 0xfffd, 0xfffd, 0x00ab, 0x00ac, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00a9, 0xfffd, 0xfffd, 0x00bb, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xce\x91", "\xce\x92", "\xce\x93", "\xce\x94", "\xce\x95", "\xce\x96", "\xce\x97", "\xce\x98", "\xce\x99", "\x5b", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\xce\x9a", "\xce\x9b", "\xce\x9c", "\xce\x9d", "\xce\x9e", "\xce\x9f", "\xce\xa0", "\xce\xa1", "\xce\xa3", "\x5d", "\x24", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xce\xa4", "\xce\xa5", "\xce\xa6", "\xce\xa7", "\xce\xa8", "\xce\xa9", "\xce\xaa", "\xce\xab", "\xef\xbf\xbd", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xc2\xa8", "\xce\x86", "\xce\x88", "\xce\x89", "\xe2\x88\x87", "\xce\x8a", "\xce\x8c", "\xce\x8e", "\xce\x8f", "\x60", "\x3a", "\x23", "\x40", "\x27", "\x3d", "\x22", "\xce\x85", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xce\xb1", "\xce\xb2", "\xce\xb3", "\xce\xb4", "\xce\xb5", "\xce\xb6", "\xc2\xb0", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xce\xb7", "\xce\xb8", "\xce\xb9", "\xce\xba", "\xce\xbb", "\xce\xbc", "\xc2\xb4", "\x7e", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xce\xbd", "\xce\xbe", "\xce\xbf", "\xcf\x80", "\xcf\x81", "\xcf\x83", "\xc2\xa3", "\xce\xac", "\xce\xad", "\xce\xae", "\xce\x90", "\xce\xaf", "\xcf\x8c", "\xcf\x8d", "\xce\xb0", "\xcf\x8e", "\xcf\x82", "\xcf\x84", "\xcf\x85", "\xcf\x86", "\xcf\x87", "\xcf\x88", "\x7b", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xc2\xad", "\xcf\x89", "\xcf\x8a", "\xcf\x8b", "\xe2\x80\x98", "\xe2\x80\x95", "\x7d", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xc2\xb1", "\xc2\xbd", "\xef\xbf\xbd", "\xc2\xb7", "\xe2\x80\x99", "\xc2\xa6", "\x5c", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xc2\xb2", "\xc2\xa7", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xab", "\xc2\xac", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xc2\xb3", "\xc2\xa9", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xbb", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000023 => "\x7b", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\x7c", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\x4a", 0x0000005c => "\xe0", 0x0000005d => "\x5a", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\xc0", 0x0000007d => "\xd0", 0x0000007e => "\xa1", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a3 => "\xb0", 0x000000a6 => "\xdf", 0x000000a7 => "\xeb", 0x000000a8 => "\x70", 0x000000a9 => "\xfb", 0x000000ab => "\xee", 0x000000ac => "\xef", 0x000000ad => "\xca", 0x000000b0 => "\x90", 0x000000b1 => "\xda", 0x000000b2 => "\xea", 0x000000b3 => "\xfa", 0x000000b4 => "\xa0", 0x000000b7 => "\xdd", 0x000000bb => "\xfe", 0x000000bd => "\xdb", 0x00000385 => "\x80", 0x00000386 => "\x71", 0x00000388 => "\x72", 0x00000389 => "\x73", 0x0000038a => "\x75", 0x0000038c => "\x76", 0x0000038e => "\x77", 0x0000038f => "\x78", 0x00000390 => "\xb4", 0x00000391 => "\x41", 0x00000392 => "\x42", 0x00000393 => "\x43", 0x00000394 => "\x44", 0x00000395 => "\x45", 0x00000396 => "\x46", 0x00000397 => "\x47", 0x00000398 => "\x48", 0x00000399 => "\x49", 0x0000039a => "\x51", 0x0000039b => "\x52", 0x0000039c => "\x53", 0x0000039d => "\x54", 0x0000039e => "\x55", 0x0000039f => "\x56", 0x000003a0 => "\x57", 0x000003a1 => "\x58", 0x000003a3 => "\x59", 0x000003a4 => "\x62", 0x000003a5 => "\x63", 0x000003a6 => "\x64", 0x000003a7 => "\x65", 0x000003a8 => "\x66", 0x000003a9 => "\x67", 0x000003aa => "\x68", 0x000003ab => "\x69", 0x000003ac => "\xb1", 0x000003ad => "\xb2", 0x000003ae => "\xb3", 0x000003af => "\xb5", 0x000003b0 => "\xb8", 0x000003b1 => "\x8a", 0x000003b2 => "\x8b", 0x000003b3 => "\x8c", 0x000003b4 => "\x8d", 0x000003b5 => "\x8e", 0x000003b6 => "\x8f", 0x000003b7 => "\x9a", 0x000003b8 => "\x9b", 0x000003b9 => "\x9c", 0x000003ba => "\x9d", 0x000003bb => "\x9e", 0x000003bc => "\x9f", 0x000003bd => "\xaa", 0x000003be => "\xab", 0x000003bf => "\xac", 0x000003c0 => "\xad", 0x000003c1 => "\xae", 0x000003c2 => "\xba", 0x000003c3 => "\xaf", 0x000003c4 => "\xbb", 0x000003c5 => "\xbc", 0x000003c6 => "\xbd", 0x000003c7 => "\xbe", 0x000003c8 => "\xbf", 0x000003c9 => "\xcb", 0x000003ca => "\xcc", 0x000003cb => "\xcd", 0x000003cc => "\xb6", 0x000003cd => "\xb7", 0x000003ce => "\xb9", 0x00002015 => "\xcf", 0x00002018 => "\xce", 0x00002019 => "\xde", 0x00002207 => "\x74", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM875 - Conversion routines for IBM875 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM875. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: UNICODE 1.0 alias CP875 alias EBCDIC-GREEK Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 41 | 00000391 | GREEK CAPITAL LETTER ALPHA 42 | 00000392 | GREEK CAPITAL LETTER BETA 43 | 00000393 | GREEK CAPITAL LETTER GAMMA 44 | 00000394 | GREEK CAPITAL LETTER DELTA 45 | 00000395 | GREEK CAPITAL LETTER EPSILON 46 | 00000396 | GREEK CAPITAL LETTER ZETA 47 | 00000397 | GREEK CAPITAL LETTER ETA 48 | 00000398 | GREEK CAPITAL LETTER THETA 49 | 00000399 | GREEK CAPITAL LETTER IOTA 4A | 0000005B | LEFT SQUARE BRACKET 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 51 | 0000039A | GREEK CAPITAL LETTER KAPPA 52 | 0000039B | GREEK CAPITAL LETTER LAMDA 53 | 0000039C | GREEK CAPITAL LETTER MU 54 | 0000039D | GREEK CAPITAL LETTER NU 55 | 0000039E | GREEK CAPITAL LETTER XI 56 | 0000039F | GREEK CAPITAL LETTER OMICRON 57 | 000003A0 | GREEK CAPITAL LETTER PI 58 | 000003A1 | GREEK CAPITAL LETTER RHO 59 | 000003A3 | GREEK CAPITAL LETTER SIGMA 5A | 0000005D | RIGHT SQUARE BRACKET 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 62 | 000003A4 | GREEK CAPITAL LETTER TAU 63 | 000003A5 | GREEK CAPITAL LETTER UPSILON 64 | 000003A6 | GREEK CAPITAL LETTER PHI 65 | 000003A7 | GREEK CAPITAL LETTER CHI 66 | 000003A8 | GREEK CAPITAL LETTER PSI 67 | 000003A9 | GREEK CAPITAL LETTER OMEGA 68 | 000003AA | GREEK CAPITAL LETTER IOTA WITH DIALYTIKA 69 | 000003AB | GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 70 | 000000A8 | DIAERESIS 71 | 00000386 | GREEK CAPITAL LETTER ALPHA WITH TONOS 72 | 00000388 | GREEK CAPITAL LETTER EPSILON WITH TONOS 73 | 00000389 | GREEK CAPITAL LETTER ETA WITH TONOS 74 | 00002207 | NABLA 75 | 0000038A | GREEK CAPITAL LETTER IOTA WITH TONOS 76 | 0000038C | GREEK CAPITAL LETTER OMICRON WITH TONOS 77 | 0000038E | GREEK CAPITAL LETTER UPSILON WITH TONOS 78 | 0000038F | GREEK CAPITAL LETTER OMEGA WITH TONOS 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 00000023 | NUMBER SIGN 7C | 00000040 | COMMERCIAL AT 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 80 | 00000385 | GREEK DIALYTIKA TONOS 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 8A | 000003B1 | GREEK SMALL LETTER ALPHA 8B | 000003B2 | GREEK SMALL LETTER BETA 8C | 000003B3 | GREEK SMALL LETTER GAMMA 8D | 000003B4 | GREEK SMALL LETTER DELTA 8E | 000003B5 | GREEK SMALL LETTER EPSILON 8F | 000003B6 | GREEK SMALL LETTER ZETA 90 | 000000B0 | DEGREE SIGN 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R 9A | 000003B7 | GREEK SMALL LETTER ETA 9B | 000003B8 | GREEK SMALL LETTER THETA 9C | 000003B9 | GREEK SMALL LETTER IOTA 9D | 000003BA | GREEK SMALL LETTER KAPPA 9E | 000003BB | GREEK SMALL LETTER LAMDA 9F | 000003BC | GREEK SMALL LETTER MU A0 | 000000B4 | ACUTE ACCENT A1 | 0000007E | TILDE A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z AA | 000003BD | GREEK SMALL LETTER NU AB | 000003BE | GREEK SMALL LETTER XI AC | 000003BF | GREEK SMALL LETTER OMICRON AD | 000003C0 | GREEK SMALL LETTER PI AE | 000003C1 | GREEK SMALL LETTER RHO AF | 000003C3 | GREEK SMALL LETTER SIGMA B0 | 000000A3 | POUND SIGN B1 | 000003AC | GREEK SMALL LETTER ALPHA WITH TONOS B2 | 000003AD | GREEK SMALL LETTER EPSILON WITH TONOS B3 | 000003AE | GREEK SMALL LETTER ETA WITH TONOS B4 | 00000390 | GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS B5 | 000003AF | GREEK SMALL LETTER IOTA WITH TONOS B6 | 000003CC | GREEK SMALL LETTER OMICRON WITH TONOS B7 | 000003CD | GREEK SMALL LETTER UPSILON WITH TONOS B8 | 000003B0 | GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS B9 | 000003CE | GREEK SMALL LETTER OMEGA WITH TONOS BA | 000003C2 | GREEK SMALL LETTER FINAL SIGMA BB | 000003C4 | GREEK SMALL LETTER TAU BC | 000003C5 | GREEK SMALL LETTER UPSILON BD | 000003C6 | GREEK SMALL LETTER PHI BE | 000003C7 | GREEK SMALL LETTER CHI BF | 000003C8 | GREEK SMALL LETTER PSI C0 | 0000007B | LEFT CURLY BRACKET C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I CA | 000000AD | SOFT HYPHEN CB | 000003C9 | GREEK SMALL LETTER OMEGA CC | 000003CA | GREEK SMALL LETTER IOTA WITH DIALYTIKA CD | 000003CB | GREEK SMALL LETTER UPSILON WITH DIALYTIKA CE | 00002018 | LEFT SINGLE QUOTATION MARK CF | 00002015 | HORIZONTAL BAR D0 | 0000007D | RIGHT CURLY BRACKET D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R DA | 000000B1 | PLUS-MINUS SIGN DB | 000000BD | VULGAR FRACTION ONE HALF DD | 000000B7 | MIDDLE DOT DE | 00002019 | RIGHT SINGLE QUOTATION MARK DF | 000000A6 | BROKEN BAR E0 | 0000005C | REVERSE SOLIDUS E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z EA | 000000B2 | SUPERSCRIPT TWO EB | 000000A7 | SECTION SIGN EE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK EF | 000000AC | NOT SIGN F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FA | 000000B3 | SUPERSCRIPT THREE FB | 000000A9 | COPYRIGHT SIGN FE | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK], jjRecodeData/IBM1026.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM1026. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM1026; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x007b, 0x00f1, 0x00c7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x011e, 0x0130, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x005b, 0x00d1, 0x015f, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0131, 0x003a, 0x00d6, 0x015e, 0x0027, 0x003d, 0x00dc, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x007d, 0x0060, 0x00a6, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x02db, 0x00c6, 0x00a4, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x005d, 0x0024, 0x0040, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x2014, 0x00a8, 0x00b4, 0x00d7, 0x00e7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x011f, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x005c, 0x00f9, 0x00fa, 0x00ff, 0x00fc, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0023, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x0022, 0x00d9, 0x00da, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xc2\xa0", "\xc3\xa2", "\xc3\xa4", "\xc3\xa0", "\xc3\xa1", "\xc3\xa3", "\xc3\xa5", "\x7b", "\xc3\xb1", "\xc3\x87", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xa8", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc3\xac", "\xc3\x9f", "\xc4\x9e", "\xc4\xb0", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xc3\x82", "\xc3\x84", "\xc3\x80", "\xc3\x81", "\xc3\x83", "\xc3\x85", "\x5b", "\xc3\x91", "\xc5\x9f", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xc3\xb8", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x88", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x8c", "\xc4\xb1", "\x3a", "\xc3\x96", "\xc5\x9e", "\x27", "\x3d", "\xc3\x9c", "\xc3\x98", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xc2\xab", "\xc2\xbb", "\x7d", "\x60", "\xc2\xa6", "\xc2\xb1", "\xc2\xb0", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xc2\xaa", "\xc2\xba", "\xc3\xa6", "\xcb\x9b", "\xc3\x86", "\xc2\xa4", "\xc2\xb5", "\xc3\xb6", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xc2\xa1", "\xc2\xbf", "\x5d", "\x24", "\x40", "\xc2\xae", "\xc2\xa2", "\xc2\xa3", "\xc2\xa5", "\xc2\xb7", "\xc2\xa9", "\xc2\xa7", "\xc2\xb6", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\xc2\xac", "\x7c", "\xe2\x80\x94", "\xc2\xa8", "\xc2\xb4", "\xc3\x97", "\xc3\xa7", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xc2\xad", "\xc3\xb4", "\x7e", "\xc3\xb2", "\xc3\xb3", "\xc3\xb5", "\xc4\x9f", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xc2\xb9", "\xc3\xbb", "\x5c", "\xc3\xb9", "\xc3\xba", "\xc3\xbf", "\xc3\xbc", "\xc3\xb7", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xc2\xb2", "\xc3\x94", "\x23", "\xc3\x92", "\xc3\x93", "\xc3\x95", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xc2\xb3", "\xc3\x9b", "\x22", "\xc3\x99", "\xc3\x9a", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\xfc", 0x00000023 => "\xec", 0x00000024 => "\xad", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\xae", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\x68", 0x0000005c => "\xdc", 0x0000005d => "\xac", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000060 => "\x8d", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\x48", 0x0000007c => "\xbb", 0x0000007d => "\x8c", 0x0000007e => "\xcc", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a0 => "\x41", 0x000000a1 => "\xaa", 0x000000a2 => "\xb0", 0x000000a3 => "\xb1", 0x000000a4 => "\x9f", 0x000000a5 => "\xb2", 0x000000a6 => "\x8e", 0x000000a7 => "\xb5", 0x000000a8 => "\xbd", 0x000000a9 => "\xb4", 0x000000aa => "\x9a", 0x000000ab => "\x8a", 0x000000ac => "\xba", 0x000000ad => "\xca", 0x000000ae => "\xaf", 0x000000b0 => "\x90", 0x000000b1 => "\x8f", 0x000000b2 => "\xea", 0x000000b3 => "\xfa", 0x000000b4 => "\xbe", 0x000000b5 => "\xa0", 0x000000b6 => "\xb6", 0x000000b7 => "\xb3", 0x000000b9 => "\xda", 0x000000ba => "\x9b", 0x000000bb => "\x8b", 0x000000bc => "\xb7", 0x000000bd => "\xb8", 0x000000be => "\xb9", 0x000000bf => "\xab", 0x000000c0 => "\x64", 0x000000c1 => "\x65", 0x000000c2 => "\x62", 0x000000c3 => "\x66", 0x000000c4 => "\x63", 0x000000c5 => "\x67", 0x000000c6 => "\x9e", 0x000000c7 => "\x4a", 0x000000c8 => "\x74", 0x000000c9 => "\x71", 0x000000ca => "\x72", 0x000000cb => "\x73", 0x000000cc => "\x78", 0x000000cd => "\x75", 0x000000ce => "\x76", 0x000000cf => "\x77", 0x000000d1 => "\x69", 0x000000d2 => "\xed", 0x000000d3 => "\xee", 0x000000d4 => "\xeb", 0x000000d5 => "\xef", 0x000000d6 => "\x7b", 0x000000d7 => "\xbf", 0x000000d8 => "\x80", 0x000000d9 => "\xfd", 0x000000da => "\xfe", 0x000000db => "\xfb", 0x000000dc => "\x7f", 0x000000df => "\x59", 0x000000e0 => "\x44", 0x000000e1 => "\x45", 0x000000e2 => "\x42", 0x000000e3 => "\x46", 0x000000e4 => "\x43", 0x000000e5 => "\x47", 0x000000e6 => "\x9c", 0x000000e7 => "\xc0", 0x000000e8 => "\x54", 0x000000e9 => "\x51", 0x000000ea => "\x52", 0x000000eb => "\x53", 0x000000ec => "\x58", 0x000000ed => "\x55", 0x000000ee => "\x56", 0x000000ef => "\x57", 0x000000f1 => "\x49", 0x000000f2 => "\xcd", 0x000000f3 => "\xce", 0x000000f4 => "\xcb", 0x000000f5 => "\xcf", 0x000000f6 => "\xa1", 0x000000f7 => "\xe1", 0x000000f8 => "\x70", 0x000000f9 => "\xdd", 0x000000fa => "\xde", 0x000000fb => "\xdb", 0x000000fc => "\xe0", 0x000000ff => "\xdf", 0x0000011e => "\x5a", 0x0000011f => "\xd0", 0x00000130 => "\x5b", 0x00000131 => "\x79", 0x0000015e => "\x7c", 0x0000015f => "\x6a", 0x000002db => "\x9d", 0x00002014 => "\xbc", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM1026 - Conversion routines for IBM1026 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM1026. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP1026 alias 1026 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 41 | 000000A0 | NO-BREAK SPACE 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE 47 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 48 | 0000007B | LEFT CURLY BRACKET 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE 4A | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE 59 | 000000DF | LATIN SMALL LETTER SHARP S (German) 5A | 0000011E | LATIN CAPITAL LETTER G WITH BREVE 5B | 00000130 | LATIN CAPITAL LETTER I WITH DOT ABOVE 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE 67 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 68 | 0000005B | LEFT SQUARE BRACKET 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 6A | 0000015F | LATIN SMALL LETTER S WITH CEDILLA 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE 79 | 00000131 | LATIN SMALL LETTER DOTLESS I 7A | 0000003A | COLON 7B | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 7C | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 8C | 0000007D | RIGHT CURLY BRACKET 8D | 00000060 | GRAVE ACCENT 8E | 000000A6 | BROKEN BAR 8F | 000000B1 | PLUS-MINUS SIGN 90 | 000000B0 | DEGREE SIGN 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R 9A | 000000AA | FEMININE ORDINAL INDICATOR 9B | 000000BA | MASCULINE ORDINAL INDICATOR 9C | 000000E6 | LATIN SMALL LETTER AE 9D | 000002DB | OGONEK 9E | 000000C6 | LATIN CAPITAL LETTER AE 9F | 000000A4 | CURRENCY SIGN A0 | 000000B5 | MICRO SIGN A1 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z AA | 000000A1 | INVERTED EXCLAMATION MARK AB | 000000BF | INVERTED QUESTION MARK AC | 0000005D | RIGHT SQUARE BRACKET AD | 00000024 | DOLLAR SIGN AE | 00000040 | COMMERCIAL AT AF | 000000AE | REGISTERED SIGN B0 | 000000A2 | CENT SIGN B1 | 000000A3 | POUND SIGN B2 | 000000A5 | YEN SIGN B3 | 000000B7 | MIDDLE DOT B4 | 000000A9 | COPYRIGHT SIGN B5 | 000000A7 | SECTION SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000BC | VULGAR FRACTION ONE QUARTER B8 | 000000BD | VULGAR FRACTION ONE HALF B9 | 000000BE | VULGAR FRACTION THREE QUARTERS BA | 000000AC | NOT SIGN BB | 0000007C | VERTICAL LINE BC | 00002014 | EM DASH BD | 000000A8 | DIAERESIS BE | 000000B4 | ACUTE ACCENT BF | 000000D7 | MULTIPLICATION SIGN C0 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I CA | 000000AD | SOFT HYPHEN CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX CC | 0000007E | TILDE CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE D0 | 0000011F | LATIN SMALL LETTER G WITH BREVE D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R DA | 000000B9 | SUPERSCRIPT ONE DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX DC | 0000005C | REVERSE SOLIDUS DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS E0 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS E1 | 000000F7 | DIVISION SIGN E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z EA | 000000B2 | SUPERSCRIPT TWO EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX EC | 00000023 | NUMBER SIGN ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FA | 000000B3 | SUPERSCRIPT THREE FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX FC | 00000022 | QUOTATION MARK FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]GGRecodeData/LATIN_GREEK.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for LATIN-GREEK. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::LATIN_GREEK; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x00a3, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0391, 0x0392, 0x03a8, 0x0394, 0x0395, 0x03a6, 0x0393, 0x0397, 0x0399, 0x039e, 0x039a, 0x039b, 0x039c, 0x039d, 0x039f, 0x03a0, 0xfffd, 0x03a1, 0x03a3, 0x03a4, 0x0398, 0x03a9, 0x00b7, 0x03a7, 0x03a5, 0x0396, 0x007b, 0x007c, 0x007d, 0x00a8, 0x007f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\xc2\xa3", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\xce\x91", "\xce\x92", "\xce\xa8", "\xce\x94", "\xce\x95", "\xce\xa6", "\xce\x93", "\xce\x97", "\xce\x99", "\xce\x9e", "\xce\x9a", "\xce\x9b", "\xce\x9c", "\xce\x9d", "\xce\x9f", "\xce\xa0", "\xef\xbf\xbd", "\xce\xa1", "\xce\xa3", "\xce\xa4", "\xce\x98", "\xce\xa9", "\xc2\xb7", "\xce\xa7", "\xce\xa5", "\xce\x96", "\x7b", "\x7c", "\x7d", "\xc2\xa8", "\x7f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007f => "\x7f", 0x000000a3 => "\x23", 0x000000a8 => "\x7e", 0x000000b7 => "\x77", 0x00000391 => "\x61", 0x00000392 => "\x62", 0x00000393 => "\x67", 0x00000394 => "\x64", 0x00000395 => "\x65", 0x00000396 => "\x7a", 0x00000397 => "\x68", 0x00000398 => "\x75", 0x00000399 => "\x69", 0x0000039a => "\x6b", 0x0000039b => "\x6c", 0x0000039c => "\x6d", 0x0000039d => "\x6e", 0x0000039e => "\x6a", 0x0000039f => "\x6f", 0x000003a0 => "\x70", 0x000003a1 => "\x72", 0x000003a3 => "\x73", 0x000003a4 => "\x74", 0x000003a5 => "\x79", 0x000003a6 => "\x66", 0x000003a7 => "\x78", 0x000003a8 => "\x63", 0x000003a9 => "\x76", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::LATIN_GREEK - Conversion routines for LATIN_GREEK =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for LATIN-GREEK. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: ECMA registry alias ISO-IR-19 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 000000A3 | POUND SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000391 | GREEK CAPITAL LETTER ALPHA 62 | 00000392 | GREEK CAPITAL LETTER BETA 63 | 000003A8 | GREEK CAPITAL LETTER PSI 64 | 00000394 | GREEK CAPITAL LETTER DELTA 65 | 00000395 | GREEK CAPITAL LETTER EPSILON 66 | 000003A6 | GREEK CAPITAL LETTER PHI 67 | 00000393 | GREEK CAPITAL LETTER GAMMA 68 | 00000397 | GREEK CAPITAL LETTER ETA 69 | 00000399 | GREEK CAPITAL LETTER IOTA 6A | 0000039E | GREEK CAPITAL LETTER XI 6B | 0000039A | GREEK CAPITAL LETTER KAPPA 6C | 0000039B | GREEK CAPITAL LETTER LAMDA 6D | 0000039C | GREEK CAPITAL LETTER MU 6E | 0000039D | GREEK CAPITAL LETTER NU 6F | 0000039F | GREEK CAPITAL LETTER OMICRON 70 | 000003A0 | GREEK CAPITAL LETTER PI 72 | 000003A1 | GREEK CAPITAL LETTER RHO 73 | 000003A3 | GREEK CAPITAL LETTER SIGMA 74 | 000003A4 | GREEK CAPITAL LETTER TAU 75 | 00000398 | GREEK CAPITAL LETTER THETA 76 | 000003A9 | GREEK CAPITAL LETTER OMEGA 77 | 000000B7 | MIDDLE DOT 78 | 000003A7 | GREEK CAPITAL LETTER CHI 79 | 000003A5 | GREEK CAPITAL LETTER UPSILON 7A | 00000396 | GREEK CAPITAL LETTER ZETA 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 000000A8 | DIAERESIS 7F | 0000007F | DELETE (DEL) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]s?PXPXRecodeData/KOI_8.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for KOI-8. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::KOI_8; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd1\x8e", "\xd0\xb0", "\xd0\xb1", "\xd1\x86", "\xd0\xb4", "\xd0\xb5", "\xd1\x84", "\xd0\xb3", "\xd1\x85", "\xd0\xb8", "\xd0\xb9", "\xd0\xba", "\xd0\xbb", "\xd0\xbc", "\xd0\xbd", "\xd0\xbe", "\xd0\xbf", "\xd1\x8f", "\xd1\x80", "\xd1\x81", "\xd1\x82", "\xd1\x83", "\xd0\xb6", "\xd0\xb2", "\xd1\x8c", "\xd1\x8b", "\xd0\xb7", "\xd1\x88", "\xd1\x8d", "\xd1\x89", "\xd1\x87", "\xd1\x8a", "\xd0\xae", "\xd0\x90", "\xd0\x91", "\xd0\xa6", "\xd0\x94", "\xd0\x95", "\xd0\xa4", "\xd0\x93", "\xd0\xa5", "\xd0\x98", "\xd0\x99", "\xd0\x9a", "\xd0\x9b", "\xd0\x9c", "\xd0\x9d", "\xd0\x9e", "\xd0\x9f", "\xd0\xaf", "\xd0\xa0", "\xd0\xa1", "\xd0\xa2", "\xd0\xa3", "\xd0\x96", "\xd0\x92", "\xd0\xac", "\xd0\xab", "\xd0\x97", "\xd0\xa8", "\xd0\xad", "\xd0\xa9", "\xd0\xa7", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000410 => "\xe1", 0x00000411 => "\xe2", 0x00000412 => "\xf7", 0x00000413 => "\xe7", 0x00000414 => "\xe4", 0x00000415 => "\xe5", 0x00000416 => "\xf6", 0x00000417 => "\xfa", 0x00000418 => "\xe9", 0x00000419 => "\xea", 0x0000041a => "\xeb", 0x0000041b => "\xec", 0x0000041c => "\xed", 0x0000041d => "\xee", 0x0000041e => "\xef", 0x0000041f => "\xf0", 0x00000420 => "\xf2", 0x00000421 => "\xf3", 0x00000422 => "\xf4", 0x00000423 => "\xf5", 0x00000424 => "\xe6", 0x00000425 => "\xe8", 0x00000426 => "\xe3", 0x00000427 => "\xfe", 0x00000428 => "\xfb", 0x00000429 => "\xfd", 0x0000042b => "\xf9", 0x0000042c => "\xf8", 0x0000042d => "\xfc", 0x0000042e => "\xe0", 0x0000042f => "\xf1", 0x00000430 => "\xc1", 0x00000431 => "\xc2", 0x00000432 => "\xd7", 0x00000433 => "\xc7", 0x00000434 => "\xc4", 0x00000435 => "\xc5", 0x00000436 => "\xd6", 0x00000437 => "\xda", 0x00000438 => "\xc9", 0x00000439 => "\xca", 0x0000043a => "\xcb", 0x0000043b => "\xcc", 0x0000043c => "\xcd", 0x0000043d => "\xce", 0x0000043e => "\xcf", 0x0000043f => "\xd0", 0x00000440 => "\xd2", 0x00000441 => "\xd3", 0x00000442 => "\xd4", 0x00000443 => "\xd5", 0x00000444 => "\xc6", 0x00000445 => "\xc8", 0x00000446 => "\xc3", 0x00000447 => "\xde", 0x00000448 => "\xdb", 0x00000449 => "\xdd", 0x0000044a => "\xdf", 0x0000044b => "\xd9", 0x0000044c => "\xd8", 0x0000044d => "\xdc", 0x0000044e => "\xc0", 0x0000044f => "\xd1", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::KOI_8 - Conversion routines for KOI-8 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for KOI-8. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: Andrey A. Chernov Eache@astral.msk.suE Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) C0 | 0000044E | CYRILLIC SMALL LETTER YU C1 | 00000430 | CYRILLIC SMALL LETTER A C2 | 00000431 | CYRILLIC SMALL LETTER BE C3 | 00000446 | CYRILLIC SMALL LETTER TSE C4 | 00000434 | CYRILLIC SMALL LETTER DE C5 | 00000435 | CYRILLIC SMALL LETTER IE C6 | 00000444 | CYRILLIC SMALL LETTER EF C7 | 00000433 | CYRILLIC SMALL LETTER GHE C8 | 00000445 | CYRILLIC SMALL LETTER HA C9 | 00000438 | CYRILLIC SMALL LETTER I CA | 00000439 | CYRILLIC SMALL LETTER SHORT I CB | 0000043A | CYRILLIC SMALL LETTER KA CC | 0000043B | CYRILLIC SMALL LETTER EL CD | 0000043C | CYRILLIC SMALL LETTER EM CE | 0000043D | CYRILLIC SMALL LETTER EN CF | 0000043E | CYRILLIC SMALL LETTER O D0 | 0000043F | CYRILLIC SMALL LETTER PE D1 | 0000044F | CYRILLIC SMALL LETTER YA D2 | 00000440 | CYRILLIC SMALL LETTER ER D3 | 00000441 | CYRILLIC SMALL LETTER ES D4 | 00000442 | CYRILLIC SMALL LETTER TE D5 | 00000443 | CYRILLIC SMALL LETTER U D6 | 00000436 | CYRILLIC SMALL LETTER ZHE D7 | 00000432 | CYRILLIC SMALL LETTER VE D8 | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN D9 | 0000044B | CYRILLIC SMALL LETTER YERU DA | 00000437 | CYRILLIC SMALL LETTER ZE DB | 00000448 | CYRILLIC SMALL LETTER SHA DC | 0000044D | CYRILLIC SMALL LETTER E DD | 00000449 | CYRILLIC SMALL LETTER SHCHA DE | 00000447 | CYRILLIC SMALL LETTER CHE DF | 0000044A | CYRILLIC SMALL LETTER HARD SIGN E0 | 0000042E | CYRILLIC CAPITAL LETTER YU E1 | 00000410 | CYRILLIC CAPITAL LETTER A E2 | 00000411 | CYRILLIC CAPITAL LETTER BE E3 | 00000426 | CYRILLIC CAPITAL LETTER TSE E4 | 00000414 | CYRILLIC CAPITAL LETTER DE E5 | 00000415 | CYRILLIC CAPITAL LETTER IE E6 | 00000424 | CYRILLIC CAPITAL LETTER EF E7 | 00000413 | CYRILLIC CAPITAL LETTER GHE E8 | 00000425 | CYRILLIC CAPITAL LETTER HA E9 | 00000418 | CYRILLIC CAPITAL LETTER I EA | 00000419 | CYRILLIC CAPITAL LETTER SHORT I EB | 0000041A | CYRILLIC CAPITAL LETTER KA EC | 0000041B | CYRILLIC CAPITAL LETTER EL ED | 0000041C | CYRILLIC CAPITAL LETTER EM EE | 0000041D | CYRILLIC CAPITAL LETTER EN EF | 0000041E | CYRILLIC CAPITAL LETTER O F0 | 0000041F | CYRILLIC CAPITAL LETTER PE F1 | 0000042F | CYRILLIC CAPITAL LETTER YA F2 | 00000420 | CYRILLIC CAPITAL LETTER ER F3 | 00000421 | CYRILLIC CAPITAL LETTER ES F4 | 00000422 | CYRILLIC CAPITAL LETTER TE F5 | 00000423 | CYRILLIC CAPITAL LETTER U F6 | 00000416 | CYRILLIC CAPITAL LETTER ZHE F7 | 00000412 | CYRILLIC CAPITAL LETTER VE F8 | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN F9 | 0000042B | CYRILLIC CAPITAL LETTER YERU FA | 00000417 | CYRILLIC CAPITAL LETTER ZE FB | 00000428 | CYRILLIC CAPITAL LETTER SHA FC | 0000042D | CYRILLIC CAPITAL LETTER E FD | 00000429 | CYRILLIC CAPITAL LETTER SHCHA FE | 00000427 | CYRILLIC CAPITAL LETTER CHE =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]$GGRecodeData/GREEK7.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for GREEK7. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::GREEK7; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x00a4, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0xfffd, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0xfffd, 0x03a7, 0x03a8, 0x03a9, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0xfffd, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c2, 0x03c7, 0x03c8, 0x03c9, 0x007b, 0x007c, 0x007d, 0x203e, 0x007f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\xc2\xa4", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\xce\x91", "\xce\x92", "\xce\x93", "\xce\x94", "\xce\x95", "\xce\x96", "\xce\x97", "\xce\x98", "\xce\x99", "\xef\xbf\xbd", "\xce\x9a", "\xce\x9b", "\xce\x9c", "\xce\x9d", "\xce\x9e", "\xce\x9f", "\xce\xa0", "\xce\xa1", "\xce\xa3", "\xce\xa4", "\xce\xa5", "\xce\xa6", "\xef\xbf\xbd", "\xce\xa7", "\xce\xa8", "\xce\xa9", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\xce\xb1", "\xce\xb2", "\xce\xb3", "\xce\xb4", "\xce\xb5", "\xce\xb6", "\xce\xb7", "\xce\xb8", "\xce\xb9", "\xef\xbf\xbd", "\xce\xba", "\xce\xbb", "\xce\xbc", "\xce\xbd", "\xce\xbe", "\xce\xbf", "\xcf\x80", "\xcf\x81", "\xcf\x83", "\xcf\x84", "\xcf\x85", "\xcf\x86", "\xcf\x82", "\xcf\x87", "\xcf\x88", "\xcf\x89", "\x7b", "\x7c", "\x7d", "\xe2\x80\xbe", "\x7f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007f => "\x7f", 0x000000a4 => "\x24", 0x00000391 => "\x41", 0x00000392 => "\x42", 0x00000393 => "\x43", 0x00000394 => "\x44", 0x00000395 => "\x45", 0x00000396 => "\x46", 0x00000397 => "\x47", 0x00000398 => "\x48", 0x00000399 => "\x49", 0x0000039a => "\x4b", 0x0000039b => "\x4c", 0x0000039c => "\x4d", 0x0000039d => "\x4e", 0x0000039e => "\x4f", 0x0000039f => "\x50", 0x000003a0 => "\x51", 0x000003a1 => "\x52", 0x000003a3 => "\x53", 0x000003a4 => "\x54", 0x000003a5 => "\x55", 0x000003a6 => "\x56", 0x000003a7 => "\x58", 0x000003a8 => "\x59", 0x000003a9 => "\x5a", 0x000003b1 => "\x61", 0x000003b2 => "\x62", 0x000003b3 => "\x63", 0x000003b4 => "\x64", 0x000003b5 => "\x65", 0x000003b6 => "\x66", 0x000003b7 => "\x67", 0x000003b8 => "\x68", 0x000003b9 => "\x69", 0x000003ba => "\x6b", 0x000003bb => "\x6c", 0x000003bc => "\x6d", 0x000003bd => "\x6e", 0x000003be => "\x6f", 0x000003bf => "\x70", 0x000003c0 => "\x71", 0x000003c1 => "\x72", 0x000003c2 => "\x77", 0x000003c3 => "\x73", 0x000003c4 => "\x74", 0x000003c5 => "\x75", 0x000003c6 => "\x76", 0x000003c7 => "\x78", 0x000003c8 => "\x79", 0x000003c9 => "\x7a", 0x0000203e => "\x7e", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::GREEK7 - Conversion routines for GREEK7 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for GREEK7. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 repertoiremap: mnemonic,ds source: ECMA registry alias ISO-IR-88 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 000000A4 | CURRENCY SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000391 | GREEK CAPITAL LETTER ALPHA 42 | 00000392 | GREEK CAPITAL LETTER BETA 43 | 00000393 | GREEK CAPITAL LETTER GAMMA 44 | 00000394 | GREEK CAPITAL LETTER DELTA 45 | 00000395 | GREEK CAPITAL LETTER EPSILON 46 | 00000396 | GREEK CAPITAL LETTER ZETA 47 | 00000397 | GREEK CAPITAL LETTER ETA 48 | 00000398 | GREEK CAPITAL LETTER THETA 49 | 00000399 | GREEK CAPITAL LETTER IOTA 4B | 0000039A | GREEK CAPITAL LETTER KAPPA 4C | 0000039B | GREEK CAPITAL LETTER LAMDA 4D | 0000039C | GREEK CAPITAL LETTER MU 4E | 0000039D | GREEK CAPITAL LETTER NU 4F | 0000039E | GREEK CAPITAL LETTER XI 50 | 0000039F | GREEK CAPITAL LETTER OMICRON 51 | 000003A0 | GREEK CAPITAL LETTER PI 52 | 000003A1 | GREEK CAPITAL LETTER RHO 53 | 000003A3 | GREEK CAPITAL LETTER SIGMA 54 | 000003A4 | GREEK CAPITAL LETTER TAU 55 | 000003A5 | GREEK CAPITAL LETTER UPSILON 56 | 000003A6 | GREEK CAPITAL LETTER PHI 58 | 000003A7 | GREEK CAPITAL LETTER CHI 59 | 000003A8 | GREEK CAPITAL LETTER PSI 5A | 000003A9 | GREEK CAPITAL LETTER OMEGA 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 000003B1 | GREEK SMALL LETTER ALPHA 62 | 000003B2 | GREEK SMALL LETTER BETA 63 | 000003B3 | GREEK SMALL LETTER GAMMA 64 | 000003B4 | GREEK SMALL LETTER DELTA 65 | 000003B5 | GREEK SMALL LETTER EPSILON 66 | 000003B6 | GREEK SMALL LETTER ZETA 67 | 000003B7 | GREEK SMALL LETTER ETA 68 | 000003B8 | GREEK SMALL LETTER THETA 69 | 000003B9 | GREEK SMALL LETTER IOTA 6B | 000003BA | GREEK SMALL LETTER KAPPA 6C | 000003BB | GREEK SMALL LETTER LAMDA 6D | 000003BC | GREEK SMALL LETTER MU 6E | 000003BD | GREEK SMALL LETTER NU 6F | 000003BE | GREEK SMALL LETTER XI 70 | 000003BF | GREEK SMALL LETTER OMICRON 71 | 000003C0 | GREEK SMALL LETTER PI 72 | 000003C1 | GREEK SMALL LETTER RHO 73 | 000003C3 | GREEK SMALL LETTER SIGMA 74 | 000003C4 | GREEK SMALL LETTER TAU 75 | 000003C5 | GREEK SMALL LETTER UPSILON 76 | 000003C6 | GREEK SMALL LETTER PHI 77 | 000003C2 | GREEK SMALL LETTER FINAL SIGMA 78 | 000003C7 | GREEK SMALL LETTER CHI 79 | 000003C8 | GREEK SMALL LETTER PSI 7A | 000003C9 | GREEK SMALL LETTER OMEGA 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000203E | OVERLINE 7F | 0000007F | DELETE (DEL) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]eLLRecodeData/EBCDIC_IS_FRISS.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for EBCDIC-IS-FRISS. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::EBCDIC_IS_FRISS; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x003c, 0x002e, 0x00c1, 0x0028, 0x002b, 0x0021, 0x00d0, 0x00e9, 0xfffd, 0xfffd, 0xfffd, 0x00ed, 0xfffd, 0xfffd, 0xfffd, 0x0024, 0x0025, 0x00c9, 0x002a, 0x0029, 0x003b, 0x0026, 0x002d, 0x002f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0023, 0x2018, 0x002c, 0x00de, 0x005f, 0x003e, 0x003f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00cd, 0xfffd, 0xfffd, 0x007c, 0x00f0, 0x003a, 0x00c6, 0x00d6, 0x0027, 0x003d, 0x0022, 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0xfffd, 0xfffd, 0xfffd, 0x00dd, 0xfffd, 0xfffd, 0xfffd, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00b0, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfffd, 0xfffd, 0x005b, 0x00fd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x005d, 0x00a8, 0xfffd, 0xfffd, 0x00fe, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00f3, 0xfffd, 0x00e6, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00fa, 0xfffd, 0x00b4, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00d3, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00da, 0x007f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa1", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x3c", "\x2e", "\xc3\x81", "\x28", "\x2b", "\x21", "\xc3\x90", "\xc3\xa9", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xad", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x24", "\x25", "\xc3\x89", "\x2a", "\x29", "\x3b", "\x26", "\x2d", "\x2f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x23", "\xe2\x80\x98", "\x2c", "\xc3\x9e", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\x8d", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x7c", "\xc3\xb0", "\x3a", "\xc3\x86", "\xc3\x96", "\x27", "\x3d", "\x22", "\xef\xbf\xbd", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\x9d", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xb0", "\xc3\xb6", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x5b", "\xc3\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x5d", "\xc2\xa8", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xbe", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xb3", "\xef\xbf\xbd", "\xc3\xa6", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xba", "\xef\xbf\xbd", "\xc2\xb4", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\x93", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\x9a", "\x7f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000023 => "\x69", 0x00000024 => "\x59", 0x00000025 => "\x5a", 0x00000026 => "\x5f", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4a", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\xac", 0x0000005d => "\xbc", 0x0000005f => "\x6d", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007c => "\x78", 0x0000007f => "\xff", 0x000000a8 => "\xbd", 0x000000b0 => "\xa0", 0x000000b4 => "\xe0", 0x000000c1 => "\x4c", 0x000000c6 => "\x7b", 0x000000c9 => "\x5b", 0x000000cd => "\x75", 0x000000d0 => "\x50", 0x000000d3 => "\xee", 0x000000d6 => "\x7c", 0x000000da => "\xfe", 0x000000dd => "\x8d", 0x000000de => "\x6c", 0x000000e1 => "\x45", 0x000000e6 => "\xd0", 0x000000e9 => "\x51", 0x000000ed => "\x55", 0x000000f0 => "\x79", 0x000000f3 => "\xce", 0x000000f6 => "\xa1", 0x000000fa => "\xde", 0x000000fd => "\xad", 0x000000fe => "\xc0", 0x00002018 => "\x6a", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::EBCDIC_IS_FRISS - Conversion routines for EBCDIC_IS_FRISS =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for EBCDIC-IS-FRISS. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: Skyrsuvelar Rikisins og Reykjavikurborgar, feb 1982 alias FRISS Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 40 | 00000020 | SPACE 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 4A | 0000003C | LESS-THAN SIGN 4B | 0000002E | FULL STOP 4C | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic) 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 59 | 00000024 | DOLLAR SIGN 5A | 00000025 | PERCENT SIGN 5B | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 00000026 | AMPERSAND 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 69 | 00000023 | NUMBER SIGN 6A | 00002018 | LEFT SINGLE QUOTATION MARK 6B | 0000002C | COMMA 6C | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic) 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE 78 | 0000007C | VERTICAL LINE 79 | 000000F0 | LATIN SMALL LETTER ETH (Icelandic) 7A | 0000003A | COLON 7B | 000000C6 | LATIN CAPITAL LETTER AE 7C | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 8D | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R A0 | 000000B0 | DEGREE SIGN A1 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z AC | 0000005B | LEFT SQUARE BRACKET AD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE BC | 0000005D | RIGHT SQUARE BRACKET BD | 000000A8 | DIAERESIS C0 | 000000FE | LATIN SMALL LETTER THORN (Icelandic) C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE D0 | 000000E6 | LATIN SMALL LETTER AE D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE E0 | 000000B4 | ACUTE ACCENT E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE FF | 0000007F | DELETE (DEL) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]}=nPnPRecodeData/IBM274.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM274. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM274; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0060, 0x003a, 0x0023, 0x00e0, 0x0027, 0x003d, 0x0022, 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e7, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x5b", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x5d", "\x24", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xb9", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x60", "\x3a", "\x23", "\xc3\xa0", "\x27", "\x3d", "\x22", "\xef\xbf\xbd", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa8", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa9", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa8", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa7", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000023 => "\x7b", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\x4a", 0x0000005d => "\x5a", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a8 => "\xa1", 0x000000e0 => "\x7c", 0x000000e7 => "\xe0", 0x000000e8 => "\xd0", 0x000000e9 => "\xc0", 0x000000f9 => "\x6a", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM274 - Conversion routines for IBM274 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM274. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990 alias EBCDIC-BE alias CP274 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 4A | 0000005B | LEFT SQUARE BRACKET 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 5A | 0000005D | RIGHT SQUARE BRACKET 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 6A | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 00000023 | NUMBER SIGN 7C | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R A1 | 000000A8 | DIAERESIS A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z C0 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I D0 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R E0 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]#|͊kkRecodeData/KOI8_RU.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for KOI8-RU. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::KOI8_RU; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524, 0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590, 0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248, 0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7, 0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457, 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x0491, 0x045e, 0x255e, 0x255f, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407, 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x0490, 0x040e, 0x00a9, 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xe2\x94\x80", "\xe2\x94\x82", "\xe2\x94\x8c", "\xe2\x94\x90", "\xe2\x94\x94", "\xe2\x94\x98", "\xe2\x94\x9c", "\xe2\x94\xa4", "\xe2\x94\xac", "\xe2\x94\xb4", "\xe2\x94\xbc", "\xe2\x96\x80", "\xe2\x96\x84", "\xe2\x96\x88", "\xe2\x96\x8c", "\xe2\x96\x90", "\xe2\x96\x91", "\xe2\x96\x92", "\xe2\x96\x93", "\xe2\x8c\xa0", "\xe2\x96\xa0", "\xe2\x88\x99", "\xe2\x88\x9a", "\xe2\x89\x88", "\xe2\x89\xa4", "\xe2\x89\xa5", "\xc2\xa0", "\xe2\x8c\xa1", "\xc2\xb0", "\xc2\xb2", "\xc2\xb7", "\xc3\xb7", "\xe2\x95\x90", "\xe2\x95\x91", "\xe2\x95\x92", "\xd1\x91", "\xd1\x94", "\xe2\x95\x94", "\xd1\x96", "\xd1\x97", "\xe2\x95\x97", "\xe2\x95\x98", "\xe2\x95\x99", "\xe2\x95\x9a", "\xe2\x95\x9b", "\xd2\x91", "\xd1\x9e", "\xe2\x95\x9e", "\xe2\x95\x9f", "\xe2\x95\xa0", "\xe2\x95\xa1", "\xd0\x81", "\xd0\x84", "\xe2\x95\xa3", "\xd0\x86", "\xd0\x87", "\xe2\x95\xa6", "\xe2\x95\xa7", "\xe2\x95\xa8", "\xe2\x95\xa9", "\xe2\x95\xaa", "\xd2\x90", "\xd0\x8e", "\xc2\xa9", "\xd1\x8e", "\xd0\xb0", "\xd0\xb1", "\xd1\x86", "\xd0\xb4", "\xd0\xb5", "\xd1\x84", "\xd0\xb3", "\xd1\x85", "\xd0\xb8", "\xd0\xb9", "\xd0\xba", "\xd0\xbb", "\xd0\xbc", "\xd0\xbd", "\xd0\xbe", "\xd0\xbf", "\xd1\x8f", "\xd1\x80", "\xd1\x81", "\xd1\x82", "\xd1\x83", "\xd0\xb6", "\xd0\xb2", "\xd1\x8c", "\xd1\x8b", "\xd0\xb7", "\xd1\x88", "\xd1\x8d", "\xd1\x89", "\xd1\x87", "\xd1\x8a", "\xd0\xae", "\xd0\x90", "\xd0\x91", "\xd0\xa6", "\xd0\x94", "\xd0\x95", "\xd0\xa4", "\xd0\x93", "\xd0\xa5", "\xd0\x98", "\xd0\x99", "\xd0\x9a", "\xd0\x9b", "\xd0\x9c", "\xd0\x9d", "\xd0\x9e", "\xd0\x9f", "\xd0\xaf", "\xd0\xa0", "\xd0\xa1", "\xd0\xa2", "\xd0\xa3", "\xd0\x96", "\xd0\x92", "\xd0\xac", "\xd0\xab", "\xd0\x97", "\xd0\xa8", "\xd0\xad", "\xd0\xa9", "\xd0\xa7", "\xd0\xaa", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\x9a", 0x000000a9 => "\xbf", 0x000000b0 => "\x9c", 0x000000b2 => "\x9d", 0x000000b7 => "\x9e", 0x000000f7 => "\x9f", 0x00000401 => "\xb3", 0x00000404 => "\xb4", 0x00000406 => "\xb6", 0x00000407 => "\xb7", 0x0000040e => "\xbe", 0x00000410 => "\xe1", 0x00000411 => "\xe2", 0x00000412 => "\xf7", 0x00000413 => "\xe7", 0x00000414 => "\xe4", 0x00000415 => "\xe5", 0x00000416 => "\xf6", 0x00000417 => "\xfa", 0x00000418 => "\xe9", 0x00000419 => "\xea", 0x0000041a => "\xeb", 0x0000041b => "\xec", 0x0000041c => "\xed", 0x0000041d => "\xee", 0x0000041e => "\xef", 0x0000041f => "\xf0", 0x00000420 => "\xf2", 0x00000421 => "\xf3", 0x00000422 => "\xf4", 0x00000423 => "\xf5", 0x00000424 => "\xe6", 0x00000425 => "\xe8", 0x00000426 => "\xe3", 0x00000427 => "\xfe", 0x00000428 => "\xfb", 0x00000429 => "\xfd", 0x0000042a => "\xff", 0x0000042b => "\xf9", 0x0000042c => "\xf8", 0x0000042d => "\xfc", 0x0000042e => "\xe0", 0x0000042f => "\xf1", 0x00000430 => "\xc1", 0x00000431 => "\xc2", 0x00000432 => "\xd7", 0x00000433 => "\xc7", 0x00000434 => "\xc4", 0x00000435 => "\xc5", 0x00000436 => "\xd6", 0x00000437 => "\xda", 0x00000438 => "\xc9", 0x00000439 => "\xca", 0x0000043a => "\xcb", 0x0000043b => "\xcc", 0x0000043c => "\xcd", 0x0000043d => "\xce", 0x0000043e => "\xcf", 0x0000043f => "\xd0", 0x00000440 => "\xd2", 0x00000441 => "\xd3", 0x00000442 => "\xd4", 0x00000443 => "\xd5", 0x00000444 => "\xc6", 0x00000445 => "\xc8", 0x00000446 => "\xc3", 0x00000447 => "\xde", 0x00000448 => "\xdb", 0x00000449 => "\xdd", 0x0000044a => "\xdf", 0x0000044b => "\xd9", 0x0000044c => "\xd8", 0x0000044d => "\xdc", 0x0000044e => "\xc0", 0x0000044f => "\xd1", 0x00000451 => "\xa3", 0x00000454 => "\xa4", 0x00000456 => "\xa6", 0x00000457 => "\xa7", 0x0000045e => "\xae", 0x00000490 => "\xbd", 0x00000491 => "\xad", 0x00002219 => "\x95", 0x0000221a => "\x96", 0x00002248 => "\x97", 0x00002264 => "\x98", 0x00002265 => "\x99", 0x00002320 => "\x93", 0x00002321 => "\x9b", 0x00002500 => "\x80", 0x00002502 => "\x81", 0x0000250c => "\x82", 0x00002510 => "\x83", 0x00002514 => "\x84", 0x00002518 => "\x85", 0x0000251c => "\x86", 0x00002524 => "\x87", 0x0000252c => "\x88", 0x00002534 => "\x89", 0x0000253c => "\x8a", 0x00002550 => "\xa0", 0x00002551 => "\xa1", 0x00002552 => "\xa2", 0x00002554 => "\xa5", 0x00002557 => "\xa8", 0x00002558 => "\xa9", 0x00002559 => "\xaa", 0x0000255a => "\xab", 0x0000255b => "\xac", 0x0000255e => "\xaf", 0x0000255f => "\xb0", 0x00002560 => "\xb1", 0x00002561 => "\xb2", 0x00002563 => "\xb5", 0x00002566 => "\xb8", 0x00002567 => "\xb9", 0x00002568 => "\xba", 0x00002569 => "\xbb", 0x0000256a => "\xbc", 0x00002580 => "\x8b", 0x00002584 => "\x8c", 0x00002588 => "\x8d", 0x0000258c => "\x8e", 0x00002590 => "\x8f", 0x00002591 => "\x90", 0x00002592 => "\x91", 0x00002593 => "\x92", 0x000025a0 => "\x94", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::KOI8_RU - Conversion routines for KOI8-RU =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for KOI8-RU. =head1 COMMENTS The following comments have been extracted from the original charmap: This charmap has been generated automatically from GNU libiconv conversions. Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL 81 | 00002502 | BOX DRAWINGS LIGHT VERTICAL 82 | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT 83 | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT 84 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT 85 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT 86 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT 87 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT 88 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL 89 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL 8A | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL 8B | 00002580 | UPPER HALF BLOCK 8C | 00002584 | LOWER HALF BLOCK 8D | 00002588 | FULL BLOCK 8E | 0000258C | LEFT HALF BLOCK 8F | 00002590 | RIGHT HALF BLOCK 90 | 00002591 | LIGHT SHADE 91 | 00002592 | MEDIUM SHADE 92 | 00002593 | DARK SHADE 93 | 00002320 | TOP HALF INTEGRAL 94 | 000025A0 | BLACK SQUARE 95 | 00002219 | BULLET OPERATOR 96 | 0000221A | SQUARE ROOT 97 | 00002248 | ALMOST EQUAL TO 98 | 00002264 | LESS-THAN OR EQUAL TO 99 | 00002265 | GREATER-THAN OR EQUAL TO 9A | 000000A0 | NO-BREAK SPACE 9B | 00002321 | BOTTOM HALF INTEGRAL 9C | 000000B0 | DEGREE SIGN 9D | 000000B2 | SUPERSCRIPT TWO 9E | 000000B7 | MIDDLE DOT 9F | 000000F7 | DIVISION SIGN A0 | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL A1 | 00002551 | BOX DRAWINGS DOUBLE VERTICAL A2 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE A3 | 00000451 | CYRILLIC SMALL LETTER IO A4 | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE A5 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT A6 | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I A7 | 00000457 | CYRILLIC SMALL LETTER YI A8 | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT A9 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE AA | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE AB | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT AC | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE AD | 00000491 | CYRILLIC SMALL LETTER GHE WITH UPTURN AE | 0000045E | CYRILLIC SMALL LETTER SHORT U AF | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE B0 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE B1 | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT B2 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE B3 | 00000401 | CYRILLIC CAPITAL LETTER IO B4 | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE B5 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT B6 | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I B7 | 00000407 | CYRILLIC CAPITAL LETTER YI B8 | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL B9 | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE BA | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE BB | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL BC | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE BD | 00000490 | CYRILLIC CAPITAL LETTER GHE WITH UPTURN BE | 0000040E | CYRILLIC CAPITAL LETTER SHORT U BF | 000000A9 | COPYRIGHT SIGN C0 | 0000044E | CYRILLIC SMALL LETTER YU C1 | 00000430 | CYRILLIC SMALL LETTER A C2 | 00000431 | CYRILLIC SMALL LETTER BE C3 | 00000446 | CYRILLIC SMALL LETTER TSE C4 | 00000434 | CYRILLIC SMALL LETTER DE C5 | 00000435 | CYRILLIC SMALL LETTER IE C6 | 00000444 | CYRILLIC SMALL LETTER EF C7 | 00000433 | CYRILLIC SMALL LETTER GHE C8 | 00000445 | CYRILLIC SMALL LETTER HA C9 | 00000438 | CYRILLIC SMALL LETTER I CA | 00000439 | CYRILLIC SMALL LETTER SHORT I CB | 0000043A | CYRILLIC SMALL LETTER KA CC | 0000043B | CYRILLIC SMALL LETTER EL CD | 0000043C | CYRILLIC SMALL LETTER EM CE | 0000043D | CYRILLIC SMALL LETTER EN CF | 0000043E | CYRILLIC SMALL LETTER O D0 | 0000043F | CYRILLIC SMALL LETTER PE D1 | 0000044F | CYRILLIC SMALL LETTER YA D2 | 00000440 | CYRILLIC SMALL LETTER ER D3 | 00000441 | CYRILLIC SMALL LETTER ES D4 | 00000442 | CYRILLIC SMALL LETTER TE D5 | 00000443 | CYRILLIC SMALL LETTER U D6 | 00000436 | CYRILLIC SMALL LETTER ZHE D7 | 00000432 | CYRILLIC SMALL LETTER VE D8 | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN D9 | 0000044B | CYRILLIC SMALL LETTER YERU DA | 00000437 | CYRILLIC SMALL LETTER ZE DB | 00000448 | CYRILLIC SMALL LETTER SHA DC | 0000044D | CYRILLIC SMALL LETTER E DD | 00000449 | CYRILLIC SMALL LETTER SHCHA DE | 00000447 | CYRILLIC SMALL LETTER CHE DF | 0000044A | CYRILLIC SMALL LETTER HARD SIGN E0 | 0000042E | CYRILLIC CAPITAL LETTER YU E1 | 00000410 | CYRILLIC CAPITAL LETTER A E2 | 00000411 | CYRILLIC CAPITAL LETTER BE E3 | 00000426 | CYRILLIC CAPITAL LETTER TSE E4 | 00000414 | CYRILLIC CAPITAL LETTER DE E5 | 00000415 | CYRILLIC CAPITAL LETTER IE E6 | 00000424 | CYRILLIC CAPITAL LETTER EF E7 | 00000413 | CYRILLIC CAPITAL LETTER GHE E8 | 00000425 | CYRILLIC CAPITAL LETTER HA E9 | 00000418 | CYRILLIC CAPITAL LETTER I EA | 00000419 | CYRILLIC CAPITAL LETTER SHORT I EB | 0000041A | CYRILLIC CAPITAL LETTER KA EC | 0000041B | CYRILLIC CAPITAL LETTER EL ED | 0000041C | CYRILLIC CAPITAL LETTER EM EE | 0000041D | CYRILLIC CAPITAL LETTER EN EF | 0000041E | CYRILLIC CAPITAL LETTER O F0 | 0000041F | CYRILLIC CAPITAL LETTER PE F1 | 0000042F | CYRILLIC CAPITAL LETTER YA F2 | 00000420 | CYRILLIC CAPITAL LETTER ER F3 | 00000421 | CYRILLIC CAPITAL LETTER ES F4 | 00000422 | CYRILLIC CAPITAL LETTER TE F5 | 00000423 | CYRILLIC CAPITAL LETTER U F6 | 00000416 | CYRILLIC CAPITAL LETTER ZHE F7 | 00000412 | CYRILLIC CAPITAL LETTER VE F8 | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN F9 | 0000042B | CYRILLIC CAPITAL LETTER YERU FA | 00000417 | CYRILLIC CAPITAL LETTER ZE FB | 00000428 | CYRILLIC CAPITAL LETTER SHA FC | 0000042D | CYRILLIC CAPITAL LETTER E FD | 00000429 | CYRILLIC CAPITAL LETTER SHCHA FE | 00000427 | CYRILLIC CAPITAL LETTER CHE FF | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK][XOORecodeData/EBCDIC_US.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for EBCDIC-US. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::EBCDIC_US; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x005c, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa2", "\x2e", "\x3c", "\x28", "\x2b", "\x7c", "\x26", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x21", "\x24", "\x2a", "\x29", "\x3b", "\xc2\xac", "\x2d", "\x2f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa6", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x60", "\x3a", "\x23", "\x40", "\x27", "\x3d", "\x22", "\xef\xbf\xbd", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x7e", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x7b", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x7d", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x5c", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x5a", 0x00000022 => "\x7f", 0x00000023 => "\x7b", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\x7c", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005c => "\xe0", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\xc0", 0x0000007c => "\x4f", 0x0000007d => "\xd0", 0x0000007e => "\xa1", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a2 => "\x4a", 0x000000a6 => "\x6a", 0x000000ac => "\x5f", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::EBCDIC_US - Conversion routines for EBCDIC_US =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for EBCDIC-US. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 4A | 000000A2 | CENT SIGN 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 0000007C | VERTICAL LINE 50 | 00000026 | AMPERSAND 5A | 00000021 | EXCLAMATION MARK 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 000000AC | NOT SIGN 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 6A | 000000A6 | BROKEN BAR 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 00000023 | NUMBER SIGN 7C | 00000040 | COMMERCIAL AT 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R A1 | 0000007E | TILDE A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z C0 | 0000007B | LEFT CURLY BRACKET C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I D0 | 0000007D | RIGHT CURLY BRACKET D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R E0 | 0000005C | REVERSE SOLIDUS E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK] S>S>RecodeData/ISO_5427_EXT.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ISO_5427-EXT. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ISO_5427_EXT; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0491, 0x0452, 0x0453, 0x0454, 0x0451, 0x0455, 0x0456, 0x0457, 0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x045e, 0x045f, 0xfffd, 0x0463, 0x0473, 0x0475, 0x046b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x005b, 0xfffd, 0x005d, 0xfffd, 0x005f, 0x0490, 0x0402, 0x0403, 0x0404, 0x0401, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x040e, 0x040f, 0x042a, 0x0462, 0x0472, 0x0474, 0x046a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x007f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd2\x91", "\xd1\x92", "\xd1\x93", "\xd1\x94", "\xd1\x91", "\xd1\x95", "\xd1\x96", "\xd1\x97", "\xd1\x98", "\xd1\x99", "\xd1\x9a", "\xd1\x9b", "\xd1\x9c", "\xd1\x9e", "\xd1\x9f", "\xef\xbf\xbd", "\xd1\xa3", "\xd1\xb3", "\xd1\xb5", "\xd1\xab", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x5b", "\xef\xbf\xbd", "\x5d", "\xef\xbf\xbd", "\x5f", "\xd2\x90", "\xd0\x82", "\xd0\x83", "\xd0\x84", "\xd0\x81", "\xd0\x85", "\xd0\x86", "\xd0\x87", "\xd0\x88", "\xd0\x89", "\xd0\x8a", "\xd0\x8b", "\xd0\x8c", "\xd0\x8e", "\xd0\x8f", "\xd0\xaa", "\xd1\xa2", "\xd1\xb2", "\xd1\xb4", "\xd1\xaa", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x7f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x0000005b => "\x5b", 0x0000005d => "\x5d", 0x0000005f => "\x5f", 0x0000007f => "\x7f", 0x00000401 => "\x64", 0x00000402 => "\x61", 0x00000403 => "\x62", 0x00000404 => "\x63", 0x00000405 => "\x65", 0x00000406 => "\x66", 0x00000407 => "\x67", 0x00000408 => "\x68", 0x00000409 => "\x69", 0x0000040a => "\x6a", 0x0000040b => "\x6b", 0x0000040c => "\x6c", 0x0000040e => "\x6d", 0x0000040f => "\x6e", 0x0000042a => "\x6f", 0x00000451 => "\x44", 0x00000452 => "\x41", 0x00000453 => "\x42", 0x00000454 => "\x43", 0x00000455 => "\x45", 0x00000456 => "\x46", 0x00000457 => "\x47", 0x00000458 => "\x48", 0x00000459 => "\x49", 0x0000045a => "\x4a", 0x0000045b => "\x4b", 0x0000045c => "\x4c", 0x0000045e => "\x4d", 0x0000045f => "\x4e", 0x00000462 => "\x70", 0x00000463 => "\x50", 0x0000046a => "\x73", 0x0000046b => "\x53", 0x00000472 => "\x71", 0x00000473 => "\x51", 0x00000474 => "\x72", 0x00000475 => "\x52", 0x00000490 => "\x60", 0x00000491 => "\x40", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ISO_5427_EXT - Conversion routines for ISO_5427_EXT =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for ISO_5427-EXT. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 repertoiremap: mnemonic,ds source: ECMA registry alias ISO-IR-54 alias ISO_5427:1981 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 40 | 00000491 | CYRILLIC SMALL LETTER GHE WITH UPTURN 41 | 00000452 | CYRILLIC SMALL LETTER DJE 42 | 00000453 | CYRILLIC SMALL LETTER GJE 43 | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE 44 | 00000451 | CYRILLIC SMALL LETTER IO 45 | 00000455 | CYRILLIC SMALL LETTER DZE 46 | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I 47 | 00000457 | CYRILLIC SMALL LETTER YI 48 | 00000458 | CYRILLIC SMALL LETTER JE 49 | 00000459 | CYRILLIC SMALL LETTER LJE 4A | 0000045A | CYRILLIC SMALL LETTER NJE 4B | 0000045B | CYRILLIC SMALL LETTER TSHE 4C | 0000045C | CYRILLIC SMALL LETTER KJE 4D | 0000045E | CYRILLIC SMALL LETTER SHORT U 4E | 0000045F | CYRILLIC SMALL LETTER DZHE 50 | 00000463 | CYRILLIC SMALL LETTER YAT 51 | 00000473 | CYRILLIC SMALL LETTER FITA 52 | 00000475 | CYRILLIC SMALL LETTER IZHITSA 53 | 0000046B | CYRILLIC SMALL LETTER BIG YUS 5B | 0000005B | LEFT SQUARE BRACKET 5D | 0000005D | RIGHT SQUARE BRACKET 5F | 0000005F | LOW LINE 60 | 00000490 | CYRILLIC CAPITAL LETTER GHE WITH UPTURN 61 | 00000402 | CYRILLIC CAPITAL LETTER DJE 62 | 00000403 | CYRILLIC CAPITAL LETTER GJE 63 | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE 64 | 00000401 | CYRILLIC CAPITAL LETTER IO 65 | 00000405 | CYRILLIC CAPITAL LETTER DZE 66 | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I 67 | 00000407 | CYRILLIC CAPITAL LETTER YI 68 | 00000408 | CYRILLIC CAPITAL LETTER JE 69 | 00000409 | CYRILLIC CAPITAL LETTER LJE 6A | 0000040A | CYRILLIC CAPITAL LETTER NJE 6B | 0000040B | CYRILLIC CAPITAL LETTER TSHE 6C | 0000040C | CYRILLIC CAPITAL LETTER KJE 6D | 0000040E | CYRILLIC CAPITAL LETTER SHORT U 6E | 0000040F | CYRILLIC CAPITAL LETTER DZHE 6F | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN 70 | 00000462 | CYRILLIC CAPITAL LETTER YAT 71 | 00000472 | CYRILLIC CAPITAL LETTER FITA 72 | 00000474 | CYRILLIC CAPITAL LETTER IZHITSA 73 | 0000046A | CYRILLIC CAPITAL LETTER BIG YUS 7F | 0000007F | DELETE (DEL) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]$1PPRecodeData/IBM038.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM038. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM038; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x005c, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x5b", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x5d", "\x24", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa6", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x60", "\x3a", "\x23", "\x40", "\x27", "\x3d", "\x22", "\xef\xbf\xbd", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x7e", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x7b", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x7d", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x5c", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000023 => "\x7b", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\x7c", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\x4a", 0x0000005c => "\xe0", 0x0000005d => "\x5a", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\xc0", 0x0000007d => "\xd0", 0x0000007e => "\xa1", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a6 => "\x6a", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM038 - Conversion routines for IBM038 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM038. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990 alias EBCDIC-INT alias CP038 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 4A | 0000005B | LEFT SQUARE BRACKET 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 5A | 0000005D | RIGHT SQUARE BRACKET 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 6A | 000000A6 | BROKEN BAR 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 00000023 | NUMBER SIGN 7C | 00000040 | COMMERCIAL AT 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R A1 | 0000007E | TILDE A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z C0 | 0000007B | LEFT CURLY BRACKET C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I D0 | 0000007D | RIGHT CURLY BRACKET D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R E0 | 0000005C | REVERSE SOLIDUS E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]QjjRecodeData/IBM277.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM277. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM277; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x0023, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a6, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00c6, 0x00d8, 0x0027, 0x003d, 0x0022, 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007b, 0x00b8, 0x005b, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x203e, 0x00a8, 0x00b4, 0x00d7, 0x00e6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xc2\xa0", "\xc3\xa2", "\xc3\xa4", "\xc3\xa0", "\xc3\xa1", "\xc3\xa3", "\x7d", "\xc3\xa7", "\xc3\xb1", "\x23", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xa8", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc3\xac", "\xc3\x9f", "\xc2\xa4", "\xc3\x85", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xc3\x82", "\xc3\x84", "\xc3\x80", "\xc3\x81", "\xc3\x83", "\x24", "\xc3\x87", "\xc3\x91", "\xc3\xb8", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xc2\xa6", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x88", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x8c", "\x60", "\x3a", "\xc3\x86", "\xc3\x98", "\x27", "\x3d", "\x22", "\x40", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xc2\xab", "\xc2\xbb", "\xc3\xb0", "\xc3\xbd", "\xc3\xbe", "\xc2\xb1", "\xc2\xb0", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xc2\xaa", "\xc2\xba", "\x7b", "\xc2\xb8", "\x5b", "\x5d", "\xc2\xb5", "\xc3\xbc", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xc2\xa1", "\xc2\xbf", "\xc3\x90", "\xc3\x9d", "\xc3\x9e", "\xc2\xae", "\xc2\xa2", "\xc2\xa3", "\xc2\xa5", "\xc2\xb7", "\xc2\xa9", "\xc2\xa7", "\xc2\xb6", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\xc2\xac", "\x7c", "\xe2\x80\xbe", "\xc2\xa8", "\xc2\xb4", "\xc3\x97", "\xc3\xa6", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xc2\xad", "\xc3\xb4", "\xc3\xb6", "\xc3\xb2", "\xc3\xb3", "\xc3\xb5", "\xc3\xa5", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xc2\xb9", "\xc3\xbb", "\x7e", "\xc3\xb9", "\xc3\xba", "\xc3\xbf", "\x5c", "\xc3\xb7", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xc2\xb2", "\xc3\x94", "\xc3\x96", "\xc3\x92", "\xc3\x93", "\xc3\x95", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xc2\xb3", "\xc3\x9b", "\xc3\x9c", "\xc3\x99", "\xc3\x9a", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000023 => "\x4a", 0x00000024 => "\x67", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\x80", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\x9e", 0x0000005c => "\xe0", 0x0000005d => "\x9f", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\x9c", 0x0000007c => "\xbb", 0x0000007d => "\x47", 0x0000007e => "\xdc", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a0 => "\x41", 0x000000a1 => "\xaa", 0x000000a2 => "\xb0", 0x000000a3 => "\xb1", 0x000000a4 => "\x5a", 0x000000a5 => "\xb2", 0x000000a6 => "\x70", 0x000000a7 => "\xb5", 0x000000a8 => "\xbd", 0x000000a9 => "\xb4", 0x000000aa => "\x9a", 0x000000ab => "\x8a", 0x000000ac => "\xba", 0x000000ad => "\xca", 0x000000ae => "\xaf", 0x000000b0 => "\x90", 0x000000b1 => "\x8f", 0x000000b2 => "\xea", 0x000000b3 => "\xfa", 0x000000b4 => "\xbe", 0x000000b5 => "\xa0", 0x000000b6 => "\xb6", 0x000000b7 => "\xb3", 0x000000b8 => "\x9d", 0x000000b9 => "\xda", 0x000000ba => "\x9b", 0x000000bb => "\x8b", 0x000000bc => "\xb7", 0x000000bd => "\xb8", 0x000000be => "\xb9", 0x000000bf => "\xab", 0x000000c0 => "\x64", 0x000000c1 => "\x65", 0x000000c2 => "\x62", 0x000000c3 => "\x66", 0x000000c4 => "\x63", 0x000000c5 => "\x5b", 0x000000c6 => "\x7b", 0x000000c7 => "\x68", 0x000000c8 => "\x74", 0x000000c9 => "\x71", 0x000000ca => "\x72", 0x000000cb => "\x73", 0x000000cc => "\x78", 0x000000cd => "\x75", 0x000000ce => "\x76", 0x000000cf => "\x77", 0x000000d0 => "\xac", 0x000000d1 => "\x69", 0x000000d2 => "\xed", 0x000000d3 => "\xee", 0x000000d4 => "\xeb", 0x000000d5 => "\xef", 0x000000d6 => "\xec", 0x000000d7 => "\xbf", 0x000000d8 => "\x7c", 0x000000d9 => "\xfd", 0x000000da => "\xfe", 0x000000db => "\xfb", 0x000000dc => "\xfc", 0x000000dd => "\xad", 0x000000de => "\xae", 0x000000df => "\x59", 0x000000e0 => "\x44", 0x000000e1 => "\x45", 0x000000e2 => "\x42", 0x000000e3 => "\x46", 0x000000e4 => "\x43", 0x000000e5 => "\xd0", 0x000000e6 => "\xc0", 0x000000e7 => "\x48", 0x000000e8 => "\x54", 0x000000e9 => "\x51", 0x000000ea => "\x52", 0x000000eb => "\x53", 0x000000ec => "\x58", 0x000000ed => "\x55", 0x000000ee => "\x56", 0x000000ef => "\x57", 0x000000f0 => "\x8c", 0x000000f1 => "\x49", 0x000000f2 => "\xcd", 0x000000f3 => "\xce", 0x000000f4 => "\xcb", 0x000000f5 => "\xcf", 0x000000f6 => "\xcc", 0x000000f7 => "\xe1", 0x000000f8 => "\x6a", 0x000000f9 => "\xdd", 0x000000fa => "\xde", 0x000000fb => "\xdb", 0x000000fc => "\xa1", 0x000000fd => "\x8d", 0x000000fe => "\x8e", 0x000000ff => "\xdf", 0x0000203e => "\xbc", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM277 - Conversion routines for IBM277 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM277. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias EBCDIC-CP-DK alias EBCDIC-CP-NO Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 41 | 000000A0 | NO-BREAK SPACE 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE 47 | 0000007D | RIGHT CURLY BRACKET 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE 4A | 00000023 | NUMBER SIGN 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE 59 | 000000DF | LATIN SMALL LETTER SHARP S (German) 5A | 000000A4 | CURRENCY SIGN 5B | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE 67 | 00000024 | DOLLAR SIGN 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 6A | 000000F8 | LATIN SMALL LETTER O WITH STROKE 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 70 | 000000A6 | BROKEN BAR 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 000000C6 | LATIN CAPITAL LETTER AE 7C | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 80 | 00000040 | COMMERCIAL AT 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic) 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE 8E | 000000FE | LATIN SMALL LETTER THORN (Icelandic) 8F | 000000B1 | PLUS-MINUS SIGN 90 | 000000B0 | DEGREE SIGN 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R 9A | 000000AA | FEMININE ORDINAL INDICATOR 9B | 000000BA | MASCULINE ORDINAL INDICATOR 9C | 0000007B | LEFT CURLY BRACKET 9D | 000000B8 | CEDILLA 9E | 0000005B | LEFT SQUARE BRACKET 9F | 0000005D | RIGHT SQUARE BRACKET A0 | 000000B5 | MICRO SIGN A1 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z AA | 000000A1 | INVERTED EXCLAMATION MARK AB | 000000BF | INVERTED QUESTION MARK AC | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic) AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE AE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic) AF | 000000AE | REGISTERED SIGN B0 | 000000A2 | CENT SIGN B1 | 000000A3 | POUND SIGN B2 | 000000A5 | YEN SIGN B3 | 000000B7 | MIDDLE DOT B4 | 000000A9 | COPYRIGHT SIGN B5 | 000000A7 | SECTION SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000BC | VULGAR FRACTION ONE QUARTER B8 | 000000BD | VULGAR FRACTION ONE HALF B9 | 000000BE | VULGAR FRACTION THREE QUARTERS BA | 000000AC | NOT SIGN BB | 0000007C | VERTICAL LINE BC | 0000203E | OVERLINE BD | 000000A8 | DIAERESIS BE | 000000B4 | ACUTE ACCENT BF | 000000D7 | MULTIPLICATION SIGN C0 | 000000E6 | LATIN SMALL LETTER AE C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I CA | 000000AD | SOFT HYPHEN CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX CC | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE D0 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R DA | 000000B9 | SUPERSCRIPT ONE DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX DC | 0000007E | TILDE DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS E0 | 0000005C | REVERSE SOLIDUS E1 | 000000F7 | DIVISION SIGN E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z EA | 000000B2 | SUPERSCRIPT TWO EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX EC | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FA | 000000B3 | SUPERSCRIPT THREE FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]3/,fDfDRecodeData/INIS.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for INIS. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::INIS; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0x0024, 0x0025, 0xfffd, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0xfffd, 0xfffd, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0xfffd, 0x005d, 0xfffd, 0xfffd, 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfffd, 0x007c, 0xfffd, 0xfffd, 0x007f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x24", "\x25", "\xef\xbf\xbd", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\xef\xbf\xbd", "\x5d", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xbf\xbd", "\x7c", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x7f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005d => "\x5d", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007c => "\x7c", 0x0000007f => "\x7f", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::INIS - Conversion routines for INIS =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for INIS. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: ECMA registry alias ISO-IR-49 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5D | 0000005D | RIGHT SQUARE BRACKET 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7C | 0000007C | VERTICAL LINE 7F | 0000007F | DELETE (DEL) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]iiRecodeData/ISO_8859_3.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ISO-8859-3. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ISO_8859_3; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x0126, 0x02d8, 0x00a3, 0x00a4, 0xfffd, 0x0124, 0x00a7, 0x00a8, 0x0130, 0x015e, 0x011e, 0x0134, 0x00ad, 0xfffd, 0x017b, 0x00b0, 0x0127, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x0125, 0x00b7, 0x00b8, 0x0131, 0x015f, 0x011f, 0x0135, 0x00bd, 0xfffd, 0x017c, 0x00c0, 0x00c1, 0x00c2, 0xfffd, 0x00c4, 0x010a, 0x0108, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0xfffd, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x0120, 0x00d6, 0x00d7, 0x011c, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x016c, 0x015c, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0xfffd, 0x00e4, 0x010b, 0x0109, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0xfffd, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x0121, 0x00f6, 0x00f7, 0x011d, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x016d, 0x015d, 0x02d9, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\xc2\x85", "\xc2\x86", "\xc2\x87", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\xc2\x8d", "\xc2\x8e", "\xc2\x8f", "\xc2\x90", "\xc2\x91", "\xc2\x92", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\xc2\x97", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\xc2\x9c", "\xc2\x9d", "\xc2\x9e", "\xc2\x9f", "\xc2\xa0", "\xc4\xa6", "\xcb\x98", "\xc2\xa3", "\xc2\xa4", "\xef\xbf\xbd", "\xc4\xa4", "\xc2\xa7", "\xc2\xa8", "\xc4\xb0", "\xc5\x9e", "\xc4\x9e", "\xc4\xb4", "\xc2\xad", "\xef\xbf\xbd", "\xc5\xbb", "\xc2\xb0", "\xc4\xa7", "\xc2\xb2", "\xc2\xb3", "\xc2\xb4", "\xc2\xb5", "\xc4\xa5", "\xc2\xb7", "\xc2\xb8", "\xc4\xb1", "\xc5\x9f", "\xc4\x9f", "\xc4\xb5", "\xc2\xbd", "\xef\xbf\xbd", "\xc5\xbc", "\xc3\x80", "\xc3\x81", "\xc3\x82", "\xef\xbf\xbd", "\xc3\x84", "\xc4\x8a", "\xc4\x88", "\xc3\x87", "\xc3\x88", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x8c", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xef\xbf\xbd", "\xc3\x91", "\xc3\x92", "\xc3\x93", "\xc3\x94", "\xc4\xa0", "\xc3\x96", "\xc3\x97", "\xc4\x9c", "\xc3\x99", "\xc3\x9a", "\xc3\x9b", "\xc3\x9c", "\xc5\xac", "\xc5\x9c", "\xc3\x9f", "\xc3\xa0", "\xc3\xa1", "\xc3\xa2", "\xef\xbf\xbd", "\xc3\xa4", "\xc4\x8b", "\xc4\x89", "\xc3\xa7", "\xc3\xa8", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xac", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xef\xbf\xbd", "\xc3\xb1", "\xc3\xb2", "\xc3\xb3", "\xc3\xb4", "\xc4\xa1", "\xc3\xb6", "\xc3\xb7", "\xc4\x9d", "\xc3\xb9", "\xc3\xba", "\xc3\xbb", "\xc3\xbc", "\xc5\xad", "\xc5\x9d", "\xcb\x99", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000080 => "\x80", 0x00000081 => "\x81", 0x00000082 => "\x82", 0x00000083 => "\x83", 0x00000084 => "\x84", 0x00000085 => "\x85", 0x00000086 => "\x86", 0x00000087 => "\x87", 0x00000088 => "\x88", 0x00000089 => "\x89", 0x0000008a => "\x8a", 0x0000008b => "\x8b", 0x0000008c => "\x8c", 0x0000008d => "\x8d", 0x0000008e => "\x8e", 0x0000008f => "\x8f", 0x00000090 => "\x90", 0x00000091 => "\x91", 0x00000092 => "\x92", 0x00000093 => "\x93", 0x00000094 => "\x94", 0x00000095 => "\x95", 0x00000096 => "\x96", 0x00000097 => "\x97", 0x00000098 => "\x98", 0x00000099 => "\x99", 0x0000009a => "\x9a", 0x0000009b => "\x9b", 0x0000009c => "\x9c", 0x0000009d => "\x9d", 0x0000009e => "\x9e", 0x0000009f => "\x9f", 0x000000a0 => "\xa0", 0x000000a3 => "\xa3", 0x000000a4 => "\xa4", 0x000000a7 => "\xa7", 0x000000a8 => "\xa8", 0x000000ad => "\xad", 0x000000b0 => "\xb0", 0x000000b2 => "\xb2", 0x000000b3 => "\xb3", 0x000000b4 => "\xb4", 0x000000b5 => "\xb5", 0x000000b7 => "\xb7", 0x000000b8 => "\xb8", 0x000000bd => "\xbd", 0x000000c0 => "\xc0", 0x000000c1 => "\xc1", 0x000000c2 => "\xc2", 0x000000c4 => "\xc4", 0x000000c7 => "\xc7", 0x000000c8 => "\xc8", 0x000000c9 => "\xc9", 0x000000ca => "\xca", 0x000000cb => "\xcb", 0x000000cc => "\xcc", 0x000000cd => "\xcd", 0x000000ce => "\xce", 0x000000cf => "\xcf", 0x000000d1 => "\xd1", 0x000000d2 => "\xd2", 0x000000d3 => "\xd3", 0x000000d4 => "\xd4", 0x000000d6 => "\xd6", 0x000000d7 => "\xd7", 0x000000d9 => "\xd9", 0x000000da => "\xda", 0x000000db => "\xdb", 0x000000dc => "\xdc", 0x000000df => "\xdf", 0x000000e0 => "\xe0", 0x000000e1 => "\xe1", 0x000000e2 => "\xe2", 0x000000e4 => "\xe4", 0x000000e7 => "\xe7", 0x000000e8 => "\xe8", 0x000000e9 => "\xe9", 0x000000ea => "\xea", 0x000000eb => "\xeb", 0x000000ec => "\xec", 0x000000ed => "\xed", 0x000000ee => "\xee", 0x000000ef => "\xef", 0x000000f1 => "\xf1", 0x000000f2 => "\xf2", 0x000000f3 => "\xf3", 0x000000f4 => "\xf4", 0x000000f6 => "\xf6", 0x000000f7 => "\xf7", 0x000000f9 => "\xf9", 0x000000fa => "\xfa", 0x000000fb => "\xfb", 0x000000fc => "\xfc", 0x00000108 => "\xc6", 0x00000109 => "\xe6", 0x0000010a => "\xc5", 0x0000010b => "\xe5", 0x0000011c => "\xd8", 0x0000011d => "\xf8", 0x0000011e => "\xab", 0x0000011f => "\xbb", 0x00000120 => "\xd5", 0x00000121 => "\xf5", 0x00000124 => "\xa6", 0x00000125 => "\xb6", 0x00000126 => "\xa1", 0x00000127 => "\xb1", 0x00000130 => "\xa9", 0x00000131 => "\xb9", 0x00000134 => "\xac", 0x00000135 => "\xbc", 0x0000015c => "\xde", 0x0000015d => "\xfe", 0x0000015e => "\xaa", 0x0000015f => "\xba", 0x0000016c => "\xdd", 0x0000016d => "\xfd", 0x0000017b => "\xaf", 0x0000017c => "\xbf", 0x000002d8 => "\xa2", 0x000002d9 => "\xff", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ISO_8859_3 - Conversion routines for ISO-8859-3 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for ISO-8859-3. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: ECMA registry alias ISO-IR-109 alias ISO_8859-3:1988 alias ISO_8859-3 alias LATIN3 alias L3 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000080 | PADDING CHARACTER (PAD) 81 | 00000081 | HIGH OCTET PRESET (HOP) 82 | 00000082 | BREAK PERMITTED HERE (BPH) 83 | 00000083 | NO BREAK HERE (NBH) 84 | 00000084 | INDEX (IND) 85 | 00000085 | NEXT LINE (NEL) 86 | 00000086 | START OF SELECTED AREA (SSA) 87 | 00000087 | END OF SELECTED AREA (ESA) 88 | 00000088 | CHARACTER TABULATION SET (HTS) 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 8A | 0000008A | LINE TABULATION SET (VTS) 8B | 0000008B | PARTIAL LINE FORWARD (PLD) 8C | 0000008C | PARTIAL LINE BACKWARD (PLU) 8D | 0000008D | REVERSE LINE FEED (RI) 8E | 0000008E | SINGLE-SHIFT TWO (SS2) 8F | 0000008F | SINGLE-SHIFT THREE (SS3) 90 | 00000090 | DEVICE CONTROL STRING (DCS) 91 | 00000091 | PRIVATE USE ONE (PU1) 92 | 00000092 | PRIVATE USE TWO (PU2) 93 | 00000093 | SET TRANSMIT STATE (STS) 94 | 00000094 | CANCEL CHARACTER (CCH) 95 | 00000095 | MESSAGE WAITING (MW) 96 | 00000096 | START OF GUARDED AREA (SPA) 97 | 00000097 | END OF GUARDED AREA (EPA) 98 | 00000098 | START OF STRING (SOS) 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 9C | 0000009C | STRING TERMINATOR (ST) 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC) 9E | 0000009E | PRIVACY MESSAGE (PM) 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC) A0 | 000000A0 | NO-BREAK SPACE A1 | 00000126 | LATIN CAPITAL LETTER H WITH STROKE A2 | 000002D8 | BREVE A3 | 000000A3 | POUND SIGN A4 | 000000A4 | CURRENCY SIGN A6 | 00000124 | LATIN CAPITAL LETTER H WITH CIRCUMFLEX A7 | 000000A7 | SECTION SIGN A8 | 000000A8 | DIAERESIS A9 | 00000130 | LATIN CAPITAL LETTER I WITH DOT ABOVE AA | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA AB | 0000011E | LATIN CAPITAL LETTER G WITH BREVE AC | 00000134 | LATIN CAPITAL LETTER J WITH CIRCUMFLEX AD | 000000AD | SOFT HYPHEN AF | 0000017B | LATIN CAPITAL LETTER Z WITH DOT ABOVE B0 | 000000B0 | DEGREE SIGN B1 | 00000127 | LATIN SMALL LETTER H WITH STROKE B2 | 000000B2 | SUPERSCRIPT TWO B3 | 000000B3 | SUPERSCRIPT THREE B4 | 000000B4 | ACUTE ACCENT B5 | 000000B5 | MICRO SIGN B6 | 00000125 | LATIN SMALL LETTER H WITH CIRCUMFLEX B7 | 000000B7 | MIDDLE DOT B8 | 000000B8 | CEDILLA B9 | 00000131 | LATIN SMALL LETTER DOTLESS I BA | 0000015F | LATIN SMALL LETTER S WITH CEDILLA BB | 0000011F | LATIN SMALL LETTER G WITH BREVE BC | 00000135 | LATIN SMALL LETTER J WITH CIRCUMFLEX BD | 000000BD | VULGAR FRACTION ONE HALF BF | 0000017C | LATIN SMALL LETTER Z WITH DOT ABOVE C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS C5 | 0000010A | LATIN CAPITAL LETTER C WITH DOT ABOVE C6 | 00000108 | LATIN CAPITAL LETTER C WITH CIRCUMFLEX C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS D1 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX D5 | 00000120 | LATIN CAPITAL LETTER G WITH DOT ABOVE D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS D7 | 000000D7 | MULTIPLICATION SIGN D8 | 0000011C | LATIN CAPITAL LETTER G WITH CIRCUMFLEX D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS DD | 0000016C | LATIN CAPITAL LETTER U WITH BREVE DE | 0000015C | LATIN CAPITAL LETTER S WITH CIRCUMFLEX DF | 000000DF | LATIN SMALL LETTER SHARP S (German) E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS E5 | 0000010B | LATIN SMALL LETTER C WITH DOT ABOVE E6 | 00000109 | LATIN SMALL LETTER C WITH CIRCUMFLEX E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX F5 | 00000121 | LATIN SMALL LETTER G WITH DOT ABOVE F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS F7 | 000000F7 | DIVISION SIGN F8 | 0000011D | LATIN SMALL LETTER G WITH CIRCUMFLEX F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS FD | 0000016D | LATIN SMALL LETTER U WITH BREVE FE | 0000015D | LATIN SMALL LETTER S WITH CIRCUMFLEX FF | 000002D9 | DOT ABOVE (Mandarin Chinese light tone) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]iiRecodeData/CP1251.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for CP1251. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::CP1251; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0402, 0x0403, 0x201a, 0x0453, 0x201e, 0x2026, 0x2020, 0x2021, 0x20ac, 0x2030, 0x0409, 0x2039, 0x040a, 0x040c, 0x040b, 0x040f, 0x0452, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0xfffd, 0x2122, 0x0459, 0x203a, 0x045a, 0x045c, 0x045b, 0x045f, 0x00a0, 0x040e, 0x045e, 0x0408, 0x00a4, 0x0490, 0x00a6, 0x00a7, 0x0401, 0x00a9, 0x0404, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x0407, 0x00b0, 0x00b1, 0x0406, 0x0456, 0x0491, 0x00b5, 0x00b6, 0x00b7, 0x0451, 0x2116, 0x0454, 0x00bb, 0x0458, 0x0405, 0x0455, 0x0457, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xd0\x82", "\xd0\x83", "\xe2\x80\x9a", "\xd1\x93", "\xe2\x80\x9e", "\xe2\x80\xa6", "\xe2\x80\xa0", "\xe2\x80\xa1", "\xe2\x82\xac", "\xe2\x80\xb0", "\xd0\x89", "\xe2\x80\xb9", "\xd0\x8a", "\xd0\x8c", "\xd0\x8b", "\xd0\x8f", "\xd1\x92", "\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\xa2", "\xe2\x80\x93", "\xe2\x80\x94", "\xef\xbf\xbd", "\xe2\x84\xa2", "\xd1\x99", "\xe2\x80\xba", "\xd1\x9a", "\xd1\x9c", "\xd1\x9b", "\xd1\x9f", "\xc2\xa0", "\xd0\x8e", "\xd1\x9e", "\xd0\x88", "\xc2\xa4", "\xd2\x90", "\xc2\xa6", "\xc2\xa7", "\xd0\x81", "\xc2\xa9", "\xd0\x84", "\xc2\xab", "\xc2\xac", "\xc2\xad", "\xc2\xae", "\xd0\x87", "\xc2\xb0", "\xc2\xb1", "\xd0\x86", "\xd1\x96", "\xd2\x91", "\xc2\xb5", "\xc2\xb6", "\xc2\xb7", "\xd1\x91", "\xe2\x84\x96", "\xd1\x94", "\xc2\xbb", "\xd1\x98", "\xd0\x85", "\xd1\x95", "\xd1\x97", "\xd0\x90", "\xd0\x91", "\xd0\x92", "\xd0\x93", "\xd0\x94", "\xd0\x95", "\xd0\x96", "\xd0\x97", "\xd0\x98", "\xd0\x99", "\xd0\x9a", "\xd0\x9b", "\xd0\x9c", "\xd0\x9d", "\xd0\x9e", "\xd0\x9f", "\xd0\xa0", "\xd0\xa1", "\xd0\xa2", "\xd0\xa3", "\xd0\xa4", "\xd0\xa5", "\xd0\xa6", "\xd0\xa7", "\xd0\xa8", "\xd0\xa9", "\xd0\xaa", "\xd0\xab", "\xd0\xac", "\xd0\xad", "\xd0\xae", "\xd0\xaf", "\xd0\xb0", "\xd0\xb1", "\xd0\xb2", "\xd0\xb3", "\xd0\xb4", "\xd0\xb5", "\xd0\xb6", "\xd0\xb7", "\xd0\xb8", "\xd0\xb9", "\xd0\xba", "\xd0\xbb", "\xd0\xbc", "\xd0\xbd", "\xd0\xbe", "\xd0\xbf", "\xd1\x80", "\xd1\x81", "\xd1\x82", "\xd1\x83", "\xd1\x84", "\xd1\x85", "\xd1\x86", "\xd1\x87", "\xd1\x88", "\xd1\x89", "\xd1\x8a", "\xd1\x8b", "\xd1\x8c", "\xd1\x8d", "\xd1\x8e", "\xd1\x8f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xa0", 0x000000a4 => "\xa4", 0x000000a6 => "\xa6", 0x000000a7 => "\xa7", 0x000000a9 => "\xa9", 0x000000ab => "\xab", 0x000000ac => "\xac", 0x000000ad => "\xad", 0x000000ae => "\xae", 0x000000b0 => "\xb0", 0x000000b1 => "\xb1", 0x000000b5 => "\xb5", 0x000000b6 => "\xb6", 0x000000b7 => "\xb7", 0x000000bb => "\xbb", 0x00000401 => "\xa8", 0x00000402 => "\x80", 0x00000403 => "\x81", 0x00000404 => "\xaa", 0x00000405 => "\xbd", 0x00000406 => "\xb2", 0x00000407 => "\xaf", 0x00000408 => "\xa3", 0x00000409 => "\x8a", 0x0000040a => "\x8c", 0x0000040b => "\x8e", 0x0000040c => "\x8d", 0x0000040e => "\xa1", 0x0000040f => "\x8f", 0x00000410 => "\xc0", 0x00000411 => "\xc1", 0x00000412 => "\xc2", 0x00000413 => "\xc3", 0x00000414 => "\xc4", 0x00000415 => "\xc5", 0x00000416 => "\xc6", 0x00000417 => "\xc7", 0x00000418 => "\xc8", 0x00000419 => "\xc9", 0x0000041a => "\xca", 0x0000041b => "\xcb", 0x0000041c => "\xcc", 0x0000041d => "\xcd", 0x0000041e => "\xce", 0x0000041f => "\xcf", 0x00000420 => "\xd0", 0x00000421 => "\xd1", 0x00000422 => "\xd2", 0x00000423 => "\xd3", 0x00000424 => "\xd4", 0x00000425 => "\xd5", 0x00000426 => "\xd6", 0x00000427 => "\xd7", 0x00000428 => "\xd8", 0x00000429 => "\xd9", 0x0000042a => "\xda", 0x0000042b => "\xdb", 0x0000042c => "\xdc", 0x0000042d => "\xdd", 0x0000042e => "\xde", 0x0000042f => "\xdf", 0x00000430 => "\xe0", 0x00000431 => "\xe1", 0x00000432 => "\xe2", 0x00000433 => "\xe3", 0x00000434 => "\xe4", 0x00000435 => "\xe5", 0x00000436 => "\xe6", 0x00000437 => "\xe7", 0x00000438 => "\xe8", 0x00000439 => "\xe9", 0x0000043a => "\xea", 0x0000043b => "\xeb", 0x0000043c => "\xec", 0x0000043d => "\xed", 0x0000043e => "\xee", 0x0000043f => "\xef", 0x00000440 => "\xf0", 0x00000441 => "\xf1", 0x00000442 => "\xf2", 0x00000443 => "\xf3", 0x00000444 => "\xf4", 0x00000445 => "\xf5", 0x00000446 => "\xf6", 0x00000447 => "\xf7", 0x00000448 => "\xf8", 0x00000449 => "\xf9", 0x0000044a => "\xfa", 0x0000044b => "\xfb", 0x0000044c => "\xfc", 0x0000044d => "\xfd", 0x0000044e => "\xfe", 0x0000044f => "\xff", 0x00000451 => "\xb8", 0x00000452 => "\x90", 0x00000453 => "\x83", 0x00000454 => "\xba", 0x00000455 => "\xbe", 0x00000456 => "\xb3", 0x00000457 => "\xbf", 0x00000458 => "\xbc", 0x00000459 => "\x9a", 0x0000045a => "\x9c", 0x0000045b => "\x9e", 0x0000045c => "\x9d", 0x0000045e => "\xa2", 0x0000045f => "\x9f", 0x00000490 => "\xa5", 0x00000491 => "\xb4", 0x00002013 => "\x96", 0x00002014 => "\x97", 0x00002018 => "\x91", 0x00002019 => "\x92", 0x0000201a => "\x82", 0x0000201c => "\x93", 0x0000201d => "\x94", 0x0000201e => "\x84", 0x00002020 => "\x86", 0x00002021 => "\x87", 0x00002022 => "\x95", 0x00002026 => "\x85", 0x00002030 => "\x89", 0x00002039 => "\x8b", 0x0000203a => "\x9b", 0x000020ac => "\x88", 0x00002116 => "\xb9", 0x00002122 => "\x99", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::CP1251 - Conversion routines for CP1251 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for CP1251. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 repertoiremap: mnemonic,ds source: UNICODE 1.0 alias MS-CYRL Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000402 | CYRILLIC CAPITAL LETTER DJE (Serbocroatian) 81 | 00000403 | CYRILLIC CAPITAL LETTER GJE 82 | 0000201A | SINGLE LOW-9 QUOTATION MARK 83 | 00000453 | CYRILLIC SMALL LETTER GJE 84 | 0000201E | DOUBLE LOW-9 QUOTATION MARK 85 | 00002026 | HORIZONTAL ELLIPSIS 86 | 00002020 | DAGGER 87 | 00002021 | DOUBLE DAGGER 88 | 000020AC | EURO SIGN 89 | 00002030 | PER MILLE SIGN 8A | 00000409 | CYRILLIC CAPITAL LETTER LJE 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK 8C | 0000040A | CYRILLIC CAPITAL LETTER NJE 8D | 0000040C | CYRILLIC CAPITAL LETTER KJE 8E | 0000040B | CYRILLIC CAPITAL LETTER TSHE (Serbocroatian) 8F | 0000040F | CYRILLIC CAPITAL LETTER DZHE 90 | 00000452 | CYRILLIC SMALL LETTER DJE (Serbocroatian) 91 | 00002018 | LEFT SINGLE QUOTATION MARK 92 | 00002019 | RIGHT SINGLE QUOTATION MARK 93 | 0000201C | LEFT DOUBLE QUOTATION MARK 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK 95 | 00002022 | BULLET 96 | 00002013 | EN DASH 97 | 00002014 | EM DASH 99 | 00002122 | TRADE MARK SIGN 9A | 00000459 | CYRILLIC SMALL LETTER LJE 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 9C | 0000045A | CYRILLIC SMALL LETTER NJE 9D | 0000045C | CYRILLIC SMALL LETTER KJE 9E | 0000045B | CYRILLIC SMALL LETTER TSHE (Serbocroatian) 9F | 0000045F | CYRILLIC SMALL LETTER DZHE A0 | 000000A0 | NO-BREAK SPACE A1 | 0000040E | CYRILLIC CAPITAL LETTER SHORT U (Byelorussian) A2 | 0000045E | CYRILLIC SMALL LETTER SHORT U (Byelorussian) A3 | 00000408 | CYRILLIC CAPITAL LETTER JE A4 | 000000A4 | CURRENCY SIGN A5 | 00000490 | CYRILLIC CAPITAL LETTER GHE WITH UPTURN A6 | 000000A6 | BROKEN BAR A7 | 000000A7 | SECTION SIGN A8 | 00000401 | CYRILLIC CAPITAL LETTER IO A9 | 000000A9 | COPYRIGHT SIGN AA | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AC | 000000AC | NOT SIGN AD | 000000AD | SOFT HYPHEN AE | 000000AE | REGISTERED SIGN AF | 00000407 | CYRILLIC CAPITAL LETTER YI (Ukrainian) B0 | 000000B0 | DEGREE SIGN B1 | 000000B1 | PLUS-MINUS SIGN B2 | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I B3 | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I B4 | 00000491 | CYRILLIC SMALL LETTER GHE WITH UPTURN B5 | 000000B5 | MICRO SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000B7 | MIDDLE DOT B8 | 00000451 | CYRILLIC SMALL LETTER IO B9 | 00002116 | NUMERO SIGN BA | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK BC | 00000458 | CYRILLIC SMALL LETTER JE BD | 00000405 | CYRILLIC CAPITAL LETTER DZE BE | 00000455 | CYRILLIC SMALL LETTER DZE BF | 00000457 | CYRILLIC SMALL LETTER YI (Ukrainian) C0 | 00000410 | CYRILLIC CAPITAL LETTER A C1 | 00000411 | CYRILLIC CAPITAL LETTER BE C2 | 00000412 | CYRILLIC CAPITAL LETTER VE C3 | 00000413 | CYRILLIC CAPITAL LETTER GHE C4 | 00000414 | CYRILLIC CAPITAL LETTER DE C5 | 00000415 | CYRILLIC CAPITAL LETTER IE C6 | 00000416 | CYRILLIC CAPITAL LETTER ZHE C7 | 00000417 | CYRILLIC CAPITAL LETTER ZE C8 | 00000418 | CYRILLIC CAPITAL LETTER I C9 | 00000419 | CYRILLIC CAPITAL LETTER SHORT I CA | 0000041A | CYRILLIC CAPITAL LETTER KA CB | 0000041B | CYRILLIC CAPITAL LETTER EL CC | 0000041C | CYRILLIC CAPITAL LETTER EM CD | 0000041D | CYRILLIC CAPITAL LETTER EN CE | 0000041E | CYRILLIC CAPITAL LETTER O CF | 0000041F | CYRILLIC CAPITAL LETTER PE D0 | 00000420 | CYRILLIC CAPITAL LETTER ER D1 | 00000421 | CYRILLIC CAPITAL LETTER ES D2 | 00000422 | CYRILLIC CAPITAL LETTER TE D3 | 00000423 | CYRILLIC CAPITAL LETTER U D4 | 00000424 | CYRILLIC CAPITAL LETTER EF D5 | 00000425 | CYRILLIC CAPITAL LETTER HA D6 | 00000426 | CYRILLIC CAPITAL LETTER TSE D7 | 00000427 | CYRILLIC CAPITAL LETTER CHE D8 | 00000428 | CYRILLIC CAPITAL LETTER SHA D9 | 00000429 | CYRILLIC CAPITAL LETTER SHCHA DA | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN DB | 0000042B | CYRILLIC CAPITAL LETTER YERU DC | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN DD | 0000042D | CYRILLIC CAPITAL LETTER E DE | 0000042E | CYRILLIC CAPITAL LETTER YU DF | 0000042F | CYRILLIC CAPITAL LETTER YA E0 | 00000430 | CYRILLIC SMALL LETTER A E1 | 00000431 | CYRILLIC SMALL LETTER BE E2 | 00000432 | CYRILLIC SMALL LETTER VE E3 | 00000433 | CYRILLIC SMALL LETTER GHE E4 | 00000434 | CYRILLIC SMALL LETTER DE E5 | 00000435 | CYRILLIC SMALL LETTER IE E6 | 00000436 | CYRILLIC SMALL LETTER ZHE E7 | 00000437 | CYRILLIC SMALL LETTER ZE E8 | 00000438 | CYRILLIC SMALL LETTER I E9 | 00000439 | CYRILLIC SMALL LETTER SHORT I EA | 0000043A | CYRILLIC SMALL LETTER KA EB | 0000043B | CYRILLIC SMALL LETTER EL EC | 0000043C | CYRILLIC SMALL LETTER EM ED | 0000043D | CYRILLIC SMALL LETTER EN EE | 0000043E | CYRILLIC SMALL LETTER O EF | 0000043F | CYRILLIC SMALL LETTER PE F0 | 00000440 | CYRILLIC SMALL LETTER ER F1 | 00000441 | CYRILLIC SMALL LETTER ES F2 | 00000442 | CYRILLIC SMALL LETTER TE F3 | 00000443 | CYRILLIC SMALL LETTER U F4 | 00000444 | CYRILLIC SMALL LETTER EF F5 | 00000445 | CYRILLIC SMALL LETTER HA F6 | 00000446 | CYRILLIC SMALL LETTER TSE F7 | 00000447 | CYRILLIC SMALL LETTER CHE F8 | 00000448 | CYRILLIC SMALL LETTER SHA F9 | 00000449 | CYRILLIC SMALL LETTER SHCHA FA | 0000044A | CYRILLIC SMALL LETTER HARD SIGN FB | 0000044B | CYRILLIC SMALL LETTER YERU FC | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN FD | 0000044D | CYRILLIC SMALL LETTER E FE | 0000044E | CYRILLIC SMALL LETTER YU FF | 0000044F | CYRILLIC SMALL LETTER YA =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]'{DllRecodeData/IBM860.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM860. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM860; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e3, 0x00e0, 0x00c1, 0x00e7, 0x00ea, 0x00ca, 0x00e8, 0x00cd, 0x00d4, 0x00ec, 0x00c3, 0x00c2, 0x00c9, 0x00c0, 0x00c8, 0x00f4, 0x00f5, 0x00f2, 0x00da, 0x00f9, 0x00cc, 0x00d5, 0x00dc, 0x00a2, 0x00a3, 0x00d9, 0x20a7, 0x00d3, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, 0x00bf, 0x00d2, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc3\x87", "\xc3\xbc", "\xc3\xa9", "\xc3\xa2", "\xc3\xa3", "\xc3\xa0", "\xc3\x81", "\xc3\xa7", "\xc3\xaa", "\xc3\x8a", "\xc3\xa8", "\xc3\x8d", "\xc3\x94", "\xc3\xac", "\xc3\x83", "\xc3\x82", "\xc3\x89", "\xc3\x80", "\xc3\x88", "\xc3\xb4", "\xc3\xb5", "\xc3\xb2", "\xc3\x9a", "\xc3\xb9", "\xc3\x8c", "\xc3\x95", "\xc3\x9c", "\xc2\xa2", "\xc2\xa3", "\xc3\x99", "\xe2\x82\xa7", "\xc3\x93", "\xc3\xa1", "\xc3\xad", "\xc3\xb3", "\xc3\xba", "\xc3\xb1", "\xc3\x91", "\xc2\xaa", "\xc2\xba", "\xc2\xbf", "\xc3\x92", "\xc2\xac", "\xc2\xbd", "\xc2\xbc", "\xc2\xa1", "\xc2\xab", "\xc2\xbb", "\xe2\x96\x91", "\xe2\x96\x92", "\xe2\x96\x93", "\xe2\x94\x82", "\xe2\x94\xa4", "\xe2\x95\xa1", "\xe2\x95\xa2", "\xe2\x95\x96", "\xe2\x95\x95", "\xe2\x95\xa3", "\xe2\x95\x91", "\xe2\x95\x97", "\xe2\x95\x9d", "\xe2\x95\x9c", "\xe2\x95\x9b", "\xe2\x94\x90", "\xe2\x94\x94", "\xe2\x94\xb4", "\xe2\x94\xac", "\xe2\x94\x9c", "\xe2\x94\x80", "\xe2\x94\xbc", "\xe2\x95\x9e", "\xe2\x95\x9f", "\xe2\x95\x9a", "\xe2\x95\x94", "\xe2\x95\xa9", "\xe2\x95\xa6", "\xe2\x95\xa0", "\xe2\x95\x90", "\xe2\x95\xac", "\xe2\x95\xa7", "\xe2\x95\xa8", "\xe2\x95\xa4", "\xe2\x95\xa5", "\xe2\x95\x99", "\xe2\x95\x98", "\xe2\x95\x92", "\xe2\x95\x93", "\xe2\x95\xab", "\xe2\x95\xaa", "\xe2\x94\x98", "\xe2\x94\x8c", "\xe2\x96\x88", "\xe2\x96\x84", "\xe2\x96\x8c", "\xe2\x96\x90", "\xe2\x96\x80", "\xce\xb1", "\xc3\x9f", "\xce\x93", "\xcf\x80", "\xce\xa3", "\xcf\x83", "\xc2\xb5", "\xcf\x84", "\xce\xa6", "\xce\x98", "\xce\xa9", "\xce\xb4", "\xe2\x88\x9e", "\xcf\x86", "\xce\xb5", "\xe2\x88\xa9", "\xe2\x89\xa1", "\xc2\xb1", "\xe2\x89\xa5", "\xe2\x89\xa4", "\xe2\x8c\xa0", "\xe2\x8c\xa1", "\xc3\xb7", "\xe2\x89\x88", "\xc2\xb0", "\xe2\x88\x99", "\xc2\xb7", "\xe2\x88\x9a", "\xe2\x81\xbf", "\xc2\xb2", "\xe2\x96\xa0", "\xc2\xa0", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xff", 0x000000a1 => "\xad", 0x000000a2 => "\x9b", 0x000000a3 => "\x9c", 0x000000aa => "\xa6", 0x000000ab => "\xae", 0x000000ac => "\xaa", 0x000000b0 => "\xf8", 0x000000b1 => "\xf1", 0x000000b2 => "\xfd", 0x000000b5 => "\xe6", 0x000000b7 => "\xfa", 0x000000ba => "\xa7", 0x000000bb => "\xaf", 0x000000bc => "\xac", 0x000000bd => "\xab", 0x000000bf => "\xa8", 0x000000c0 => "\x91", 0x000000c1 => "\x86", 0x000000c2 => "\x8f", 0x000000c3 => "\x8e", 0x000000c7 => "\x80", 0x000000c8 => "\x92", 0x000000c9 => "\x90", 0x000000ca => "\x89", 0x000000cc => "\x98", 0x000000cd => "\x8b", 0x000000d1 => "\xa5", 0x000000d2 => "\xa9", 0x000000d3 => "\x9f", 0x000000d4 => "\x8c", 0x000000d5 => "\x99", 0x000000d9 => "\x9d", 0x000000da => "\x96", 0x000000dc => "\x9a", 0x000000df => "\xe1", 0x000000e0 => "\x85", 0x000000e1 => "\xa0", 0x000000e2 => "\x83", 0x000000e3 => "\x84", 0x000000e7 => "\x87", 0x000000e8 => "\x8a", 0x000000e9 => "\x82", 0x000000ea => "\x88", 0x000000ec => "\x8d", 0x000000ed => "\xa1", 0x000000f1 => "\xa4", 0x000000f2 => "\x95", 0x000000f3 => "\xa2", 0x000000f4 => "\x93", 0x000000f5 => "\x94", 0x000000f7 => "\xf6", 0x000000f9 => "\x97", 0x000000fa => "\xa3", 0x000000fc => "\x81", 0x00000393 => "\xe2", 0x00000398 => "\xe9", 0x000003a3 => "\xe4", 0x000003a6 => "\xe8", 0x000003a9 => "\xea", 0x000003b1 => "\xe0", 0x000003b4 => "\xeb", 0x000003b5 => "\xee", 0x000003c0 => "\xe3", 0x000003c3 => "\xe5", 0x000003c4 => "\xe7", 0x000003c6 => "\xed", 0x0000207f => "\xfc", 0x000020a7 => "\x9e", 0x00002219 => "\xf9", 0x0000221a => "\xfb", 0x0000221e => "\xec", 0x00002229 => "\xef", 0x00002248 => "\xf7", 0x00002261 => "\xf0", 0x00002264 => "\xf3", 0x00002265 => "\xf2", 0x00002320 => "\xf4", 0x00002321 => "\xf5", 0x00002500 => "\xc4", 0x00002502 => "\xb3", 0x0000250c => "\xda", 0x00002510 => "\xbf", 0x00002514 => "\xc0", 0x00002518 => "\xd9", 0x0000251c => "\xc3", 0x00002524 => "\xb4", 0x0000252c => "\xc2", 0x00002534 => "\xc1", 0x0000253c => "\xc5", 0x00002550 => "\xcd", 0x00002551 => "\xba", 0x00002552 => "\xd5", 0x00002553 => "\xd6", 0x00002554 => "\xc9", 0x00002555 => "\xb8", 0x00002556 => "\xb7", 0x00002557 => "\xbb", 0x00002558 => "\xd4", 0x00002559 => "\xd3", 0x0000255a => "\xc8", 0x0000255b => "\xbe", 0x0000255c => "\xbd", 0x0000255d => "\xbc", 0x0000255e => "\xc6", 0x0000255f => "\xc7", 0x00002560 => "\xcc", 0x00002561 => "\xb5", 0x00002562 => "\xb6", 0x00002563 => "\xb9", 0x00002564 => "\xd1", 0x00002565 => "\xd2", 0x00002566 => "\xcb", 0x00002567 => "\xcf", 0x00002568 => "\xd0", 0x00002569 => "\xca", 0x0000256a => "\xd8", 0x0000256b => "\xd7", 0x0000256c => "\xce", 0x00002580 => "\xdf", 0x00002584 => "\xdc", 0x00002588 => "\xdb", 0x0000258c => "\xdd", 0x00002590 => "\xde", 0x00002591 => "\xb0", 0x00002592 => "\xb1", 0x00002593 => "\xb2", 0x000025a0 => "\xfe", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM860 - Conversion routines for IBM860 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM860. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP860 alias 860 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS 82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 84 | 000000E3 | LATIN SMALL LETTER A WITH TILDE 85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 86 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE 87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 89 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX 8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 8B | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE 8C | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX 8D | 000000EC | LATIN SMALL LETTER I WITH GRAVE 8E | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE 8F | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX 90 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 91 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE 92 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE 93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX 94 | 000000F5 | LATIN SMALL LETTER O WITH TILDE 95 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE 96 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE 97 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 98 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE 99 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE 9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 9B | 000000A2 | CENT SIGN 9C | 000000A3 | POUND SIGN 9D | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE 9E | 000020A7 | PESETA SIGN 9F | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE A0 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE A1 | 000000ED | LATIN SMALL LETTER I WITH ACUTE A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE A4 | 000000F1 | LATIN SMALL LETTER N WITH TILDE A5 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE A6 | 000000AA | FEMININE ORDINAL INDICATOR A7 | 000000BA | MASCULINE ORDINAL INDICATOR A8 | 000000BF | INVERTED QUESTION MARK A9 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE AA | 000000AC | NOT SIGN AB | 000000BD | VULGAR FRACTION ONE HALF AC | 000000BC | VULGAR FRACTION ONE QUARTER AD | 000000A1 | INVERTED EXCLAMATION MARK AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK B0 | 00002591 | LIGHT SHADE B1 | 00002592 | MEDIUM SHADE B2 | 00002593 | DARK SHADE B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT B5 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE B6 | 00002562 | BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE B7 | 00002556 | BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE B8 | 00002555 | BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT BD | 0000255C | BOX DRAWINGS UP DOUBLE AND LEFT SINGLE BE | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL C6 | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE C7 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL CF | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE D0 | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE D1 | 00002564 | BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE D2 | 00002565 | BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE D3 | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE D4 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE D5 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE D6 | 00002553 | BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE D7 | 0000256B | BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE D8 | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT DB | 00002588 | FULL BLOCK DC | 00002584 | LOWER HALF BLOCK DD | 0000258C | LEFT HALF BLOCK DE | 00002590 | RIGHT HALF BLOCK DF | 00002580 | UPPER HALF BLOCK E0 | 000003B1 | GREEK SMALL LETTER ALPHA E1 | 000000DF | LATIN SMALL LETTER SHARP S (German) E2 | 00000393 | GREEK CAPITAL LETTER GAMMA E3 | 000003C0 | GREEK SMALL LETTER PI E4 | 000003A3 | GREEK CAPITAL LETTER SIGMA E5 | 000003C3 | GREEK SMALL LETTER SIGMA E6 | 000000B5 | MICRO SIGN E7 | 000003C4 | GREEK SMALL LETTER TAU E8 | 000003A6 | GREEK CAPITAL LETTER PHI E9 | 00000398 | GREEK CAPITAL LETTER THETA EA | 000003A9 | GREEK CAPITAL LETTER OMEGA EB | 000003B4 | GREEK SMALL LETTER DELTA EC | 0000221E | INFINITY ED | 000003C6 | GREEK SMALL LETTER PHI EE | 000003B5 | GREEK SMALL LETTER EPSILON EF | 00002229 | INTERSECTION F0 | 00002261 | IDENTICAL TO F1 | 000000B1 | PLUS-MINUS SIGN F2 | 00002265 | GREATER-THAN OR EQUAL TO F3 | 00002264 | LESS-THAN OR EQUAL TO F4 | 00002320 | TOP HALF INTEGRAL F5 | 00002321 | BOTTOM HALF INTEGRAL F6 | 000000F7 | DIVISION SIGN F7 | 00002248 | ALMOST EQUAL TO F8 | 000000B0 | DEGREE SIGN F9 | 00002219 | BULLET OPERATOR FA | 000000B7 | MIDDLE DOT FB | 0000221A | SQUARE ROOT FC | 0000207F | SUPERSCRIPT LATIN SMALL LETTER N FD | 000000B2 | SUPERSCRIPT TWO FE | 000025A0 | BLACK SQUARE FF | 000000A0 | NO-BREAK SPACE =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]vllRecodeData/ISO_8859_10.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ISO-8859-10. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ISO_8859_10; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x0104, 0x0112, 0x0122, 0x012a, 0x0128, 0x0136, 0x00a7, 0x013b, 0x0110, 0x0160, 0x0166, 0x017d, 0x00ad, 0x016a, 0x014a, 0x00b0, 0x0105, 0x0113, 0x0123, 0x012b, 0x0129, 0x0137, 0x00b7, 0x013c, 0x0111, 0x0161, 0x0167, 0x017e, 0x2015, 0x016b, 0x014b, 0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e, 0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x0145, 0x014c, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x0168, 0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, 0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f, 0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x00ef, 0x00f0, 0x0146, 0x014d, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x0169, 0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x0138, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\xc2\x85", "\xc2\x86", "\xc2\x87", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\xc2\x8d", "\xc2\x8e", "\xc2\x8f", "\xc2\x90", "\xc2\x91", "\xc2\x92", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\xc2\x97", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\xc2\x9c", "\xc2\x9d", "\xc2\x9e", "\xc2\x9f", "\xc2\xa0", "\xc4\x84", "\xc4\x92", "\xc4\xa2", "\xc4\xaa", "\xc4\xa8", "\xc4\xb6", "\xc2\xa7", "\xc4\xbb", "\xc4\x90", "\xc5\xa0", "\xc5\xa6", "\xc5\xbd", "\xc2\xad", "\xc5\xaa", "\xc5\x8a", "\xc2\xb0", "\xc4\x85", "\xc4\x93", "\xc4\xa3", "\xc4\xab", "\xc4\xa9", "\xc4\xb7", "\xc2\xb7", "\xc4\xbc", "\xc4\x91", "\xc5\xa1", "\xc5\xa7", "\xc5\xbe", "\xe2\x80\x95", "\xc5\xab", "\xc5\x8b", "\xc4\x80", "\xc3\x81", "\xc3\x82", "\xc3\x83", "\xc3\x84", "\xc3\x85", "\xc3\x86", "\xc4\xae", "\xc4\x8c", "\xc3\x89", "\xc4\x98", "\xc3\x8b", "\xc4\x96", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x90", "\xc5\x85", "\xc5\x8c", "\xc3\x93", "\xc3\x94", "\xc3\x95", "\xc3\x96", "\xc5\xa8", "\xc3\x98", "\xc5\xb2", "\xc3\x9a", "\xc3\x9b", "\xc3\x9c", "\xc3\x9d", "\xc3\x9e", "\xc3\x9f", "\xc4\x81", "\xc3\xa1", "\xc3\xa2", "\xc3\xa3", "\xc3\xa4", "\xc3\xa5", "\xc3\xa6", "\xc4\xaf", "\xc4\x8d", "\xc3\xa9", "\xc4\x99", "\xc3\xab", "\xc4\x97", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc3\xb0", "\xc5\x86", "\xc5\x8d", "\xc3\xb3", "\xc3\xb4", "\xc3\xb5", "\xc3\xb6", "\xc5\xa9", "\xc3\xb8", "\xc5\xb3", "\xc3\xba", "\xc3\xbb", "\xc3\xbc", "\xc3\xbd", "\xc3\xbe", "\xc4\xb8", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000080 => "\x80", 0x00000081 => "\x81", 0x00000082 => "\x82", 0x00000083 => "\x83", 0x00000084 => "\x84", 0x00000085 => "\x85", 0x00000086 => "\x86", 0x00000087 => "\x87", 0x00000088 => "\x88", 0x00000089 => "\x89", 0x0000008a => "\x8a", 0x0000008b => "\x8b", 0x0000008c => "\x8c", 0x0000008d => "\x8d", 0x0000008e => "\x8e", 0x0000008f => "\x8f", 0x00000090 => "\x90", 0x00000091 => "\x91", 0x00000092 => "\x92", 0x00000093 => "\x93", 0x00000094 => "\x94", 0x00000095 => "\x95", 0x00000096 => "\x96", 0x00000097 => "\x97", 0x00000098 => "\x98", 0x00000099 => "\x99", 0x0000009a => "\x9a", 0x0000009b => "\x9b", 0x0000009c => "\x9c", 0x0000009d => "\x9d", 0x0000009e => "\x9e", 0x0000009f => "\x9f", 0x000000a0 => "\xa0", 0x000000a7 => "\xa7", 0x000000ad => "\xad", 0x000000b0 => "\xb0", 0x000000b7 => "\xb7", 0x000000c1 => "\xc1", 0x000000c2 => "\xc2", 0x000000c3 => "\xc3", 0x000000c4 => "\xc4", 0x000000c5 => "\xc5", 0x000000c6 => "\xc6", 0x000000c9 => "\xc9", 0x000000cb => "\xcb", 0x000000cd => "\xcd", 0x000000ce => "\xce", 0x000000cf => "\xcf", 0x000000d0 => "\xd0", 0x000000d3 => "\xd3", 0x000000d4 => "\xd4", 0x000000d5 => "\xd5", 0x000000d6 => "\xd6", 0x000000d8 => "\xd8", 0x000000da => "\xda", 0x000000db => "\xdb", 0x000000dc => "\xdc", 0x000000dd => "\xdd", 0x000000de => "\xde", 0x000000df => "\xdf", 0x000000e1 => "\xe1", 0x000000e2 => "\xe2", 0x000000e3 => "\xe3", 0x000000e4 => "\xe4", 0x000000e5 => "\xe5", 0x000000e6 => "\xe6", 0x000000e9 => "\xe9", 0x000000eb => "\xeb", 0x000000ed => "\xed", 0x000000ee => "\xee", 0x000000ef => "\xef", 0x000000f0 => "\xf0", 0x000000f3 => "\xf3", 0x000000f4 => "\xf4", 0x000000f5 => "\xf5", 0x000000f6 => "\xf6", 0x000000f8 => "\xf8", 0x000000fa => "\xfa", 0x000000fb => "\xfb", 0x000000fc => "\xfc", 0x000000fd => "\xfd", 0x000000fe => "\xfe", 0x00000100 => "\xc0", 0x00000101 => "\xe0", 0x00000104 => "\xa1", 0x00000105 => "\xb1", 0x0000010c => "\xc8", 0x0000010d => "\xe8", 0x00000110 => "\xa9", 0x00000111 => "\xb9", 0x00000112 => "\xa2", 0x00000113 => "\xb2", 0x00000116 => "\xcc", 0x00000117 => "\xec", 0x00000118 => "\xca", 0x00000119 => "\xea", 0x00000122 => "\xa3", 0x00000123 => "\xb3", 0x00000128 => "\xa5", 0x00000129 => "\xb5", 0x0000012a => "\xa4", 0x0000012b => "\xb4", 0x0000012e => "\xc7", 0x0000012f => "\xe7", 0x00000136 => "\xa6", 0x00000137 => "\xb6", 0x00000138 => "\xff", 0x0000013b => "\xa8", 0x0000013c => "\xb8", 0x00000145 => "\xd1", 0x00000146 => "\xf1", 0x0000014a => "\xaf", 0x0000014b => "\xbf", 0x0000014c => "\xd2", 0x0000014d => "\xf2", 0x00000160 => "\xaa", 0x00000161 => "\xba", 0x00000166 => "\xab", 0x00000167 => "\xbb", 0x00000168 => "\xd7", 0x00000169 => "\xf7", 0x0000016a => "\xae", 0x0000016b => "\xbe", 0x00000172 => "\xd9", 0x00000173 => "\xf9", 0x0000017d => "\xac", 0x0000017e => "\xbc", 0x00002015 => "\xbd", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ISO_8859_10 - Conversion routines for ISO-8859-10 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for ISO-8859-10. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: ECMA registry alias ISO-IR-157 alias ISO_8859-10:1992 alias ISO_8859-10 alias L6 alias LATIN6 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000080 | PADDING CHARACTER (PAD) 81 | 00000081 | HIGH OCTET PRESET (HOP) 82 | 00000082 | BREAK PERMITTED HERE (BPH) 83 | 00000083 | NO BREAK HERE (NBH) 84 | 00000084 | INDEX (IND) 85 | 00000085 | NEXT LINE (NEL) 86 | 00000086 | START OF SELECTED AREA (SSA) 87 | 00000087 | END OF SELECTED AREA (ESA) 88 | 00000088 | CHARACTER TABULATION SET (HTS) 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 8A | 0000008A | LINE TABULATION SET (VTS) 8B | 0000008B | PARTIAL LINE FORWARD (PLD) 8C | 0000008C | PARTIAL LINE BACKWARD (PLU) 8D | 0000008D | REVERSE LINE FEED (RI) 8E | 0000008E | SINGLE-SHIFT TWO (SS2) 8F | 0000008F | SINGLE-SHIFT THREE (SS3) 90 | 00000090 | DEVICE CONTROL STRING (DCS) 91 | 00000091 | PRIVATE USE ONE (PU1) 92 | 00000092 | PRIVATE USE TWO (PU2) 93 | 00000093 | SET TRANSMIT STATE (STS) 94 | 00000094 | CANCEL CHARACTER (CCH) 95 | 00000095 | MESSAGE WAITING (MW) 96 | 00000096 | START OF GUARDED AREA (SPA) 97 | 00000097 | END OF GUARDED AREA (EPA) 98 | 00000098 | START OF STRING (SOS) 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 9C | 0000009C | STRING TERMINATOR (ST) 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC) 9E | 0000009E | PRIVACY MESSAGE (PM) 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC) A0 | 000000A0 | NO-BREAK SPACE A1 | 00000104 | LATIN CAPITAL LETTER A WITH OGONEK A2 | 00000112 | LATIN CAPITAL LETTER E WITH MACRON A3 | 00000122 | LATIN CAPITAL LETTER G WITH CEDILLA A4 | 0000012A | LATIN CAPITAL LETTER I WITH MACRON A5 | 00000128 | LATIN CAPITAL LETTER I WITH TILDE A6 | 00000136 | LATIN CAPITAL LETTER K WITH CEDILLA A7 | 000000A7 | SECTION SIGN A8 | 0000013B | LATIN CAPITAL LETTER L WITH CEDILLA A9 | 00000110 | LATIN CAPITAL LETTER D WITH STROKE AA | 00000160 | LATIN CAPITAL LETTER S WITH CARON AB | 00000166 | LATIN CAPITAL LETTER T WITH STROKE AC | 0000017D | LATIN CAPITAL LETTER Z WITH CARON AD | 000000AD | SOFT HYPHEN AE | 0000016A | LATIN CAPITAL LETTER U WITH MACRON AF | 0000014A | LATIN CAPITAL LETTER ENG (Sami) B0 | 000000B0 | DEGREE SIGN B1 | 00000105 | LATIN SMALL LETTER A WITH OGONEK B2 | 00000113 | LATIN SMALL LETTER E WITH MACRON B3 | 00000123 | LATIN SMALL LETTER G WITH CEDILLA B4 | 0000012B | LATIN SMALL LETTER I WITH MACRON B5 | 00000129 | LATIN SMALL LETTER I WITH TILDE B6 | 00000137 | LATIN SMALL LETTER K WITH CEDILLA B7 | 000000B7 | MIDDLE DOT B8 | 0000013C | LATIN SMALL LETTER L WITH CEDILLA B9 | 00000111 | LATIN SMALL LETTER D WITH STROKE BA | 00000161 | LATIN SMALL LETTER S WITH CARON BB | 00000167 | LATIN SMALL LETTER T WITH STROKE BC | 0000017E | LATIN SMALL LETTER Z WITH CARON BD | 00002015 | HORIZONTAL BAR BE | 0000016B | LATIN SMALL LETTER U WITH MACRON BF | 0000014B | LATIN SMALL LETTER ENG (Sami) C0 | 00000100 | LATIN CAPITAL LETTER A WITH MACRON C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE C6 | 000000C6 | LATIN CAPITAL LETTER AE C7 | 0000012E | LATIN CAPITAL LETTER I WITH OGONEK C8 | 0000010C | LATIN CAPITAL LETTER C WITH CARON C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE CA | 00000118 | LATIN CAPITAL LETTER E WITH OGONEK CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS CC | 00000116 | LATIN CAPITAL LETTER E WITH DOT ABOVE CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS D0 | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic) D1 | 00000145 | LATIN CAPITAL LETTER N WITH CEDILLA D2 | 0000014C | LATIN CAPITAL LETTER O WITH MACRON D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS D7 | 00000168 | LATIN CAPITAL LETTER U WITH TILDE D8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE D9 | 00000172 | LATIN CAPITAL LETTER U WITH OGONEK DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS DD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE DE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic) DF | 000000DF | LATIN SMALL LETTER SHARP S (German) E0 | 00000101 | LATIN SMALL LETTER A WITH MACRON E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE E6 | 000000E6 | LATIN SMALL LETTER AE E7 | 0000012F | LATIN SMALL LETTER I WITH OGONEK E8 | 0000010D | LATIN SMALL LETTER C WITH CARON E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE EA | 00000119 | LATIN SMALL LETTER E WITH OGONEK EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS EC | 00000117 | LATIN SMALL LETTER E WITH DOT ABOVE ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS F0 | 000000F0 | LATIN SMALL LETTER ETH (Icelandic) F1 | 00000146 | LATIN SMALL LETTER N WITH CEDILLA F2 | 0000014D | LATIN SMALL LETTER O WITH MACRON F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS F7 | 00000169 | LATIN SMALL LETTER U WITH TILDE F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE F9 | 00000173 | LATIN SMALL LETTER U WITH OGONEK FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE FE | 000000FE | LATIN SMALL LETTER THORN (Icelandic) FF | 00000138 | LATIN SMALL LETTER KRA (Greenlandic) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]LzGGRecodeData/IBM904.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM904. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM904; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00a2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00ac, 0x00a6, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\xa2", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xac", "\xc2\xa6", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a2 => "\x80", 0x000000a6 => "\xfe", 0x000000ac => "\xfd", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM904 - Conversion routines for IBM904 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM904. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP904 alias 904 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000000A2 | CENT SIGN FD | 000000AC | NOT SIGN FE | 000000A6 | BROKEN BAR =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]IhhRecodeData/ISO_8859_7.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ISO-8859-7. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ISO_8859_7; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x2018, 0x2019, 0x00a3, 0xfffd, 0xfffd, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0xfffd, 0x00ab, 0x00ac, 0x00ad, 0xfffd, 0x2015, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x0385, 0x0386, 0x00b7, 0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e, 0x038f, 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0xfffd, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af, 0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\xc2\x85", "\xc2\x86", "\xc2\x87", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\xc2\x8d", "\xc2\x8e", "\xc2\x8f", "\xc2\x90", "\xc2\x91", "\xc2\x92", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\xc2\x97", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\xc2\x9c", "\xc2\x9d", "\xc2\x9e", "\xc2\x9f", "\xc2\xa0", "\xe2\x80\x98", "\xe2\x80\x99", "\xc2\xa3", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa6", "\xc2\xa7", "\xc2\xa8", "\xc2\xa9", "\xef\xbf\xbd", "\xc2\xab", "\xc2\xac", "\xc2\xad", "\xef\xbf\xbd", "\xe2\x80\x95", "\xc2\xb0", "\xc2\xb1", "\xc2\xb2", "\xc2\xb3", "\xce\x84", "\xce\x85", "\xce\x86", "\xc2\xb7", "\xce\x88", "\xce\x89", "\xce\x8a", "\xc2\xbb", "\xce\x8c", "\xc2\xbd", "\xce\x8e", "\xce\x8f", "\xce\x90", "\xce\x91", "\xce\x92", "\xce\x93", "\xce\x94", "\xce\x95", "\xce\x96", "\xce\x97", "\xce\x98", "\xce\x99", "\xce\x9a", "\xce\x9b", "\xce\x9c", "\xce\x9d", "\xce\x9e", "\xce\x9f", "\xce\xa0", "\xce\xa1", "\xef\xbf\xbd", "\xce\xa3", "\xce\xa4", "\xce\xa5", "\xce\xa6", "\xce\xa7", "\xce\xa8", "\xce\xa9", "\xce\xaa", "\xce\xab", "\xce\xac", "\xce\xad", "\xce\xae", "\xce\xaf", "\xce\xb0", "\xce\xb1", "\xce\xb2", "\xce\xb3", "\xce\xb4", "\xce\xb5", "\xce\xb6", "\xce\xb7", "\xce\xb8", "\xce\xb9", "\xce\xba", "\xce\xbb", "\xce\xbc", "\xce\xbd", "\xce\xbe", "\xce\xbf", "\xcf\x80", "\xcf\x81", "\xcf\x82", "\xcf\x83", "\xcf\x84", "\xcf\x85", "\xcf\x86", "\xcf\x87", "\xcf\x88", "\xcf\x89", "\xcf\x8a", "\xcf\x8b", "\xcf\x8c", "\xcf\x8d", "\xcf\x8e", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000080 => "\x80", 0x00000081 => "\x81", 0x00000082 => "\x82", 0x00000083 => "\x83", 0x00000084 => "\x84", 0x00000085 => "\x85", 0x00000086 => "\x86", 0x00000087 => "\x87", 0x00000088 => "\x88", 0x00000089 => "\x89", 0x0000008a => "\x8a", 0x0000008b => "\x8b", 0x0000008c => "\x8c", 0x0000008d => "\x8d", 0x0000008e => "\x8e", 0x0000008f => "\x8f", 0x00000090 => "\x90", 0x00000091 => "\x91", 0x00000092 => "\x92", 0x00000093 => "\x93", 0x00000094 => "\x94", 0x00000095 => "\x95", 0x00000096 => "\x96", 0x00000097 => "\x97", 0x00000098 => "\x98", 0x00000099 => "\x99", 0x0000009a => "\x9a", 0x0000009b => "\x9b", 0x0000009c => "\x9c", 0x0000009d => "\x9d", 0x0000009e => "\x9e", 0x0000009f => "\x9f", 0x000000a0 => "\xa0", 0x000000a3 => "\xa3", 0x000000a6 => "\xa6", 0x000000a7 => "\xa7", 0x000000a8 => "\xa8", 0x000000a9 => "\xa9", 0x000000ab => "\xab", 0x000000ac => "\xac", 0x000000ad => "\xad", 0x000000b0 => "\xb0", 0x000000b1 => "\xb1", 0x000000b2 => "\xb2", 0x000000b3 => "\xb3", 0x000000b7 => "\xb7", 0x000000bb => "\xbb", 0x000000bd => "\xbd", 0x00000384 => "\xb4", 0x00000385 => "\xb5", 0x00000386 => "\xb6", 0x00000388 => "\xb8", 0x00000389 => "\xb9", 0x0000038a => "\xba", 0x0000038c => "\xbc", 0x0000038e => "\xbe", 0x0000038f => "\xbf", 0x00000390 => "\xc0", 0x00000391 => "\xc1", 0x00000392 => "\xc2", 0x00000393 => "\xc3", 0x00000394 => "\xc4", 0x00000395 => "\xc5", 0x00000396 => "\xc6", 0x00000397 => "\xc7", 0x00000398 => "\xc8", 0x00000399 => "\xc9", 0x0000039a => "\xca", 0x0000039b => "\xcb", 0x0000039c => "\xcc", 0x0000039d => "\xcd", 0x0000039e => "\xce", 0x0000039f => "\xcf", 0x000003a0 => "\xd0", 0x000003a1 => "\xd1", 0x000003a3 => "\xd3", 0x000003a4 => "\xd4", 0x000003a5 => "\xd5", 0x000003a6 => "\xd6", 0x000003a7 => "\xd7", 0x000003a8 => "\xd8", 0x000003a9 => "\xd9", 0x000003aa => "\xda", 0x000003ab => "\xdb", 0x000003ac => "\xdc", 0x000003ad => "\xdd", 0x000003ae => "\xde", 0x000003af => "\xdf", 0x000003b0 => "\xe0", 0x000003b1 => "\xe1", 0x000003b2 => "\xe2", 0x000003b3 => "\xe3", 0x000003b4 => "\xe4", 0x000003b5 => "\xe5", 0x000003b6 => "\xe6", 0x000003b7 => "\xe7", 0x000003b8 => "\xe8", 0x000003b9 => "\xe9", 0x000003ba => "\xea", 0x000003bb => "\xeb", 0x000003bc => "\xec", 0x000003bd => "\xed", 0x000003be => "\xee", 0x000003bf => "\xef", 0x000003c0 => "\xf0", 0x000003c1 => "\xf1", 0x000003c2 => "\xf2", 0x000003c3 => "\xf3", 0x000003c4 => "\xf4", 0x000003c5 => "\xf5", 0x000003c6 => "\xf6", 0x000003c7 => "\xf7", 0x000003c8 => "\xf8", 0x000003c9 => "\xf9", 0x000003ca => "\xfa", 0x000003cb => "\xfb", 0x000003cc => "\xfc", 0x000003cd => "\xfd", 0x000003ce => "\xfe", 0x00002015 => "\xaf", 0x00002018 => "\xa1", 0x00002019 => "\xa2", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ISO_8859_7 - Conversion routines for ISO-8859-7 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for ISO-8859-7. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: ECMA registry alias ISO-IR-126 alias ISO_8859-7:1987 alias ISO_8859-7 alias ELOT_928 alias ECMA-118 alias GREEK alias GREEK8 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000080 | PADDING CHARACTER (PAD) 81 | 00000081 | HIGH OCTET PRESET (HOP) 82 | 00000082 | BREAK PERMITTED HERE (BPH) 83 | 00000083 | NO BREAK HERE (NBH) 84 | 00000084 | INDEX (IND) 85 | 00000085 | NEXT LINE (NEL) 86 | 00000086 | START OF SELECTED AREA (SSA) 87 | 00000087 | END OF SELECTED AREA (ESA) 88 | 00000088 | CHARACTER TABULATION SET (HTS) 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 8A | 0000008A | LINE TABULATION SET (VTS) 8B | 0000008B | PARTIAL LINE FORWARD (PLD) 8C | 0000008C | PARTIAL LINE BACKWARD (PLU) 8D | 0000008D | REVERSE LINE FEED (RI) 8E | 0000008E | SINGLE-SHIFT TWO (SS2) 8F | 0000008F | SINGLE-SHIFT THREE (SS3) 90 | 00000090 | DEVICE CONTROL STRING (DCS) 91 | 00000091 | PRIVATE USE ONE (PU1) 92 | 00000092 | PRIVATE USE TWO (PU2) 93 | 00000093 | SET TRANSMIT STATE (STS) 94 | 00000094 | CANCEL CHARACTER (CCH) 95 | 00000095 | MESSAGE WAITING (MW) 96 | 00000096 | START OF GUARDED AREA (SPA) 97 | 00000097 | END OF GUARDED AREA (EPA) 98 | 00000098 | START OF STRING (SOS) 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 9C | 0000009C | STRING TERMINATOR (ST) 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC) 9E | 0000009E | PRIVACY MESSAGE (PM) 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC) A0 | 000000A0 | NO-BREAK SPACE A1 | 00002018 | LEFT SINGLE QUOTATION MARK A2 | 00002019 | RIGHT SINGLE QUOTATION MARK A3 | 000000A3 | POUND SIGN A6 | 000000A6 | BROKEN BAR A7 | 000000A7 | SECTION SIGN A8 | 000000A8 | DIAERESIS A9 | 000000A9 | COPYRIGHT SIGN AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AC | 000000AC | NOT SIGN AD | 000000AD | SOFT HYPHEN AF | 00002015 | HORIZONTAL BAR B0 | 000000B0 | DEGREE SIGN B1 | 000000B1 | PLUS-MINUS SIGN B2 | 000000B2 | SUPERSCRIPT TWO B3 | 000000B3 | SUPERSCRIPT THREE B4 | 00000384 | GREEK TONOS B5 | 00000385 | GREEK DIALYTIKA TONOS B6 | 00000386 | GREEK CAPITAL LETTER ALPHA WITH TONOS B7 | 000000B7 | MIDDLE DOT B8 | 00000388 | GREEK CAPITAL LETTER EPSILON WITH TONOS B9 | 00000389 | GREEK CAPITAL LETTER ETA WITH TONOS BA | 0000038A | GREEK CAPITAL LETTER IOTA WITH TONOS BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK BC | 0000038C | GREEK CAPITAL LETTER OMICRON WITH TONOS BD | 000000BD | VULGAR FRACTION ONE HALF BE | 0000038E | GREEK CAPITAL LETTER UPSILON WITH TONOS BF | 0000038F | GREEK CAPITAL LETTER OMEGA WITH TONOS C0 | 00000390 | GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS C1 | 00000391 | GREEK CAPITAL LETTER ALPHA C2 | 00000392 | GREEK CAPITAL LETTER BETA C3 | 00000393 | GREEK CAPITAL LETTER GAMMA C4 | 00000394 | GREEK CAPITAL LETTER DELTA C5 | 00000395 | GREEK CAPITAL LETTER EPSILON C6 | 00000396 | GREEK CAPITAL LETTER ZETA C7 | 00000397 | GREEK CAPITAL LETTER ETA C8 | 00000398 | GREEK CAPITAL LETTER THETA C9 | 00000399 | GREEK CAPITAL LETTER IOTA CA | 0000039A | GREEK CAPITAL LETTER KAPPA CB | 0000039B | GREEK CAPITAL LETTER LAMDA CC | 0000039C | GREEK CAPITAL LETTER MU CD | 0000039D | GREEK CAPITAL LETTER NU CE | 0000039E | GREEK CAPITAL LETTER XI CF | 0000039F | GREEK CAPITAL LETTER OMICRON D0 | 000003A0 | GREEK CAPITAL LETTER PI D1 | 000003A1 | GREEK CAPITAL LETTER RHO D3 | 000003A3 | GREEK CAPITAL LETTER SIGMA D4 | 000003A4 | GREEK CAPITAL LETTER TAU D5 | 000003A5 | GREEK CAPITAL LETTER UPSILON D6 | 000003A6 | GREEK CAPITAL LETTER PHI D7 | 000003A7 | GREEK CAPITAL LETTER CHI D8 | 000003A8 | GREEK CAPITAL LETTER PSI D9 | 000003A9 | GREEK CAPITAL LETTER OMEGA DA | 000003AA | GREEK CAPITAL LETTER IOTA WITH DIALYTIKA DB | 000003AB | GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA DC | 000003AC | GREEK SMALL LETTER ALPHA WITH TONOS DD | 000003AD | GREEK SMALL LETTER EPSILON WITH TONOS DE | 000003AE | GREEK SMALL LETTER ETA WITH TONOS DF | 000003AF | GREEK SMALL LETTER IOTA WITH TONOS E0 | 000003B0 | GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS E1 | 000003B1 | GREEK SMALL LETTER ALPHA E2 | 000003B2 | GREEK SMALL LETTER BETA E3 | 000003B3 | GREEK SMALL LETTER GAMMA E4 | 000003B4 | GREEK SMALL LETTER DELTA E5 | 000003B5 | GREEK SMALL LETTER EPSILON E6 | 000003B6 | GREEK SMALL LETTER ZETA E7 | 000003B7 | GREEK SMALL LETTER ETA E8 | 000003B8 | GREEK SMALL LETTER THETA E9 | 000003B9 | GREEK SMALL LETTER IOTA EA | 000003BA | GREEK SMALL LETTER KAPPA EB | 000003BB | GREEK SMALL LETTER LAMDA EC | 000003BC | GREEK SMALL LETTER MU ED | 000003BD | GREEK SMALL LETTER NU EE | 000003BE | GREEK SMALL LETTER XI EF | 000003BF | GREEK SMALL LETTER OMICRON F0 | 000003C0 | GREEK SMALL LETTER PI F1 | 000003C1 | GREEK SMALL LETTER RHO F2 | 000003C2 | GREEK SMALL LETTER FINAL SIGMA F3 | 000003C3 | GREEK SMALL LETTER SIGMA F4 | 000003C4 | GREEK SMALL LETTER TAU F5 | 000003C5 | GREEK SMALL LETTER UPSILON F6 | 000003C6 | GREEK SMALL LETTER PHI F7 | 000003C7 | GREEK SMALL LETTER CHI F8 | 000003C8 | GREEK SMALL LETTER PSI F9 | 000003C9 | GREEK SMALL LETTER OMEGA FA | 000003CA | GREEK SMALL LETTER IOTA WITH DIALYTIKA FB | 000003CB | GREEK SMALL LETTER UPSILON WITH DIALYTIKA FC | 000003CC | GREEK SMALL LETTER OMICRON WITH TONOS FD | 000003CD | GREEK SMALL LETTER UPSILON WITH TONOS FE | 000003CE | GREEK SMALL LETTER OMEGA WITH TONOS =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]^=3hhRecodeData/CP1254.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for CP1254. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::CP1254; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0xfffd, 0xfffd, 0x0178, 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xe2\x82\xac", "\xef\xbf\xbd", "\xe2\x80\x9a", "\xc6\x92", "\xe2\x80\x9e", "\xe2\x80\xa6", "\xe2\x80\xa0", "\xe2\x80\xa1", "\xcb\x86", "\xe2\x80\xb0", "\xc5\xa0", "\xe2\x80\xb9", "\xc5\x92", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\xa2", "\xe2\x80\x93", "\xe2\x80\x94", "\xcb\x9c", "\xe2\x84\xa2", "\xc5\xa1", "\xe2\x80\xba", "\xc5\x93", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc5\xb8", "\xc2\xa0", "\xc2\xa1", "\xc2\xa2", "\xc2\xa3", "\xc2\xa4", "\xc2\xa5", "\xc2\xa6", "\xc2\xa7", "\xc2\xa8", "\xc2\xa9", "\xc2\xaa", "\xc2\xab", "\xc2\xac", "\xc2\xad", "\xc2\xae", "\xc2\xaf", "\xc2\xb0", "\xc2\xb1", "\xc2\xb2", "\xc2\xb3", "\xc2\xb4", "\xc2\xb5", "\xc2\xb6", "\xc2\xb7", "\xc2\xb8", "\xc2\xb9", "\xc2\xba", "\xc2\xbb", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\xc2\xbf", "\xc3\x80", "\xc3\x81", "\xc3\x82", "\xc3\x83", "\xc3\x84", "\xc3\x85", "\xc3\x86", "\xc3\x87", "\xc3\x88", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x8c", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc4\x9e", "\xc3\x91", "\xc3\x92", "\xc3\x93", "\xc3\x94", "\xc3\x95", "\xc3\x96", "\xc3\x97", "\xc3\x98", "\xc3\x99", "\xc3\x9a", "\xc3\x9b", "\xc3\x9c", "\xc4\xb0", "\xc5\x9e", "\xc3\x9f", "\xc3\xa0", "\xc3\xa1", "\xc3\xa2", "\xc3\xa3", "\xc3\xa4", "\xc3\xa5", "\xc3\xa6", "\xc3\xa7", "\xc3\xa8", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xac", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc4\x9f", "\xc3\xb1", "\xc3\xb2", "\xc3\xb3", "\xc3\xb4", "\xc3\xb5", "\xc3\xb6", "\xc3\xb7", "\xc3\xb8", "\xc3\xb9", "\xc3\xba", "\xc3\xbb", "\xc3\xbc", "\xc4\xb1", "\xc5\x9f", "\xc3\xbf", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xa0", 0x000000a1 => "\xa1", 0x000000a2 => "\xa2", 0x000000a3 => "\xa3", 0x000000a4 => "\xa4", 0x000000a5 => "\xa5", 0x000000a6 => "\xa6", 0x000000a7 => "\xa7", 0x000000a8 => "\xa8", 0x000000a9 => "\xa9", 0x000000aa => "\xaa", 0x000000ab => "\xab", 0x000000ac => "\xac", 0x000000ad => "\xad", 0x000000ae => "\xae", 0x000000af => "\xaf", 0x000000b0 => "\xb0", 0x000000b1 => "\xb1", 0x000000b2 => "\xb2", 0x000000b3 => "\xb3", 0x000000b4 => "\xb4", 0x000000b5 => "\xb5", 0x000000b6 => "\xb6", 0x000000b7 => "\xb7", 0x000000b8 => "\xb8", 0x000000b9 => "\xb9", 0x000000ba => "\xba", 0x000000bb => "\xbb", 0x000000bc => "\xbc", 0x000000bd => "\xbd", 0x000000be => "\xbe", 0x000000bf => "\xbf", 0x000000c0 => "\xc0", 0x000000c1 => "\xc1", 0x000000c2 => "\xc2", 0x000000c3 => "\xc3", 0x000000c4 => "\xc4", 0x000000c5 => "\xc5", 0x000000c6 => "\xc6", 0x000000c7 => "\xc7", 0x000000c8 => "\xc8", 0x000000c9 => "\xc9", 0x000000ca => "\xca", 0x000000cb => "\xcb", 0x000000cc => "\xcc", 0x000000cd => "\xcd", 0x000000ce => "\xce", 0x000000cf => "\xcf", 0x000000d1 => "\xd1", 0x000000d2 => "\xd2", 0x000000d3 => "\xd3", 0x000000d4 => "\xd4", 0x000000d5 => "\xd5", 0x000000d6 => "\xd6", 0x000000d7 => "\xd7", 0x000000d8 => "\xd8", 0x000000d9 => "\xd9", 0x000000da => "\xda", 0x000000db => "\xdb", 0x000000dc => "\xdc", 0x000000df => "\xdf", 0x000000e0 => "\xe0", 0x000000e1 => "\xe1", 0x000000e2 => "\xe2", 0x000000e3 => "\xe3", 0x000000e4 => "\xe4", 0x000000e5 => "\xe5", 0x000000e6 => "\xe6", 0x000000e7 => "\xe7", 0x000000e8 => "\xe8", 0x000000e9 => "\xe9", 0x000000ea => "\xea", 0x000000eb => "\xeb", 0x000000ec => "\xec", 0x000000ed => "\xed", 0x000000ee => "\xee", 0x000000ef => "\xef", 0x000000f1 => "\xf1", 0x000000f2 => "\xf2", 0x000000f3 => "\xf3", 0x000000f4 => "\xf4", 0x000000f5 => "\xf5", 0x000000f6 => "\xf6", 0x000000f7 => "\xf7", 0x000000f8 => "\xf8", 0x000000f9 => "\xf9", 0x000000fa => "\xfa", 0x000000fb => "\xfb", 0x000000fc => "\xfc", 0x000000ff => "\xff", 0x0000011e => "\xd0", 0x0000011f => "\xf0", 0x00000130 => "\xdd", 0x00000131 => "\xfd", 0x00000152 => "\x8c", 0x00000153 => "\x9c", 0x0000015e => "\xde", 0x0000015f => "\xfe", 0x00000160 => "\x8a", 0x00000161 => "\x9a", 0x00000178 => "\x9f", 0x00000192 => "\x83", 0x000002c6 => "\x88", 0x000002dc => "\x98", 0x00002013 => "\x96", 0x00002014 => "\x97", 0x00002018 => "\x91", 0x00002019 => "\x92", 0x0000201a => "\x82", 0x0000201c => "\x93", 0x0000201d => "\x94", 0x0000201e => "\x84", 0x00002020 => "\x86", 0x00002021 => "\x87", 0x00002022 => "\x95", 0x00002026 => "\x85", 0x00002030 => "\x89", 0x00002039 => "\x8b", 0x0000203a => "\x9b", 0x000020ac => "\x80", 0x00002122 => "\x99", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::CP1254 - Conversion routines for CP1254 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for CP1254. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 repertoiremap: mnemonic,ds source: UNICODE 1.0 alias MS-TURK Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000020AC | EURO SIGN 82 | 0000201A | SINGLE LOW-9 QUOTATION MARK 83 | 00000192 | LATIN SMALL LETTER F WITH HOOK 84 | 0000201E | DOUBLE LOW-9 QUOTATION MARK 85 | 00002026 | HORIZONTAL ELLIPSIS 86 | 00002020 | DAGGER 87 | 00002021 | DOUBLE DAGGER 88 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT 89 | 00002030 | PER MILLE SIGN 8A | 00000160 | LATIN CAPITAL LETTER S WITH CARON 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK 8C | 00000152 | LATIN CAPITAL LIGATURE OE 91 | 00002018 | LEFT SINGLE QUOTATION MARK 92 | 00002019 | RIGHT SINGLE QUOTATION MARK 93 | 0000201C | LEFT DOUBLE QUOTATION MARK 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK 95 | 00002022 | BULLET 96 | 00002013 | EN DASH 97 | 00002014 | EM DASH 98 | 000002DC | SMALL TILDE 99 | 00002122 | TRADE MARK SIGN 9A | 00000161 | LATIN SMALL LETTER S WITH CARON 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 9C | 00000153 | LATIN SMALL LIGATURE OE 9F | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS A0 | 000000A0 | NO-BREAK SPACE A1 | 000000A1 | INVERTED EXCLAMATION MARK A2 | 000000A2 | CENT SIGN A3 | 000000A3 | POUND SIGN A4 | 000000A4 | CURRENCY SIGN A5 | 000000A5 | YEN SIGN A6 | 000000A6 | BROKEN BAR A7 | 000000A7 | SECTION SIGN A8 | 000000A8 | DIAERESIS A9 | 000000A9 | COPYRIGHT SIGN AA | 000000AA | FEMININE ORDINAL INDICATOR AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AC | 000000AC | NOT SIGN AD | 000000AD | SOFT HYPHEN AE | 000000AE | REGISTERED SIGN AF | 000000AF | MACRON B0 | 000000B0 | DEGREE SIGN B1 | 000000B1 | PLUS-MINUS SIGN B2 | 000000B2 | SUPERSCRIPT TWO B3 | 000000B3 | SUPERSCRIPT THREE B4 | 000000B4 | ACUTE ACCENT B5 | 000000B5 | MICRO SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000B7 | MIDDLE DOT B8 | 000000B8 | CEDILLA B9 | 000000B9 | SUPERSCRIPT ONE BA | 000000BA | MASCULINE ORDINAL INDICATOR BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK BC | 000000BC | VULGAR FRACTION ONE QUARTER BD | 000000BD | VULGAR FRACTION ONE HALF BE | 000000BE | VULGAR FRACTION THREE QUARTERS BF | 000000BF | INVERTED QUESTION MARK C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE C6 | 000000C6 | LATIN CAPITAL LETTER AE C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS D0 | 0000011E | LATIN CAPITAL LETTER G WITH BREVE D1 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS D7 | 000000D7 | MULTIPLICATION SIGN D8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS DD | 00000130 | LATIN CAPITAL LETTER I WITH DOT ABOVE DE | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA DF | 000000DF | LATIN SMALL LETTER SHARP S (German) E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE E6 | 000000E6 | LATIN SMALL LETTER AE E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS EC | 000000EC | LATIN SMALL LETTER E WITH GRAVE ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS F0 | 0000011F | LATIN SMALL LETTER G WITH BREVE F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS F7 | 000000F7 | DIVISION SIGN F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS FD | 00000131 | LATIN SMALL LETTER DOTLESS I FE | 0000015F | LATIN SMALL LETTER S WITH CEDILLA FF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]kI$jjRecodeData/IBM256.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM256. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM256; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x203e, 0x00a8, 0x00b4, 0x2017, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x2003, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xc2\xa0", "\xc3\xa2", "\xc3\xa4", "\xc3\xa0", "\xc3\xa1", "\xc3\xa3", "\xc3\xa5", "\xc3\xa7", "\xc3\xb1", "\x5b", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xa8", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc3\xac", "\xc3\x9f", "\x5d", "\x24", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xc3\x82", "\xc3\x84", "\xc3\x80", "\xc3\x81", "\xc3\x83", "\xc3\x85", "\xc3\x87", "\xc3\x91", "\xc2\xa6", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xc3\xb8", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x88", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x8c", "\x60", "\x3a", "\x23", "\x40", "\x27", "\x3d", "\x22", "\xc3\x98", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xc2\xab", "\xc2\xbb", "\xc3\xb0", "\xc3\xbd", "\xc3\xbe", "\xc2\xb1", "\xc2\xb0", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xc2\xaa", "\xc2\xba", "\xc3\xa6", "\xc2\xb8", "\xc3\x86", "\xc2\xa4", "\xc2\xb5", "\x7e", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xc2\xa1", "\xc2\xbf", "\xc3\x90", "\xc3\x9d", "\xc3\x9e", "\xc2\xae", "\xc2\xa2", "\xc2\xa3", "\xc2\xa5", "\xe2\x82\xa7", "\xc6\x92", "\xc2\xa7", "\xc2\xb6", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\xc2\xac", "\x7c", "\xe2\x80\xbe", "\xc2\xa8", "\xc2\xb4", "\xe2\x80\x97", "\x7b", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xc2\xad", "\xc3\xb4", "\xc3\xb6", "\xc3\xb2", "\xc3\xb3", "\xc3\xb5", "\x7d", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xc2\xb9", "\xc3\xbb", "\xc3\xbc", "\xc3\xb9", "\xc3\xba", "\xc3\xbf", "\x5c", "\xe2\x80\x83", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xc2\xb2", "\xc3\x94", "\xc3\x96", "\xc3\x92", "\xc3\x93", "\xc3\x95", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xc2\xb3", "\xc3\x9b", "\xc3\x9c", "\xc3\x99", "\xc3\x9a", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000023 => "\x7b", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\x7c", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\x4a", 0x0000005c => "\xe0", 0x0000005d => "\x5a", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\xc0", 0x0000007c => "\xbb", 0x0000007d => "\xd0", 0x0000007e => "\xa1", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a0 => "\x41", 0x000000a1 => "\xaa", 0x000000a2 => "\xb0", 0x000000a3 => "\xb1", 0x000000a4 => "\x9f", 0x000000a5 => "\xb2", 0x000000a6 => "\x6a", 0x000000a7 => "\xb5", 0x000000a8 => "\xbd", 0x000000aa => "\x9a", 0x000000ab => "\x8a", 0x000000ac => "\xba", 0x000000ad => "\xca", 0x000000ae => "\xaf", 0x000000b0 => "\x90", 0x000000b1 => "\x8f", 0x000000b2 => "\xea", 0x000000b3 => "\xfa", 0x000000b4 => "\xbe", 0x000000b5 => "\xa0", 0x000000b6 => "\xb6", 0x000000b8 => "\x9d", 0x000000b9 => "\xda", 0x000000ba => "\x9b", 0x000000bb => "\x8b", 0x000000bc => "\xb7", 0x000000bd => "\xb8", 0x000000be => "\xb9", 0x000000bf => "\xab", 0x000000c0 => "\x64", 0x000000c1 => "\x65", 0x000000c2 => "\x62", 0x000000c3 => "\x66", 0x000000c4 => "\x63", 0x000000c5 => "\x67", 0x000000c6 => "\x9e", 0x000000c7 => "\x68", 0x000000c8 => "\x74", 0x000000c9 => "\x71", 0x000000ca => "\x72", 0x000000cb => "\x73", 0x000000cc => "\x78", 0x000000cd => "\x75", 0x000000ce => "\x76", 0x000000cf => "\x77", 0x000000d0 => "\xac", 0x000000d1 => "\x69", 0x000000d2 => "\xed", 0x000000d3 => "\xee", 0x000000d4 => "\xeb", 0x000000d5 => "\xef", 0x000000d6 => "\xec", 0x000000d8 => "\x80", 0x000000d9 => "\xfd", 0x000000da => "\xfe", 0x000000db => "\xfb", 0x000000dc => "\xfc", 0x000000dd => "\xad", 0x000000de => "\xae", 0x000000df => "\x59", 0x000000e0 => "\x44", 0x000000e1 => "\x45", 0x000000e2 => "\x42", 0x000000e3 => "\x46", 0x000000e4 => "\x43", 0x000000e5 => "\x47", 0x000000e6 => "\x9c", 0x000000e7 => "\x48", 0x000000e8 => "\x54", 0x000000e9 => "\x51", 0x000000ea => "\x52", 0x000000eb => "\x53", 0x000000ec => "\x58", 0x000000ed => "\x55", 0x000000ee => "\x56", 0x000000ef => "\x57", 0x000000f0 => "\x8c", 0x000000f1 => "\x49", 0x000000f2 => "\xcd", 0x000000f3 => "\xce", 0x000000f4 => "\xcb", 0x000000f5 => "\xcf", 0x000000f6 => "\xcc", 0x000000f8 => "\x70", 0x000000f9 => "\xdd", 0x000000fa => "\xde", 0x000000fb => "\xdb", 0x000000fc => "\xdc", 0x000000fd => "\x8d", 0x000000fe => "\x8e", 0x000000ff => "\xdf", 0x00000192 => "\xb4", 0x00002003 => "\xe1", 0x00002017 => "\xbf", 0x0000203e => "\xbc", 0x000020a7 => "\xb3", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM256 - Conversion routines for IBM256 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM256. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM Registry C-H 3-3220-050 alias EBCDIC-INT1 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 41 | 000000A0 | NO-BREAK SPACE 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE 47 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE 4A | 0000005B | LEFT SQUARE BRACKET 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE 59 | 000000DF | LATIN SMALL LETTER SHARP S (German) 5A | 0000005D | RIGHT SQUARE BRACKET 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE 67 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 6A | 000000A6 | BROKEN BAR 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 00000023 | NUMBER SIGN 7C | 00000040 | COMMERCIAL AT 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic) 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE 8E | 000000FE | LATIN SMALL LETTER THORN (Icelandic) 8F | 000000B1 | PLUS-MINUS SIGN 90 | 000000B0 | DEGREE SIGN 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R 9A | 000000AA | FEMININE ORDINAL INDICATOR 9B | 000000BA | MASCULINE ORDINAL INDICATOR 9C | 000000E6 | LATIN SMALL LETTER AE 9D | 000000B8 | CEDILLA 9E | 000000C6 | LATIN CAPITAL LETTER AE 9F | 000000A4 | CURRENCY SIGN A0 | 000000B5 | MICRO SIGN A1 | 0000007E | TILDE A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z AA | 000000A1 | INVERTED EXCLAMATION MARK AB | 000000BF | INVERTED QUESTION MARK AC | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic) AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE AE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic) AF | 000000AE | REGISTERED SIGN B0 | 000000A2 | CENT SIGN B1 | 000000A3 | POUND SIGN B2 | 000000A5 | YEN SIGN B3 | 000020A7 | PESETA SIGN B4 | 00000192 | LATIN SMALL LETTER F WITH HOOK B5 | 000000A7 | SECTION SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000BC | VULGAR FRACTION ONE QUARTER B8 | 000000BD | VULGAR FRACTION ONE HALF B9 | 000000BE | VULGAR FRACTION THREE QUARTERS BA | 000000AC | NOT SIGN BB | 0000007C | VERTICAL LINE BC | 0000203E | OVERLINE BD | 000000A8 | DIAERESIS BE | 000000B4 | ACUTE ACCENT BF | 00002017 | DOUBLE LOW LINE C0 | 0000007B | LEFT CURLY BRACKET C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I CA | 000000AD | SOFT HYPHEN CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX CC | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE D0 | 0000007D | RIGHT CURLY BRACKET D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R DA | 000000B9 | SUPERSCRIPT ONE DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX DC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS E0 | 0000005C | REVERSE SOLIDUS E1 | 00002003 | EM SPACE E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z EA | 000000B2 | SUPERSCRIPT TWO EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX EC | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FA | 000000B3 | SUPERSCRIPT THREE FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]sEERecodeData/ASMO_449.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ASMO_449. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ASMO_449; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x00a4, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x060c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x061b, 0x003c, 0x003d, 0x003e, 0x061f, 0x0040, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, 0x0638, 0x0639, 0x063a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f, 0x0650, 0x0651, 0x0652, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x007b, 0x007c, 0x007d, 0x203e, 0x007f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\xc2\xa4", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\xd8\x8c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\xd8\x9b", "\x3c", "\x3d", "\x3e", "\xd8\x9f", "\x40", "\xd8\xa1", "\xd8\xa2", "\xd8\xa3", "\xd8\xa4", "\xd8\xa5", "\xd8\xa6", "\xd8\xa7", "\xd8\xa8", "\xd8\xa9", "\xd8\xaa", "\xd8\xab", "\xd8\xac", "\xd8\xad", "\xd8\xae", "\xd8\xaf", "\xd8\xb0", "\xd8\xb1", "\xd8\xb2", "\xd8\xb3", "\xd8\xb4", "\xd8\xb5", "\xd8\xb6", "\xd8\xb7", "\xd8\xb8", "\xd8\xb9", "\xd8\xba", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\xd9\x80", "\xd9\x81", "\xd9\x82", "\xd9\x83", "\xd9\x84", "\xd9\x85", "\xd9\x86", "\xd9\x87", "\xd9\x88", "\xd9\x89", "\xd9\x8a", "\xd9\x8b", "\xd9\x8c", "\xd9\x8d", "\xd9\x8e", "\xd9\x8f", "\xd9\x90", "\xd9\x91", "\xd9\x92", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x7b", "\x7c", "\x7d", "\xe2\x80\xbe", "\x7f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x00000040 => "\x40", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007f => "\x7f", 0x000000a4 => "\x24", 0x0000060c => "\x2c", 0x0000061b => "\x3b", 0x0000061f => "\x3f", 0x00000621 => "\x41", 0x00000622 => "\x42", 0x00000623 => "\x43", 0x00000624 => "\x44", 0x00000625 => "\x45", 0x00000626 => "\x46", 0x00000627 => "\x47", 0x00000628 => "\x48", 0x00000629 => "\x49", 0x0000062a => "\x4a", 0x0000062b => "\x4b", 0x0000062c => "\x4c", 0x0000062d => "\x4d", 0x0000062e => "\x4e", 0x0000062f => "\x4f", 0x00000630 => "\x50", 0x00000631 => "\x51", 0x00000632 => "\x52", 0x00000633 => "\x53", 0x00000634 => "\x54", 0x00000635 => "\x55", 0x00000636 => "\x56", 0x00000637 => "\x57", 0x00000638 => "\x58", 0x00000639 => "\x59", 0x0000063a => "\x5a", 0x00000640 => "\x60", 0x00000641 => "\x61", 0x00000642 => "\x62", 0x00000643 => "\x63", 0x00000644 => "\x64", 0x00000645 => "\x65", 0x00000646 => "\x66", 0x00000647 => "\x67", 0x00000648 => "\x68", 0x00000649 => "\x69", 0x0000064a => "\x6a", 0x0000064b => "\x6b", 0x0000064c => "\x6c", 0x0000064d => "\x6d", 0x0000064e => "\x6e", 0x0000064f => "\x6f", 0x00000650 => "\x70", 0x00000651 => "\x71", 0x00000652 => "\x72", 0x0000203e => "\x7e", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ASMO_449 - Conversion routines for ASMO_449 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for ASMO_449. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: ECMA registry alias ISO_9036 alias ARABIC7 alias ISO-IR-89 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 000000A4 | CURRENCY SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000060C | ARABIC COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000061B | ARABIC SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000061F | ARABIC QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000621 | ARABIC LETTER HAMZA 42 | 00000622 | ARABIC LETTER ALEF WITH MADDA ABOVE 43 | 00000623 | ARABIC LETTER ALEF WITH HAMZA ABOVE 44 | 00000624 | ARABIC LETTER WAW WITH HAMZA ABOVE 45 | 00000625 | ARABIC LETTER ALEF WITH HAMZA BELOW 46 | 00000626 | ARABIC LETTER YEH WITH HAMZA ABOVE 47 | 00000627 | ARABIC LETTER ALEF 48 | 00000628 | ARABIC LETTER BEH 49 | 00000629 | ARABIC LETTER TEH MARBUTA 4A | 0000062A | ARABIC LETTER TEH 4B | 0000062B | ARABIC LETTER THEH 4C | 0000062C | ARABIC LETTER JEEM 4D | 0000062D | ARABIC LETTER HAH 4E | 0000062E | ARABIC LETTER KHAH 4F | 0000062F | ARABIC LETTER DAL 50 | 00000630 | ARABIC LETTER THAL 51 | 00000631 | ARABIC LETTER REH 52 | 00000632 | ARABIC LETTER ZAIN 53 | 00000633 | ARABIC LETTER SEEN 54 | 00000634 | ARABIC LETTER SHEEN 55 | 00000635 | ARABIC LETTER SAD 56 | 00000636 | ARABIC LETTER DAD 57 | 00000637 | ARABIC LETTER TAH 58 | 00000638 | ARABIC LETTER ZAH 59 | 00000639 | ARABIC LETTER AIN 5A | 0000063A | ARABIC LETTER GHAIN 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000640 | ARABIC TATWEEL 61 | 00000641 | ARABIC LETTER FEH 62 | 00000642 | ARABIC LETTER QAF 63 | 00000643 | ARABIC LETTER KAF 64 | 00000644 | ARABIC LETTER LAM 65 | 00000645 | ARABIC LETTER MEEM 66 | 00000646 | ARABIC LETTER NOON 67 | 00000647 | ARABIC LETTER HEH 68 | 00000648 | ARABIC LETTER WAW 69 | 00000649 | ARABIC LETTER ALEF MAKSURA 6A | 0000064A | ARABIC LETTER YEH 6B | 0000064B | ARABIC FATHATAN 6C | 0000064C | ARABIC DAMMATAN 6D | 0000064D | ARABIC KASRATAN 6E | 0000064E | ARABIC FATHA 6F | 0000064F | ARABIC DAMMA 70 | 00000650 | ARABIC KASRA 71 | 00000651 | ARABIC SHADDA 72 | 00000652 | ARABIC SUKUN 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000203E | OVERLINE 7F | 0000007F | DELETE (DEL) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]K)l)lRecodeData/ISO_8859_2.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ISO-8859-2. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ISO_8859_2; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x0104, 0x02d8, 0x0141, 0x00a4, 0x013d, 0x015a, 0x00a7, 0x00a8, 0x0160, 0x015e, 0x0164, 0x0179, 0x00ad, 0x017d, 0x017b, 0x00b0, 0x0105, 0x02db, 0x0142, 0x00b4, 0x013e, 0x015b, 0x02c7, 0x00b8, 0x0161, 0x015f, 0x0165, 0x017a, 0x02dd, 0x017e, 0x017c, 0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7, 0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e, 0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7, 0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df, 0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7, 0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f, 0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7, 0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\xc2\x85", "\xc2\x86", "\xc2\x87", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\xc2\x8d", "\xc2\x8e", "\xc2\x8f", "\xc2\x90", "\xc2\x91", "\xc2\x92", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\xc2\x97", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\xc2\x9c", "\xc2\x9d", "\xc2\x9e", "\xc2\x9f", "\xc2\xa0", "\xc4\x84", "\xcb\x98", "\xc5\x81", "\xc2\xa4", "\xc4\xbd", "\xc5\x9a", "\xc2\xa7", "\xc2\xa8", "\xc5\xa0", "\xc5\x9e", "\xc5\xa4", "\xc5\xb9", "\xc2\xad", "\xc5\xbd", "\xc5\xbb", "\xc2\xb0", "\xc4\x85", "\xcb\x9b", "\xc5\x82", "\xc2\xb4", "\xc4\xbe", "\xc5\x9b", "\xcb\x87", "\xc2\xb8", "\xc5\xa1", "\xc5\x9f", "\xc5\xa5", "\xc5\xba", "\xcb\x9d", "\xc5\xbe", "\xc5\xbc", "\xc5\x94", "\xc3\x81", "\xc3\x82", "\xc4\x82", "\xc3\x84", "\xc4\xb9", "\xc4\x86", "\xc3\x87", "\xc4\x8c", "\xc3\x89", "\xc4\x98", "\xc3\x8b", "\xc4\x9a", "\xc3\x8d", "\xc3\x8e", "\xc4\x8e", "\xc4\x90", "\xc5\x83", "\xc5\x87", "\xc3\x93", "\xc3\x94", "\xc5\x90", "\xc3\x96", "\xc3\x97", "\xc5\x98", "\xc5\xae", "\xc3\x9a", "\xc5\xb0", "\xc3\x9c", "\xc3\x9d", "\xc5\xa2", "\xc3\x9f", "\xc5\x95", "\xc3\xa1", "\xc3\xa2", "\xc4\x83", "\xc3\xa4", "\xc4\xba", "\xc4\x87", "\xc3\xa7", "\xc4\x8d", "\xc3\xa9", "\xc4\x99", "\xc3\xab", "\xc4\x9b", "\xc3\xad", "\xc3\xae", "\xc4\x8f", "\xc4\x91", "\xc5\x84", "\xc5\x88", "\xc3\xb3", "\xc3\xb4", "\xc5\x91", "\xc3\xb6", "\xc3\xb7", "\xc5\x99", "\xc5\xaf", "\xc3\xba", "\xc5\xb1", "\xc3\xbc", "\xc3\xbd", "\xc5\xa3", "\xcb\x99", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000080 => "\x80", 0x00000081 => "\x81", 0x00000082 => "\x82", 0x00000083 => "\x83", 0x00000084 => "\x84", 0x00000085 => "\x85", 0x00000086 => "\x86", 0x00000087 => "\x87", 0x00000088 => "\x88", 0x00000089 => "\x89", 0x0000008a => "\x8a", 0x0000008b => "\x8b", 0x0000008c => "\x8c", 0x0000008d => "\x8d", 0x0000008e => "\x8e", 0x0000008f => "\x8f", 0x00000090 => "\x90", 0x00000091 => "\x91", 0x00000092 => "\x92", 0x00000093 => "\x93", 0x00000094 => "\x94", 0x00000095 => "\x95", 0x00000096 => "\x96", 0x00000097 => "\x97", 0x00000098 => "\x98", 0x00000099 => "\x99", 0x0000009a => "\x9a", 0x0000009b => "\x9b", 0x0000009c => "\x9c", 0x0000009d => "\x9d", 0x0000009e => "\x9e", 0x0000009f => "\x9f", 0x000000a0 => "\xa0", 0x000000a4 => "\xa4", 0x000000a7 => "\xa7", 0x000000a8 => "\xa8", 0x000000ad => "\xad", 0x000000b0 => "\xb0", 0x000000b4 => "\xb4", 0x000000b8 => "\xb8", 0x000000c1 => "\xc1", 0x000000c2 => "\xc2", 0x000000c4 => "\xc4", 0x000000c7 => "\xc7", 0x000000c9 => "\xc9", 0x000000cb => "\xcb", 0x000000cd => "\xcd", 0x000000ce => "\xce", 0x000000d3 => "\xd3", 0x000000d4 => "\xd4", 0x000000d6 => "\xd6", 0x000000d7 => "\xd7", 0x000000da => "\xda", 0x000000dc => "\xdc", 0x000000dd => "\xdd", 0x000000df => "\xdf", 0x000000e1 => "\xe1", 0x000000e2 => "\xe2", 0x000000e4 => "\xe4", 0x000000e7 => "\xe7", 0x000000e9 => "\xe9", 0x000000eb => "\xeb", 0x000000ed => "\xed", 0x000000ee => "\xee", 0x000000f3 => "\xf3", 0x000000f4 => "\xf4", 0x000000f6 => "\xf6", 0x000000f7 => "\xf7", 0x000000fa => "\xfa", 0x000000fc => "\xfc", 0x000000fd => "\xfd", 0x00000102 => "\xc3", 0x00000103 => "\xe3", 0x00000104 => "\xa1", 0x00000105 => "\xb1", 0x00000106 => "\xc6", 0x00000107 => "\xe6", 0x0000010c => "\xc8", 0x0000010d => "\xe8", 0x0000010e => "\xcf", 0x0000010f => "\xef", 0x00000110 => "\xd0", 0x00000111 => "\xf0", 0x00000118 => "\xca", 0x00000119 => "\xea", 0x0000011a => "\xcc", 0x0000011b => "\xec", 0x00000139 => "\xc5", 0x0000013a => "\xe5", 0x0000013d => "\xa5", 0x0000013e => "\xb5", 0x00000141 => "\xa3", 0x00000142 => "\xb3", 0x00000143 => "\xd1", 0x00000144 => "\xf1", 0x00000147 => "\xd2", 0x00000148 => "\xf2", 0x00000150 => "\xd5", 0x00000151 => "\xf5", 0x00000154 => "\xc0", 0x00000155 => "\xe0", 0x00000158 => "\xd8", 0x00000159 => "\xf8", 0x0000015a => "\xa6", 0x0000015b => "\xb6", 0x0000015e => "\xaa", 0x0000015f => "\xba", 0x00000160 => "\xa9", 0x00000161 => "\xb9", 0x00000162 => "\xde", 0x00000163 => "\xfe", 0x00000164 => "\xab", 0x00000165 => "\xbb", 0x0000016e => "\xd9", 0x0000016f => "\xf9", 0x00000170 => "\xdb", 0x00000171 => "\xfb", 0x00000179 => "\xac", 0x0000017a => "\xbc", 0x0000017b => "\xaf", 0x0000017c => "\xbf", 0x0000017d => "\xae", 0x0000017e => "\xbe", 0x000002c7 => "\xb7", 0x000002d8 => "\xa2", 0x000002d9 => "\xff", 0x000002db => "\xb2", 0x000002dd => "\xbd", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ISO_8859_2 - Conversion routines for ISO-8859-2 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for ISO-8859-2. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: ECMA registry alias ISO-IR-101 alias ISO_8859-2:1987 alias ISO_8859-2 alias LATIN2 alias L2 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000080 | PADDING CHARACTER (PAD) 81 | 00000081 | HIGH OCTET PRESET (HOP) 82 | 00000082 | BREAK PERMITTED HERE (BPH) 83 | 00000083 | NO BREAK HERE (NBH) 84 | 00000084 | INDEX (IND) 85 | 00000085 | NEXT LINE (NEL) 86 | 00000086 | START OF SELECTED AREA (SSA) 87 | 00000087 | END OF SELECTED AREA (ESA) 88 | 00000088 | CHARACTER TABULATION SET (HTS) 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 8A | 0000008A | LINE TABULATION SET (VTS) 8B | 0000008B | PARTIAL LINE FORWARD (PLD) 8C | 0000008C | PARTIAL LINE BACKWARD (PLU) 8D | 0000008D | REVERSE LINE FEED (RI) 8E | 0000008E | SINGLE-SHIFT TWO (SS2) 8F | 0000008F | SINGLE-SHIFT THREE (SS3) 90 | 00000090 | DEVICE CONTROL STRING (DCS) 91 | 00000091 | PRIVATE USE ONE (PU1) 92 | 00000092 | PRIVATE USE TWO (PU2) 93 | 00000093 | SET TRANSMIT STATE (STS) 94 | 00000094 | CANCEL CHARACTER (CCH) 95 | 00000095 | MESSAGE WAITING (MW) 96 | 00000096 | START OF GUARDED AREA (SPA) 97 | 00000097 | END OF GUARDED AREA (EPA) 98 | 00000098 | START OF STRING (SOS) 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 9C | 0000009C | STRING TERMINATOR (ST) 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC) 9E | 0000009E | PRIVACY MESSAGE (PM) 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC) A0 | 000000A0 | NO-BREAK SPACE A1 | 00000104 | LATIN CAPITAL LETTER A WITH OGONEK A2 | 000002D8 | BREVE A3 | 00000141 | LATIN CAPITAL LETTER L WITH STROKE A4 | 000000A4 | CURRENCY SIGN A5 | 0000013D | LATIN CAPITAL LETTER L WITH CARON A6 | 0000015A | LATIN CAPITAL LETTER S WITH ACUTE A7 | 000000A7 | SECTION SIGN A8 | 000000A8 | DIAERESIS A9 | 00000160 | LATIN CAPITAL LETTER S WITH CARON AA | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA AB | 00000164 | LATIN CAPITAL LETTER T WITH CARON AC | 00000179 | LATIN CAPITAL LETTER Z WITH ACUTE AD | 000000AD | SOFT HYPHEN AE | 0000017D | LATIN CAPITAL LETTER Z WITH CARON AF | 0000017B | LATIN CAPITAL LETTER Z WITH DOT ABOVE B0 | 000000B0 | DEGREE SIGN B1 | 00000105 | LATIN SMALL LETTER A WITH OGONEK B2 | 000002DB | OGONEK B3 | 00000142 | LATIN SMALL LETTER L WITH STROKE B4 | 000000B4 | ACUTE ACCENT B5 | 0000013E | LATIN SMALL LETTER L WITH CARON B6 | 0000015B | LATIN SMALL LETTER S WITH ACUTE B7 | 000002C7 | CARON (Mandarin Chinese third tone) B8 | 000000B8 | CEDILLA B9 | 00000161 | LATIN SMALL LETTER S WITH CARON BA | 0000015F | LATIN SMALL LETTER S WITH CEDILLA BB | 00000165 | LATIN SMALL LETTER T WITH CARON BC | 0000017A | LATIN SMALL LETTER Z WITH ACUTE BD | 000002DD | DOUBLE ACUTE ACCENT BE | 0000017E | LATIN SMALL LETTER Z WITH CARON BF | 0000017C | LATIN SMALL LETTER Z WITH DOT ABOVE C0 | 00000154 | LATIN CAPITAL LETTER R WITH ACUTE C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX C3 | 00000102 | LATIN CAPITAL LETTER A WITH BREVE C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS C5 | 00000139 | LATIN CAPITAL LETTER L WITH ACUTE C6 | 00000106 | LATIN CAPITAL LETTER C WITH ACUTE C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA C8 | 0000010C | LATIN CAPITAL LETTER C WITH CARON C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE CA | 00000118 | LATIN CAPITAL LETTER E WITH OGONEK CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS CC | 0000011A | LATIN CAPITAL LETTER E WITH CARON CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX CF | 0000010E | LATIN CAPITAL LETTER D WITH CARON D0 | 00000110 | LATIN CAPITAL LETTER D WITH STROKE D1 | 00000143 | LATIN CAPITAL LETTER N WITH ACUTE D2 | 00000147 | LATIN CAPITAL LETTER N WITH CARON D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX D5 | 00000150 | LATIN CAPITAL LETTER O WITH DOUBLE ACUTE D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS D7 | 000000D7 | MULTIPLICATION SIGN D8 | 00000158 | LATIN CAPITAL LETTER R WITH CARON D9 | 0000016E | LATIN CAPITAL LETTER U WITH RING ABOVE DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE DB | 00000170 | LATIN CAPITAL LETTER U WITH DOUBLE ACUTE DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS DD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE DE | 00000162 | LATIN CAPITAL LETTER T WITH CEDILLA DF | 000000DF | LATIN SMALL LETTER SHARP S (German) E0 | 00000155 | LATIN SMALL LETTER R WITH ACUTE E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX E3 | 00000103 | LATIN SMALL LETTER A WITH BREVE E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS E5 | 0000013A | LATIN SMALL LETTER L WITH ACUTE E6 | 00000107 | LATIN SMALL LETTER C WITH ACUTE E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA E8 | 0000010D | LATIN SMALL LETTER C WITH CARON E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE EA | 00000119 | LATIN SMALL LETTER E WITH OGONEK EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS EC | 0000011B | LATIN SMALL LETTER E WITH CARON ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX EF | 0000010F | LATIN SMALL LETTER D WITH CARON F0 | 00000111 | LATIN SMALL LETTER D WITH STROKE F1 | 00000144 | LATIN SMALL LETTER N WITH ACUTE F2 | 00000148 | LATIN SMALL LETTER N WITH CARON F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX F5 | 00000151 | LATIN SMALL LETTER O WITH DOUBLE ACUTE F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS F7 | 000000F7 | DIVISION SIGN F8 | 00000159 | LATIN SMALL LETTER R WITH CARON F9 | 0000016F | LATIN SMALL LETTER U WITH RING ABOVE FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE FB | 00000171 | LATIN SMALL LETTER U WITH DOUBLE ACUTE FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE FE | 00000163 | LATIN SMALL LETTER T WITH CEDILLA FF | 000002D9 | DOT ABOVE (Mandarin Chinese light tone) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]O:#j#jRecodeData/ISO_8859_15.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ISO-8859-15. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ISO_8859_15; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x20ac, 0x00a5, 0x0160, 0x00a7, 0x0161, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x017d, 0x00b5, 0x00b6, 0x00b7, 0x017e, 0x00b9, 0x00ba, 0x00bb, 0x0152, 0x0153, 0x0178, 0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\xc2\x85", "\xc2\x86", "\xc2\x87", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\xc2\x8d", "\xc2\x8e", "\xc2\x8f", "\xc2\x90", "\xc2\x91", "\xc2\x92", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\xc2\x97", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\xc2\x9c", "\xc2\x9d", "\xc2\x9e", "\xc2\x9f", "\xc2\xa0", "\xc2\xa1", "\xc2\xa2", "\xc2\xa3", "\xe2\x82\xac", "\xc2\xa5", "\xc5\xa0", "\xc2\xa7", "\xc5\xa1", "\xc2\xa9", "\xc2\xaa", "\xc2\xab", "\xc2\xac", "\xc2\xad", "\xc2\xae", "\xc2\xaf", "\xc2\xb0", "\xc2\xb1", "\xc2\xb2", "\xc2\xb3", "\xc5\xbd", "\xc2\xb5", "\xc2\xb6", "\xc2\xb7", "\xc5\xbe", "\xc2\xb9", "\xc2\xba", "\xc2\xbb", "\xc5\x92", "\xc5\x93", "\xc5\xb8", "\xc2\xbf", "\xc3\x80", "\xc3\x81", "\xc3\x82", "\xc3\x83", "\xc3\x84", "\xc3\x85", "\xc3\x86", "\xc3\x87", "\xc3\x88", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x8c", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x90", "\xc3\x91", "\xc3\x92", "\xc3\x93", "\xc3\x94", "\xc3\x95", "\xc3\x96", "\xc3\x97", "\xc3\x98", "\xc3\x99", "\xc3\x9a", "\xc3\x9b", "\xc3\x9c", "\xc3\x9d", "\xc3\x9e", "\xc3\x9f", "\xc3\xa0", "\xc3\xa1", "\xc3\xa2", "\xc3\xa3", "\xc3\xa4", "\xc3\xa5", "\xc3\xa6", "\xc3\xa7", "\xc3\xa8", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xac", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc3\xb0", "\xc3\xb1", "\xc3\xb2", "\xc3\xb3", "\xc3\xb4", "\xc3\xb5", "\xc3\xb6", "\xc3\xb7", "\xc3\xb8", "\xc3\xb9", "\xc3\xba", "\xc3\xbb", "\xc3\xbc", "\xc3\xbd", "\xc3\xbe", "\xc3\xbf", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000080 => "\x80", 0x00000081 => "\x81", 0x00000082 => "\x82", 0x00000083 => "\x83", 0x00000084 => "\x84", 0x00000085 => "\x85", 0x00000086 => "\x86", 0x00000087 => "\x87", 0x00000088 => "\x88", 0x00000089 => "\x89", 0x0000008a => "\x8a", 0x0000008b => "\x8b", 0x0000008c => "\x8c", 0x0000008d => "\x8d", 0x0000008e => "\x8e", 0x0000008f => "\x8f", 0x00000090 => "\x90", 0x00000091 => "\x91", 0x00000092 => "\x92", 0x00000093 => "\x93", 0x00000094 => "\x94", 0x00000095 => "\x95", 0x00000096 => "\x96", 0x00000097 => "\x97", 0x00000098 => "\x98", 0x00000099 => "\x99", 0x0000009a => "\x9a", 0x0000009b => "\x9b", 0x0000009c => "\x9c", 0x0000009d => "\x9d", 0x0000009e => "\x9e", 0x0000009f => "\x9f", 0x000000a0 => "\xa0", 0x000000a1 => "\xa1", 0x000000a2 => "\xa2", 0x000000a3 => "\xa3", 0x000000a5 => "\xa5", 0x000000a7 => "\xa7", 0x000000a9 => "\xa9", 0x000000aa => "\xaa", 0x000000ab => "\xab", 0x000000ac => "\xac", 0x000000ad => "\xad", 0x000000ae => "\xae", 0x000000af => "\xaf", 0x000000b0 => "\xb0", 0x000000b1 => "\xb1", 0x000000b2 => "\xb2", 0x000000b3 => "\xb3", 0x000000b5 => "\xb5", 0x000000b6 => "\xb6", 0x000000b7 => "\xb7", 0x000000b9 => "\xb9", 0x000000ba => "\xba", 0x000000bb => "\xbb", 0x000000bf => "\xbf", 0x000000c0 => "\xc0", 0x000000c1 => "\xc1", 0x000000c2 => "\xc2", 0x000000c3 => "\xc3", 0x000000c4 => "\xc4", 0x000000c5 => "\xc5", 0x000000c6 => "\xc6", 0x000000c7 => "\xc7", 0x000000c8 => "\xc8", 0x000000c9 => "\xc9", 0x000000ca => "\xca", 0x000000cb => "\xcb", 0x000000cc => "\xcc", 0x000000cd => "\xcd", 0x000000ce => "\xce", 0x000000cf => "\xcf", 0x000000d0 => "\xd0", 0x000000d1 => "\xd1", 0x000000d2 => "\xd2", 0x000000d3 => "\xd3", 0x000000d4 => "\xd4", 0x000000d5 => "\xd5", 0x000000d6 => "\xd6", 0x000000d7 => "\xd7", 0x000000d8 => "\xd8", 0x000000d9 => "\xd9", 0x000000da => "\xda", 0x000000db => "\xdb", 0x000000dc => "\xdc", 0x000000dd => "\xdd", 0x000000de => "\xde", 0x000000df => "\xdf", 0x000000e0 => "\xe0", 0x000000e1 => "\xe1", 0x000000e2 => "\xe2", 0x000000e3 => "\xe3", 0x000000e4 => "\xe4", 0x000000e5 => "\xe5", 0x000000e6 => "\xe6", 0x000000e7 => "\xe7", 0x000000e8 => "\xe8", 0x000000e9 => "\xe9", 0x000000ea => "\xea", 0x000000eb => "\xeb", 0x000000ec => "\xec", 0x000000ed => "\xed", 0x000000ee => "\xee", 0x000000ef => "\xef", 0x000000f0 => "\xf0", 0x000000f1 => "\xf1", 0x000000f2 => "\xf2", 0x000000f3 => "\xf3", 0x000000f4 => "\xf4", 0x000000f5 => "\xf5", 0x000000f6 => "\xf6", 0x000000f7 => "\xf7", 0x000000f8 => "\xf8", 0x000000f9 => "\xf9", 0x000000fa => "\xfa", 0x000000fb => "\xfb", 0x000000fc => "\xfc", 0x000000fd => "\xfd", 0x000000fe => "\xfe", 0x000000ff => "\xff", 0x00000152 => "\xbc", 0x00000153 => "\xbd", 0x00000160 => "\xa6", 0x00000161 => "\xa8", 0x00000178 => "\xbe", 0x0000017d => "\xb4", 0x0000017e => "\xb8", 0x000020ac => "\xa4", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ISO_8859_15 - Conversion routines for ISO-8859-15 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for ISO-8859-15. =head1 COMMENTS The following comments have been extracted from the original charmap: automatically generated from the charDB Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL 01 | 00000001 | START OF HEADING 02 | 00000002 | START OF TEXT 03 | 00000003 | END OF TEXT 04 | 00000004 | END OF TRANSMISSION 05 | 00000005 | ENQUIRY 06 | 00000006 | ACKNOWLEDGE 07 | 00000007 | BELL 08 | 00000008 | BACKSPACE 09 | 00000009 | HORIZONTAL TABULATION 0A | 0000000A | LINE FEED 0B | 0000000B | VERTICAL TABULATION 0C | 0000000C | FORM FEED 0D | 0000000D | CARRIAGE RETURN 0E | 0000000E | SHIFT OUT 0F | 0000000F | SHIFT IN 10 | 00000010 | DATA LINK ESCAPE 11 | 00000011 | DEVICE CONTROL ONE 12 | 00000012 | DEVICE CONTROL TWO 13 | 00000013 | DEVICE CONTROL THREE 14 | 00000014 | DEVICE CONTROL FOUR 15 | 00000015 | NEGATIVE ACKNOWLEDGE 16 | 00000016 | SYNCHRONOUS IDLE 17 | 00000017 | END OF TRANSMISSION BLOCK 18 | 00000018 | CANCEL 19 | 00000019 | END OF MEDIUM 1A | 0000001A | SUBSTITUTE 1B | 0000001B | ESCAPE 1C | 0000001C | FILE SEPARATOR 1D | 0000001D | GROUP SEPARATOR 1E | 0000001E | RECORD SEPARATOR 1F | 0000001F | UNIT SEPARATOR 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE 80 | 00000080 | PADDING CHARACTER (PAD) 81 | 00000081 | HIGH OCTET PRESET (HOP) 82 | 00000082 | BREAK PERMITTED HERE (BPH) 83 | 00000083 | NO BREAK HERE (NBH) 84 | 00000084 | INDEX (IND) 85 | 00000085 | NEXT LINE (NEL) 86 | 00000086 | START OF SELECTED AREA (SSA) 87 | 00000087 | END OF SELECTED AREA (ESA) 88 | 00000088 | CHARACTER TABULATION SET (HTS) 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 8A | 0000008A | LINE TABULATION SET (VTS) 8B | 0000008B | PARTIAL LINE FORWARD (PLD) 8C | 0000008C | PARTIAL LINE BACKWARD (PLU) 8D | 0000008D | REVERSE LINE FEED (RI) 8E | 0000008E | SINGLE-SHIFT TWO (SS2) 8F | 0000008F | SINGLE-SHIFT THREE (SS3) 90 | 00000090 | DEVICE CONTROL STRING (DCS) 91 | 00000091 | PRIVATE USE ONE (PU1) 92 | 00000092 | PRIVATE USE TWO (PU2) 93 | 00000093 | SET TRANSMIT STATE (STS) 94 | 00000094 | CANCEL CHARACTER (CCH) 95 | 00000095 | MESSAGE WAITING (MW) 96 | 00000096 | START OF GUARDED AREA (SPA) 97 | 00000097 | END OF GUARDED AREA (EPA) 98 | 00000098 | START OF STRING (SOS) 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 9C | 0000009C | STRING TERMINATOR (ST) 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC) 9E | 0000009E | PRIVACY MESSAGE (PM) 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC) A0 | 000000A0 | NO-BREAK SPACE A1 | 000000A1 | INVERTED EXCLAMATION MARK A2 | 000000A2 | CENT SIGN A3 | 000000A3 | POUND SIGN A4 | 000020AC | EURO SIGN A5 | 000000A5 | YEN SIGN A6 | 00000160 | LATIN CAPITAL LETTER S WITH CARON A7 | 000000A7 | SECTION SIGN A8 | 00000161 | LATIN SMALL LETTER S WITH CARON A9 | 000000A9 | COPYRIGHT SIGN AA | 000000AA | FEMININE ORDINAL INDICATOR AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AC | 000000AC | NOT SIGN AD | 000000AD | SOFT HYPHEN AE | 000000AE | REGISTERED SIGN AF | 000000AF | MACRON B0 | 000000B0 | DEGREE SIGN B1 | 000000B1 | PLUS-MINUS SIGN B2 | 000000B2 | SUPERSCRIPT TWO B3 | 000000B3 | SUPERSCRIPT THREE B4 | 0000017D | LATIN CAPITAL LETTER Z WITH CARON B5 | 000000B5 | MICRO SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000B7 | MIDDLE DOT B8 | 0000017E | LATIN SMALL LETTER Z WITH CARON B9 | 000000B9 | SUPERSCRIPT ONE BA | 000000BA | MASCULINE ORDINAL INDICATOR BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK BC | 00000152 | LATIN CAPITAL LIGATURE OE BD | 00000153 | LATIN SMALL LIGATURE OE BE | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS BF | 000000BF | INVERTED QUESTION MARK C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE C6 | 000000C6 | LATIN CAPITAL LETTER AE C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS D0 | 000000D0 | LATIN CAPITAL LETTER ETH D1 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS D7 | 000000D7 | MULTIPLICATION SIGN D8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS DD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE DE | 000000DE | LATIN CAPITAL LETTER THORN DF | 000000DF | LATIN SMALL LETTER SHARP S E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE E6 | 000000E6 | LATIN SMALL LETTER AE E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS F0 | 000000F0 | LATIN SMALL LETTER ETH F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS F7 | 000000F7 | DIVISION SIGN F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE FE | 000000FE | LATIN SMALL LETTER THORN FF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]QE9G9GRecodeData/IBM891.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM891. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM891; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM891 - Conversion routines for IBM891 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM891. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP891 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]UiiRecodeData/MACICELAND.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for MACICELAND. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::MACICELAND; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, 0x00dd, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, 0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x00c6, 0x00d8, 0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211, 0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x00e6, 0x00f8, 0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, 0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153, 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, 0x00ff, 0x0178, 0x2044, 0x00a4, 0x00d0, 0x00f0, 0x00de, 0x00fe, 0x00fd, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4, 0xfffd, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc, 0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc3\x84", "\xc3\x85", "\xc3\x87", "\xc3\x89", "\xc3\x91", "\xc3\x96", "\xc3\x9c", "\xc3\xa1", "\xc3\xa0", "\xc3\xa2", "\xc3\xa4", "\xc3\xa3", "\xc3\xa5", "\xc3\xa7", "\xc3\xa9", "\xc3\xa8", "\xc3\xaa", "\xc3\xab", "\xc3\xad", "\xc3\xac", "\xc3\xae", "\xc3\xaf", "\xc3\xb1", "\xc3\xb3", "\xc3\xb2", "\xc3\xb4", "\xc3\xb6", "\xc3\xb5", "\xc3\xba", "\xc3\xb9", "\xc3\xbb", "\xc3\xbc", "\xc3\x9d", "\xc2\xb0", "\xc2\xa2", "\xc2\xa3", "\xc2\xa7", "\xe2\x80\xa2", "\xc2\xb6", "\xc3\x9f", "\xc2\xae", "\xc2\xa9", "\xe2\x84\xa2", "\xc2\xb4", "\xc2\xa8", "\xe2\x89\xa0", "\xc3\x86", "\xc3\x98", "\xe2\x88\x9e", "\xc2\xb1", "\xe2\x89\xa4", "\xe2\x89\xa5", "\xc2\xa5", "\xc2\xb5", "\xe2\x88\x82", "\xe2\x88\x91", "\xe2\x88\x8f", "\xcf\x80", "\xe2\x88\xab", "\xc2\xaa", "\xc2\xba", "\xe2\x84\xa6", "\xc3\xa6", "\xc3\xb8", "\xc2\xbf", "\xc2\xa1", "\xc2\xac", "\xe2\x88\x9a", "\xc6\x92", "\xe2\x89\x88", "\xe2\x88\x86", "\xc2\xab", "\xc2\xbb", "\xe2\x80\xa6", "\xc2\xa0", "\xc3\x80", "\xc3\x83", "\xc3\x95", "\xc5\x92", "\xc5\x93", "\xe2\x80\x93", "\xe2\x80\x94", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x98", "\xe2\x80\x99", "\xc3\xb7", "\xe2\x97\x8a", "\xc3\xbf", "\xc5\xb8", "\xe2\x81\x84", "\xc2\xa4", "\xc3\x90", "\xc3\xb0", "\xc3\x9e", "\xc3\xbe", "\xc3\xbd", "\xc2\xb7", "\xe2\x80\x9a", "\xe2\x80\x9e", "\xe2\x80\xb0", "\xc3\x82", "\xc3\x8a", "\xc3\x81", "\xc3\x8b", "\xc3\x88", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x8c", "\xc3\x93", "\xc3\x94", "\xef\xbf\xbd", "\xc3\x92", "\xc3\x9a", "\xc3\x9b", "\xc3\x99", "\xc4\xb1", "\xcb\x86", "\xcb\x9c", "\xc2\xaf", "\xcb\x98", "\xcb\x99", "\xcb\x9a", "\xc2\xb8", "\xcb\x9d", "\xcb\x9b", "\xcb\x87", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xca", 0x000000a1 => "\xc1", 0x000000a2 => "\xa2", 0x000000a3 => "\xa3", 0x000000a4 => "\xdb", 0x000000a5 => "\xb4", 0x000000a7 => "\xa4", 0x000000a8 => "\xac", 0x000000a9 => "\xa9", 0x000000aa => "\xbb", 0x000000ab => "\xc7", 0x000000ac => "\xc2", 0x000000ae => "\xa8", 0x000000af => "\xf8", 0x000000b0 => "\xa1", 0x000000b1 => "\xb1", 0x000000b4 => "\xab", 0x000000b5 => "\xb5", 0x000000b6 => "\xa6", 0x000000b7 => "\xe1", 0x000000b8 => "\xfc", 0x000000ba => "\xbc", 0x000000bb => "\xc8", 0x000000bf => "\xc0", 0x000000c0 => "\xcb", 0x000000c1 => "\xe7", 0x000000c2 => "\xe5", 0x000000c3 => "\xcc", 0x000000c4 => "\x80", 0x000000c5 => "\x81", 0x000000c6 => "\xae", 0x000000c7 => "\x82", 0x000000c8 => "\xe9", 0x000000c9 => "\x83", 0x000000ca => "\xe6", 0x000000cb => "\xe8", 0x000000cc => "\xed", 0x000000cd => "\xea", 0x000000ce => "\xeb", 0x000000cf => "\xec", 0x000000d0 => "\xdc", 0x000000d1 => "\x84", 0x000000d2 => "\xf1", 0x000000d3 => "\xee", 0x000000d4 => "\xef", 0x000000d5 => "\xcd", 0x000000d6 => "\x85", 0x000000d8 => "\xaf", 0x000000d9 => "\xf4", 0x000000da => "\xf2", 0x000000db => "\xf3", 0x000000dc => "\x86", 0x000000dd => "\xa0", 0x000000de => "\xde", 0x000000df => "\xa7", 0x000000e0 => "\x88", 0x000000e1 => "\x87", 0x000000e2 => "\x89", 0x000000e3 => "\x8b", 0x000000e4 => "\x8a", 0x000000e5 => "\x8c", 0x000000e6 => "\xbe", 0x000000e7 => "\x8d", 0x000000e8 => "\x8f", 0x000000e9 => "\x8e", 0x000000ea => "\x90", 0x000000eb => "\x91", 0x000000ec => "\x93", 0x000000ed => "\x92", 0x000000ee => "\x94", 0x000000ef => "\x95", 0x000000f0 => "\xdd", 0x000000f1 => "\x96", 0x000000f2 => "\x98", 0x000000f3 => "\x97", 0x000000f4 => "\x99", 0x000000f5 => "\x9b", 0x000000f6 => "\x9a", 0x000000f7 => "\xd6", 0x000000f8 => "\xbf", 0x000000f9 => "\x9d", 0x000000fa => "\x9c", 0x000000fb => "\x9e", 0x000000fc => "\x9f", 0x000000fd => "\xe0", 0x000000fe => "\xdf", 0x000000ff => "\xd8", 0x00000131 => "\xf5", 0x00000152 => "\xce", 0x00000153 => "\xcf", 0x00000178 => "\xd9", 0x00000192 => "\xc4", 0x000002c6 => "\xf6", 0x000002c7 => "\xff", 0x000002d8 => "\xf9", 0x000002d9 => "\xfa", 0x000002da => "\xfb", 0x000002db => "\xfe", 0x000002dc => "\xf7", 0x000002dd => "\xfd", 0x000003c0 => "\xb9", 0x00002013 => "\xd0", 0x00002014 => "\xd1", 0x00002018 => "\xd4", 0x00002019 => "\xd5", 0x0000201a => "\xe2", 0x0000201c => "\xd2", 0x0000201d => "\xd3", 0x0000201e => "\xe3", 0x00002022 => "\xa5", 0x00002026 => "\xc9", 0x00002030 => "\xe4", 0x00002044 => "\xda", 0x00002122 => "\xaa", 0x00002126 => "\xbd", 0x00002202 => "\xb6", 0x00002206 => "\xc6", 0x0000220f => "\xb8", 0x00002211 => "\xb7", 0x0000221a => "\xc3", 0x0000221e => "\xb0", 0x0000222b => "\xba", 0x00002248 => "\xc5", 0x00002260 => "\xad", 0x00002264 => "\xb2", 0x00002265 => "\xb3", 0x000025ca => "\xd7", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::MACICELAND - Conversion routines for MACICELAND =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for MACICELAND. =head1 COMMENTS The following comments have been extracted from the original charmap: This charmap has been generated automatically from GNU libiconv conversions. Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 81 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 82 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 83 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 84 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 85 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 86 | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 87 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 88 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 89 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 8A | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 8B | 000000E3 | LATIN SMALL LETTER A WITH TILDE 8C | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 8D | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 8E | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 8F | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 90 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 91 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 92 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 93 | 000000EC | LATIN SMALL LETTER I WITH GRAVE 94 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 95 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 96 | 000000F1 | LATIN SMALL LETTER N WITH TILDE 97 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE 98 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE 99 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX 9A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 9B | 000000F5 | LATIN SMALL LETTER O WITH TILDE 9C | 000000FA | LATIN SMALL LETTER U WITH ACUTE 9D | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 9E | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX 9F | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS A0 | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE A1 | 000000B0 | DEGREE SIGN A2 | 000000A2 | CENT SIGN A3 | 000000A3 | POUND SIGN A4 | 000000A7 | SECTION SIGN A5 | 00002022 | BULLET A6 | 000000B6 | PILCROW SIGN A7 | 000000DF | LATIN SMALL LETTER SHARP S A8 | 000000AE | REGISTERED SIGN A9 | 000000A9 | COPYRIGHT SIGN AA | 00002122 | TRADE MARK SIGN AB | 000000B4 | ACUTE ACCENT AC | 000000A8 | DIAERESIS AD | 00002260 | NOT EQUAL TO AE | 000000C6 | LATIN CAPITAL LETTER AE AF | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE B0 | 0000221E | INFINITY B1 | 000000B1 | PLUS-MINUS SIGN B2 | 00002264 | LESS-THAN OR EQUAL TO B3 | 00002265 | GREATER-THAN OR EQUAL TO B4 | 000000A5 | YEN SIGN B5 | 000000B5 | MICRO SIGN B6 | 00002202 | PARTIAL DIFFERENTIAL B7 | 00002211 | N-ARY SUMMATION B8 | 0000220F | N-ARY PRODUCT B9 | 000003C0 | GREEK SMALL LETTER PI BA | 0000222B | INTEGRAL BB | 000000AA | FEMININE ORDINAL INDICATOR BC | 000000BA | MASCULINE ORDINAL INDICATOR BD | 00002126 | OHM SIGN BE | 000000E6 | LATIN SMALL LETTER AE BF | 000000F8 | LATIN SMALL LETTER O WITH STROKE C0 | 000000BF | INVERTED QUESTION MARK C1 | 000000A1 | INVERTED EXCLAMATION MARK C2 | 000000AC | NOT SIGN C3 | 0000221A | SQUARE ROOT C4 | 00000192 | LATIN SMALL LETTER F WITH HOOK C5 | 00002248 | ALMOST EQUAL TO C6 | 00002206 | INCREMENT C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK C8 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK C9 | 00002026 | HORIZONTAL ELLIPSIS CA | 000000A0 | NO-BREAK SPACE CB | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE CC | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE CD | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE CE | 00000152 | LATIN CAPITAL LIGATURE OE CF | 00000153 | LATIN SMALL LIGATURE OE D0 | 00002013 | EN DASH D1 | 00002014 | EM DASH D2 | 0000201C | LEFT DOUBLE QUOTATION MARK D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK D4 | 00002018 | LEFT SINGLE QUOTATION MARK D5 | 00002019 | RIGHT SINGLE QUOTATION MARK D6 | 000000F7 | DIVISION SIGN D7 | 000025CA | LOZENGE D8 | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS D9 | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS DA | 00002044 | FRACTION SLASH DB | 000000A4 | CURRENCY SIGN DC | 000000D0 | LATIN CAPITAL LETTER ETH DD | 000000F0 | LATIN SMALL LETTER ETH DE | 000000DE | LATIN CAPITAL LETTER THORN DF | 000000FE | LATIN SMALL LETTER THORN E0 | 000000FD | LATIN SMALL LETTER Y WITH ACUTE E1 | 000000B7 | MIDDLE DOT E2 | 0000201A | SINGLE LOW-9 QUOTATION MARK E3 | 0000201E | DOUBLE LOW-9 QUOTATION MARK E4 | 00002030 | PER MILLE SIGN E5 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX E6 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX E7 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE E8 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS E9 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE EA | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE EB | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX EC | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS ED | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE EF | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX F1 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE F2 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE F3 | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX F4 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE F5 | 00000131 | LATIN SMALL LETTER DOTLESS I F6 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT F7 | 000002DC | SMALL TILDE F8 | 000000AF | MACRON F9 | 000002D8 | BREVE FA | 000002D9 | DOT ABOVE FB | 000002DA | RING ABOVE FC | 000000B8 | CEDILLA FD | 000002DD | DOUBLE ACUTE ACCENT FE | 000002DB | OGONEK FF | 000002C7 | CARON =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]"GGRecodeData/LATIN_GREEK_1.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for LATIN-GREEK-1. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::LATIN_GREEK_1; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x039e, 0x0022, 0x0393, 0x00a4, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x03a8, 0x003b, 0x003c, 0x003d, 0x003e, 0x03a0, 0x0394, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x03a9, 0x0398, 0x03a6, 0x039b, 0x03a3, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x203e, 0x007f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\xce\x9e", "\x22", "\xce\x93", "\xc2\xa4", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xce\xa8", "\x3b", "\x3c", "\x3d", "\x3e", "\xce\xa0", "\xce\x94", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xce\xa9", "\xce\x98", "\xce\xa6", "\xce\x9b", "\xce\xa3", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\xe2\x80\xbe", "\x7f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000022 => "\x22", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007f => "\x7f", 0x000000a4 => "\x24", 0x00000393 => "\x23", 0x00000394 => "\x40", 0x00000398 => "\x5c", 0x0000039b => "\x5e", 0x0000039e => "\x21", 0x000003a0 => "\x3f", 0x000003a3 => "\x5f", 0x000003a6 => "\x5d", 0x000003a8 => "\x3a", 0x000003a9 => "\x5b", 0x0000203e => "\x7e", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::LATIN_GREEK_1 - Conversion routines for LATIN_GREEK_1 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for LATIN-GREEK-1. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: ECMA registry alias ISO-IR-27 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 0000039E | GREEK CAPITAL LETTER XI 22 | 00000022 | QUOTATION MARK 23 | 00000393 | GREEK CAPITAL LETTER GAMMA 24 | 000000A4 | CURRENCY SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 000003A8 | GREEK CAPITAL LETTER PSI 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 000003A0 | GREEK CAPITAL LETTER PI 40 | 00000394 | GREEK CAPITAL LETTER DELTA 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 000003A9 | GREEK CAPITAL LETTER OMEGA 5C | 00000398 | GREEK CAPITAL LETTER THETA 5D | 000003A6 | GREEK CAPITAL LETTER PHI 5E | 0000039B | GREEK CAPITAL LETTER LAMDA 5F | 000003A3 | GREEK CAPITAL LETTER SIGMA 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000203E | OVERLINE 7F | 0000007F | DELETE (DEL) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]]?jvGlGlRecodeData/ISO_8859_14.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ISO-8859-14. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ISO_8859_14; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x1e02, 0x1e03, 0x00a3, 0x010a, 0x010b, 0x1e0a, 0x00a7, 0x1e80, 0x00a9, 0x1e82, 0x1e0b, 0x1ef2, 0x00ad, 0x00ae, 0x0178, 0x1e1e, 0x1e1f, 0x0120, 0x0121, 0x1e40, 0x1e41, 0x00b6, 0x1e56, 0x1e81, 0x1e57, 0x1e83, 0x1e60, 0x1ef3, 0x1e84, 0x1e85, 0x1e61, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x0174, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x1e6a, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x0176, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x0175, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x1e6b, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x0177, 0x00ff, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\xc2\x85", "\xc2\x86", "\xc2\x87", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\xc2\x8d", "\xc2\x8e", "\xc2\x8f", "\xc2\x90", "\xc2\x91", "\xc2\x92", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\xc2\x97", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\xc2\x9c", "\xc2\x9d", "\xc2\x9e", "\xc2\x9f", "\xc2\xa0", "\xe1\xb8\x82", "\xe1\xb8\x83", "\xc2\xa3", "\xc4\x8a", "\xc4\x8b", "\xe1\xb8\x8a", "\xc2\xa7", "\xe1\xba\x80", "\xc2\xa9", "\xe1\xba\x82", "\xe1\xb8\x8b", "\xe1\xbb\xb2", "\xc2\xad", "\xc2\xae", "\xc5\xb8", "\xe1\xb8\x9e", "\xe1\xb8\x9f", "\xc4\xa0", "\xc4\xa1", "\xe1\xb9\x80", "\xe1\xb9\x81", "\xc2\xb6", "\xe1\xb9\x96", "\xe1\xba\x81", "\xe1\xb9\x97", "\xe1\xba\x83", "\xe1\xb9\xa0", "\xe1\xbb\xb3", "\xe1\xba\x84", "\xe1\xba\x85", "\xe1\xb9\xa1", "\xc3\x80", "\xc3\x81", "\xc3\x82", "\xc3\x83", "\xc3\x84", "\xc3\x85", "\xc3\x86", "\xc3\x87", "\xc3\x88", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x8c", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc5\xb4", "\xc3\x91", "\xc3\x92", "\xc3\x93", "\xc3\x94", "\xc3\x95", "\xc3\x96", "\xe1\xb9\xaa", "\xc3\x98", "\xc3\x99", "\xc3\x9a", "\xc3\x9b", "\xc3\x9c", "\xc3\x9d", "\xc5\xb6", "\xc3\x9f", "\xc3\xa0", "\xc3\xa1", "\xc3\xa2", "\xc3\xa3", "\xc3\xa4", "\xc3\xa5", "\xc3\xa6", "\xc3\xa7", "\xc3\xa8", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xac", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc5\xb5", "\xc3\xb1", "\xc3\xb2", "\xc3\xb3", "\xc3\xb4", "\xc3\xb5", "\xc3\xb6", "\xe1\xb9\xab", "\xc3\xb8", "\xc3\xb9", "\xc3\xba", "\xc3\xbb", "\xc3\xbc", "\xc3\xbd", "\xc5\xb7", "\xc3\xbf", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000080 => "\x80", 0x00000081 => "\x81", 0x00000082 => "\x82", 0x00000083 => "\x83", 0x00000084 => "\x84", 0x00000085 => "\x85", 0x00000086 => "\x86", 0x00000087 => "\x87", 0x00000088 => "\x88", 0x00000089 => "\x89", 0x0000008a => "\x8a", 0x0000008b => "\x8b", 0x0000008c => "\x8c", 0x0000008d => "\x8d", 0x0000008e => "\x8e", 0x0000008f => "\x8f", 0x00000090 => "\x90", 0x00000091 => "\x91", 0x00000092 => "\x92", 0x00000093 => "\x93", 0x00000094 => "\x94", 0x00000095 => "\x95", 0x00000096 => "\x96", 0x00000097 => "\x97", 0x00000098 => "\x98", 0x00000099 => "\x99", 0x0000009a => "\x9a", 0x0000009b => "\x9b", 0x0000009c => "\x9c", 0x0000009d => "\x9d", 0x0000009e => "\x9e", 0x0000009f => "\x9f", 0x000000a0 => "\xa0", 0x000000a3 => "\xa3", 0x000000a7 => "\xa7", 0x000000a9 => "\xa9", 0x000000ad => "\xad", 0x000000ae => "\xae", 0x000000b6 => "\xb6", 0x000000c0 => "\xc0", 0x000000c1 => "\xc1", 0x000000c2 => "\xc2", 0x000000c3 => "\xc3", 0x000000c4 => "\xc4", 0x000000c5 => "\xc5", 0x000000c6 => "\xc6", 0x000000c7 => "\xc7", 0x000000c8 => "\xc8", 0x000000c9 => "\xc9", 0x000000ca => "\xca", 0x000000cb => "\xcb", 0x000000cc => "\xcc", 0x000000cd => "\xcd", 0x000000ce => "\xce", 0x000000cf => "\xcf", 0x000000d1 => "\xd1", 0x000000d2 => "\xd2", 0x000000d3 => "\xd3", 0x000000d4 => "\xd4", 0x000000d5 => "\xd5", 0x000000d6 => "\xd6", 0x000000d8 => "\xd8", 0x000000d9 => "\xd9", 0x000000da => "\xda", 0x000000db => "\xdb", 0x000000dc => "\xdc", 0x000000dd => "\xdd", 0x000000df => "\xdf", 0x000000e0 => "\xe0", 0x000000e1 => "\xe1", 0x000000e2 => "\xe2", 0x000000e3 => "\xe3", 0x000000e4 => "\xe4", 0x000000e5 => "\xe5", 0x000000e6 => "\xe6", 0x000000e7 => "\xe7", 0x000000e8 => "\xe8", 0x000000e9 => "\xe9", 0x000000ea => "\xea", 0x000000eb => "\xeb", 0x000000ec => "\xec", 0x000000ed => "\xed", 0x000000ee => "\xee", 0x000000ef => "\xef", 0x000000f1 => "\xf1", 0x000000f2 => "\xf2", 0x000000f3 => "\xf3", 0x000000f4 => "\xf4", 0x000000f5 => "\xf5", 0x000000f6 => "\xf6", 0x000000f8 => "\xf8", 0x000000f9 => "\xf9", 0x000000fa => "\xfa", 0x000000fb => "\xfb", 0x000000fc => "\xfc", 0x000000fd => "\xfd", 0x000000ff => "\xff", 0x0000010a => "\xa4", 0x0000010b => "\xa5", 0x00000120 => "\xb2", 0x00000121 => "\xb3", 0x00000174 => "\xd0", 0x00000175 => "\xf0", 0x00000176 => "\xde", 0x00000177 => "\xfe", 0x00000178 => "\xaf", 0x00001e02 => "\xa1", 0x00001e03 => "\xa2", 0x00001e0a => "\xa6", 0x00001e0b => "\xab", 0x00001e1e => "\xb0", 0x00001e1f => "\xb1", 0x00001e40 => "\xb4", 0x00001e41 => "\xb5", 0x00001e56 => "\xb7", 0x00001e57 => "\xb9", 0x00001e60 => "\xbb", 0x00001e61 => "\xbf", 0x00001e6a => "\xd7", 0x00001e6b => "\xf7", 0x00001e80 => "\xa8", 0x00001e81 => "\xb8", 0x00001e82 => "\xaa", 0x00001e83 => "\xba", 0x00001e84 => "\xbd", 0x00001e85 => "\xbe", 0x00001ef2 => "\xac", 0x00001ef3 => "\xbc", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ISO_8859_14 - Conversion routines for ISO-8859-14 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for ISO-8859-14. =head1 COMMENTS The following comments have been extracted from the original charmap: automatically generated from the charDB alias LATIN8 alias L8 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL 01 | 00000001 | START OF HEADING 02 | 00000002 | START OF TEXT 03 | 00000003 | END OF TEXT 04 | 00000004 | END OF TRANSMISSION 05 | 00000005 | ENQUIRY 06 | 00000006 | ACKNOWLEDGE 07 | 00000007 | BELL 08 | 00000008 | BACKSPACE 09 | 00000009 | HORIZONTAL TABULATION 0A | 0000000A | LINE FEED 0B | 0000000B | VERTICAL TABULATION 0C | 0000000C | FORM FEED 0D | 0000000D | CARRIAGE RETURN 0E | 0000000E | SHIFT OUT 0F | 0000000F | SHIFT IN 10 | 00000010 | DATA LINK ESCAPE 11 | 00000011 | DEVICE CONTROL ONE 12 | 00000012 | DEVICE CONTROL TWO 13 | 00000013 | DEVICE CONTROL THREE 14 | 00000014 | DEVICE CONTROL FOUR 15 | 00000015 | NEGATIVE ACKNOWLEDGE 16 | 00000016 | SYNCHRONOUS IDLE 17 | 00000017 | END OF TRANSMISSION BLOCK 18 | 00000018 | CANCEL 19 | 00000019 | END OF MEDIUM 1A | 0000001A | SUBSTITUTE 1B | 0000001B | ESCAPE 1C | 0000001C | FILE SEPARATOR 1D | 0000001D | GROUP SEPARATOR 1E | 0000001E | RECORD SEPARATOR 1F | 0000001F | UNIT SEPARATOR 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE 80 | 00000080 | PADDING CHARACTER (PAD) 81 | 00000081 | HIGH OCTET PRESET (HOP) 82 | 00000082 | BREAK PERMITTED HERE (BPH) 83 | 00000083 | NO BREAK HERE (NBH) 84 | 00000084 | INDEX (IND) 85 | 00000085 | NEXT LINE (NEL) 86 | 00000086 | START OF SELECTED AREA (SSA) 87 | 00000087 | END OF SELECTED AREA (ESA) 88 | 00000088 | CHARACTER TABULATION SET (HTS) 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 8A | 0000008A | LINE TABULATION SET (VTS) 8B | 0000008B | PARTIAL LINE FORWARD (PLD) 8C | 0000008C | PARTIAL LINE BACKWARD (PLU) 8D | 0000008D | REVERSE LINE FEED (RI) 8E | 0000008E | SINGLE-SHIFT TWO (SS2) 8F | 0000008F | SINGLE-SHIFT THREE (SS3) 90 | 00000090 | DEVICE CONTROL STRING (DCS) 91 | 00000091 | PRIVATE USE ONE (PU1) 92 | 00000092 | PRIVATE USE TWO (PU2) 93 | 00000093 | SET TRANSMIT STATE (STS) 94 | 00000094 | CANCEL CHARACTER (CCH) 95 | 00000095 | MESSAGE WAITING (MW) 96 | 00000096 | START OF GUARDED AREA (SPA) 97 | 00000097 | END OF GUARDED AREA (EPA) 98 | 00000098 | START OF STRING (SOS) 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 9C | 0000009C | STRING TERMINATOR (ST) 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC) 9E | 0000009E | PRIVACY MESSAGE (PM) 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC) A0 | 000000A0 | NO-BREAK SPACE A1 | 00001E02 | LATIN CAPITAL LETTER B WITH DOT ABOVE A2 | 00001E03 | LATIN SMALL LETTER B WITH DOT ABOVE A3 | 000000A3 | POUND SIGN A4 | 0000010A | LATIN CAPITAL LETTER C WITH DOT ABOVE A5 | 0000010B | LATIN SMALL LETTER C WITH DOT ABOVE A6 | 00001E0A | LATIN CAPITAL LETTER D WITH DOT ABOVE A7 | 000000A7 | SECTION SIGN A8 | 00001E80 | LATIN CAPITAL LETTER W WITH GRAVE A9 | 000000A9 | COPYRIGHT SIGN AA | 00001E82 | LATIN CAPITAL LETTER W WITH ACUTE AB | 00001E0B | LATIN SMALL LETTER D WITH DOT ABOVE AC | 00001EF2 | LATIN CAPITAL LETTER Y WITH GRAVE AD | 000000AD | SOFT HYPHEN AE | 000000AE | REGISTERED SIGN AF | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS B0 | 00001E1E | LATIN CAPITAL LETTER F WITH DOT ABOVE B1 | 00001E1F | LATIN SMALL LETTER F WITH DOT ABOVE B2 | 00000120 | LATIN CAPITAL LETTER G WITH DOT ABOVE B3 | 00000121 | LATIN SMALL LETTER G WITH DOT ABOVE B4 | 00001E40 | LATIN CAPITAL LETTER M WITH DOT ABOVE B5 | 00001E41 | LATIN SMALL LETTER M WITH DOT ABOVE B6 | 000000B6 | PILCROW SIGN B7 | 00001E56 | LATIN CAPITAL LETTER P WITH DOT ABOVE B8 | 00001E81 | LATIN SMALL LETTER W WITH GRAVE B9 | 00001E57 | LATIN SMALL LETTER P WITH DOT ABOVE BA | 00001E83 | LATIN SMALL LETTER W WITH ACUTE BB | 00001E60 | LATIN CAPITAL LETTER S WITH DOT ABOVE BC | 00001EF3 | LATIN SMALL LETTER Y WITH GRAVE BD | 00001E84 | LATIN CAPITAL LETTER W WITH DIAERESIS BE | 00001E85 | LATIN SMALL LETTER W WITH DIAERESIS BF | 00001E61 | LATIN SMALL LETTER S WITH DOT ABOVE C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE C6 | 000000C6 | LATIN CAPITAL LETTER AE C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS D0 | 00000174 | LATIN CAPITAL LETTER W WITH CIRCUMFLEX D1 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS D7 | 00001E6A | LATIN CAPITAL LETTER T WITH DOT ABOVE D8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS DD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE DE | 00000176 | LATIN CAPITAL LETTER Y WITH CIRCUMFLEX DF | 000000DF | LATIN SMALL LETTER SHARP S E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE E6 | 000000E6 | LATIN SMALL LETTER AE E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS F0 | 00000175 | LATIN SMALL LETTER W WITH CIRCUMFLEX F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS F7 | 00001E6B | LATIN SMALL LETTER T WITH DOT ABOVE F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE FE | 00000177 | LATIN SMALL LETTER Y WITH CIRCUMFLEX FF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]\hhRecodeData/CP10007.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for CP10007. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::CP10007; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x0406, 0x00ae, 0x00a9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453, 0x221e, 0x00b1, 0x2264, 0x2265, 0x0456, 0x00b5, 0x0491, 0x0408, 0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040a, 0x045a, 0x0458, 0x0405, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, 0x00bb, 0x2026, 0x00a0, 0x040b, 0x045b, 0x040c, 0x045c, 0x0455, 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x201e, 0x040e, 0x045e, 0x040f, 0x045f, 0x2116, 0x0401, 0x0451, 0x044f, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x00a4, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xd0\x90", "\xd0\x91", "\xd0\x92", "\xd0\x93", "\xd0\x94", "\xd0\x95", "\xd0\x96", "\xd0\x97", "\xd0\x98", "\xd0\x99", "\xd0\x9a", "\xd0\x9b", "\xd0\x9c", "\xd0\x9d", "\xd0\x9e", "\xd0\x9f", "\xd0\xa0", "\xd0\xa1", "\xd0\xa2", "\xd0\xa3", "\xd0\xa4", "\xd0\xa5", "\xd0\xa6", "\xd0\xa7", "\xd0\xa8", "\xd0\xa9", "\xd0\xaa", "\xd0\xab", "\xd0\xac", "\xd0\xad", "\xd0\xae", "\xd0\xaf", "\xe2\x80\xa0", "\xc2\xb0", "\xc2\xa2", "\xc2\xa3", "\xc2\xa7", "\xe2\x80\xa2", "\xc2\xb6", "\xd0\x86", "\xc2\xae", "\xc2\xa9", "\xe2\x84\xa2", "\xd0\x82", "\xd1\x92", "\xe2\x89\xa0", "\xd0\x83", "\xd1\x93", "\xe2\x88\x9e", "\xc2\xb1", "\xe2\x89\xa4", "\xe2\x89\xa5", "\xd1\x96", "\xc2\xb5", "\xd2\x91", "\xd0\x88", "\xd0\x84", "\xd1\x94", "\xd0\x87", "\xd1\x97", "\xd0\x89", "\xd1\x99", "\xd0\x8a", "\xd1\x9a", "\xd1\x98", "\xd0\x85", "\xc2\xac", "\xe2\x88\x9a", "\xc6\x92", "\xe2\x89\x88", "\xe2\x88\x86", "\xc2\xab", "\xc2\xbb", "\xe2\x80\xa6", "\xc2\xa0", "\xd0\x8b", "\xd1\x9b", "\xd0\x8c", "\xd1\x9c", "\xd1\x95", "\xe2\x80\x93", "\xe2\x80\x94", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x98", "\xe2\x80\x99", "\xc3\xb7", "\xe2\x80\x9e", "\xd0\x8e", "\xd1\x9e", "\xd0\x8f", "\xd1\x9f", "\xe2\x84\x96", "\xd0\x81", "\xd1\x91", "\xd1\x8f", "\xd0\xb0", "\xd0\xb1", "\xd0\xb2", "\xd0\xb3", "\xd0\xb4", "\xd0\xb5", "\xd0\xb6", "\xd0\xb7", "\xd0\xb8", "\xd0\xb9", "\xd0\xba", "\xd0\xbb", "\xd0\xbc", "\xd0\xbd", "\xd0\xbe", "\xd0\xbf", "\xd1\x80", "\xd1\x81", "\xd1\x82", "\xd1\x83", "\xd1\x84", "\xd1\x85", "\xd1\x86", "\xd1\x87", "\xd1\x88", "\xd1\x89", "\xd1\x8a", "\xd1\x8b", "\xd1\x8c", "\xd1\x8d", "\xd1\x8e", "\xc2\xa4", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xca", 0x000000a2 => "\xa2", 0x000000a3 => "\xa3", 0x000000a4 => "\xff", 0x000000a7 => "\xa4", 0x000000a9 => "\xa9", 0x000000ab => "\xc7", 0x000000ac => "\xc2", 0x000000ae => "\xa8", 0x000000b0 => "\xa1", 0x000000b1 => "\xb1", 0x000000b5 => "\xb5", 0x000000b6 => "\xa6", 0x000000bb => "\xc8", 0x000000f7 => "\xd6", 0x00000192 => "\xc4", 0x00000401 => "\xdd", 0x00000402 => "\xab", 0x00000403 => "\xae", 0x00000404 => "\xb8", 0x00000405 => "\xc1", 0x00000406 => "\xa7", 0x00000407 => "\xba", 0x00000408 => "\xb7", 0x00000409 => "\xbc", 0x0000040a => "\xbe", 0x0000040b => "\xcb", 0x0000040c => "\xcd", 0x0000040e => "\xd8", 0x0000040f => "\xda", 0x00000410 => "\x80", 0x00000411 => "\x81", 0x00000412 => "\x82", 0x00000413 => "\x83", 0x00000414 => "\x84", 0x00000415 => "\x85", 0x00000416 => "\x86", 0x00000417 => "\x87", 0x00000418 => "\x88", 0x00000419 => "\x89", 0x0000041a => "\x8a", 0x0000041b => "\x8b", 0x0000041c => "\x8c", 0x0000041d => "\x8d", 0x0000041e => "\x8e", 0x0000041f => "\x8f", 0x00000420 => "\x90", 0x00000421 => "\x91", 0x00000422 => "\x92", 0x00000423 => "\x93", 0x00000424 => "\x94", 0x00000425 => "\x95", 0x00000426 => "\x96", 0x00000427 => "\x97", 0x00000428 => "\x98", 0x00000429 => "\x99", 0x0000042a => "\x9a", 0x0000042b => "\x9b", 0x0000042c => "\x9c", 0x0000042d => "\x9d", 0x0000042e => "\x9e", 0x0000042f => "\x9f", 0x00000430 => "\xe0", 0x00000431 => "\xe1", 0x00000432 => "\xe2", 0x00000433 => "\xe3", 0x00000434 => "\xe4", 0x00000435 => "\xe5", 0x00000436 => "\xe6", 0x00000437 => "\xe7", 0x00000438 => "\xe8", 0x00000439 => "\xe9", 0x0000043a => "\xea", 0x0000043b => "\xeb", 0x0000043c => "\xec", 0x0000043d => "\xed", 0x0000043e => "\xee", 0x0000043f => "\xef", 0x00000440 => "\xf0", 0x00000441 => "\xf1", 0x00000442 => "\xf2", 0x00000443 => "\xf3", 0x00000444 => "\xf4", 0x00000445 => "\xf5", 0x00000446 => "\xf6", 0x00000447 => "\xf7", 0x00000448 => "\xf8", 0x00000449 => "\xf9", 0x0000044a => "\xfa", 0x0000044b => "\xfb", 0x0000044c => "\xfc", 0x0000044d => "\xfd", 0x0000044e => "\xfe", 0x0000044f => "\xdf", 0x00000451 => "\xde", 0x00000452 => "\xac", 0x00000453 => "\xaf", 0x00000454 => "\xb9", 0x00000455 => "\xcf", 0x00000456 => "\xb4", 0x00000457 => "\xbb", 0x00000458 => "\xc0", 0x00000459 => "\xbd", 0x0000045a => "\xbf", 0x0000045b => "\xcc", 0x0000045c => "\xce", 0x0000045e => "\xd9", 0x0000045f => "\xdb", 0x00000491 => "\xb6", 0x00002013 => "\xd0", 0x00002014 => "\xd1", 0x00002018 => "\xd4", 0x00002019 => "\xd5", 0x0000201c => "\xd2", 0x0000201d => "\xd3", 0x0000201e => "\xd7", 0x00002020 => "\xa0", 0x00002022 => "\xa5", 0x00002026 => "\xc9", 0x00002116 => "\xdc", 0x00002122 => "\xaa", 0x00002206 => "\xc6", 0x0000221a => "\xc3", 0x0000221e => "\xb0", 0x00002248 => "\xc5", 0x00002260 => "\xad", 0x00002264 => "\xb2", 0x00002265 => "\xb3", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::CP10007 - Conversion routines for CP10007 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for CP10007. =head1 COMMENTS The following comments have been extracted from the original charmap: This is the old MacCyrillic which M$ keeps around as CP10007. Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL 01 | 00000001 | START OF HEADING 02 | 00000002 | START OF TEXT 03 | 00000003 | END OF TEXT 04 | 00000004 | END OF TRANSMISSION 05 | 00000005 | ENQUIRY 06 | 00000006 | ACKNOWLEDGE 07 | 00000007 | BELL 08 | 00000008 | BACKSPACE 09 | 00000009 | HORIZONTAL TABULATION 0A | 0000000A | LINE FEED 0B | 0000000B | VERTICAL TABULATION 0C | 0000000C | FORM FEED 0D | 0000000D | CARRIAGE RETURN 0E | 0000000E | SHIFT OUT 0F | 0000000F | SHIFT IN 10 | 00000010 | DATA LINK ESCAPE 11 | 00000011 | DEVICE CONTROL ONE 12 | 00000012 | DEVICE CONTROL TWO 13 | 00000013 | DEVICE CONTROL THREE 14 | 00000014 | DEVICE CONTROL FOUR 15 | 00000015 | NEGATIVE ACKNOWLEDGE 16 | 00000016 | SYNCHRONOUS IDLE 17 | 00000017 | END OF TRANSMISSION BLOCK 18 | 00000018 | CANCEL 19 | 00000019 | END OF MEDIUM 1A | 0000001A | SUBSTITUTE 1B | 0000001B | ESCAPE 1C | 0000001C | FILE SEPARATOR 1D | 0000001D | GROUP SEPARATOR 1E | 0000001E | RECORD SEPARATOR 1F | 0000001F | UNIT SEPARATOR 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE 80 | 00000410 | CYRILLIC CAPITAL LETTER A 81 | 00000411 | CYRILLIC CAPITAL LETTER BE 82 | 00000412 | CYRILLIC CAPITAL LETTER VE 83 | 00000413 | CYRILLIC CAPITAL LETTER GHE 84 | 00000414 | CYRILLIC CAPITAL LETTER DE 85 | 00000415 | CYRILLIC CAPITAL LETTER IE 86 | 00000416 | CYRILLIC CAPITAL LETTER ZHE 87 | 00000417 | CYRILLIC CAPITAL LETTER ZE 88 | 00000418 | CYRILLIC CAPITAL LETTER I 89 | 00000419 | CYRILLIC CAPITAL LETTER SHORT I 8A | 0000041A | CYRILLIC CAPITAL LETTER KA 8B | 0000041B | CYRILLIC CAPITAL LETTER EL 8C | 0000041C | CYRILLIC CAPITAL LETTER EM 8D | 0000041D | CYRILLIC CAPITAL LETTER EN 8E | 0000041E | CYRILLIC CAPITAL LETTER O 8F | 0000041F | CYRILLIC CAPITAL LETTER PE 90 | 00000420 | CYRILLIC CAPITAL LETTER ER 91 | 00000421 | CYRILLIC CAPITAL LETTER ES 92 | 00000422 | CYRILLIC CAPITAL LETTER TE 93 | 00000423 | CYRILLIC CAPITAL LETTER U 94 | 00000424 | CYRILLIC CAPITAL LETTER EF 95 | 00000425 | CYRILLIC CAPITAL LETTER HA 96 | 00000426 | CYRILLIC CAPITAL LETTER TSE 97 | 00000427 | CYRILLIC CAPITAL LETTER CHE 98 | 00000428 | CYRILLIC CAPITAL LETTER SHA 99 | 00000429 | CYRILLIC CAPITAL LETTER SHCHA 9A | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN 9B | 0000042B | CYRILLIC CAPITAL LETTER YERU 9C | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN 9D | 0000042D | CYRILLIC CAPITAL LETTER E 9E | 0000042E | CYRILLIC CAPITAL LETTER YU 9F | 0000042F | CYRILLIC CAPITAL LETTER YA A0 | 00002020 | DAGGER A1 | 000000B0 | DEGREE SIGN A2 | 000000A2 | CENT SIGN A3 | 000000A3 | POUND SIGN A4 | 000000A7 | SECTION SIGN A5 | 00002022 | BULLET A6 | 000000B6 | PILCROW SIGN A7 | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I A8 | 000000AE | REGISTERED SIGN A9 | 000000A9 | COPYRIGHT SIGN AA | 00002122 | TRADE MARK SIGN AB | 00000402 | CYRILLIC CAPITAL LETTER DJE AC | 00000452 | CYRILLIC SMALL LETTER DJE AD | 00002260 | NOT EQUAL TO AE | 00000403 | CYRILLIC CAPITAL LETTER GJE AF | 00000453 | CYRILLIC SMALL LETTER GJE B0 | 0000221E | INFINITY B1 | 000000B1 | PLUS-MINUS SIGN B2 | 00002264 | LESS-THAN OR EQUAL TO B3 | 00002265 | GREATER-THAN OR EQUAL TO B4 | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I B5 | 000000B5 | MICRO SIGN B6 | 00000491 | CYRILLIC SMALL LETTER GHE WITH UPTURN B7 | 00000408 | CYRILLIC CAPITAL LETTER JE B8 | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE B9 | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE BA | 00000407 | CYRILLIC CAPITAL LETTER YI BB | 00000457 | CYRILLIC SMALL LETTER YI BC | 00000409 | CYRILLIC CAPITAL LETTER LJE BD | 00000459 | CYRILLIC SMALL LETTER LJE BE | 0000040A | CYRILLIC CAPITAL LETTER NJE BF | 0000045A | CYRILLIC SMALL LETTER NJE C0 | 00000458 | CYRILLIC SMALL LETTER JE C1 | 00000405 | CYRILLIC CAPITAL LETTER DZE C2 | 000000AC | NOT SIGN C3 | 0000221A | SQUARE ROOT C4 | 00000192 | LATIN SMALL LETTER F WITH HOOK C5 | 00002248 | ALMOST EQUAL TO C6 | 00002206 | INCREMENT C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK C8 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK C9 | 00002026 | HORIZONTAL ELLIPSIS CA | 000000A0 | NO-BREAK SPACE CB | 0000040B | CYRILLIC CAPITAL LETTER TSHE CC | 0000045B | CYRILLIC SMALL LETTER TSHE CD | 0000040C | CYRILLIC CAPITAL LETTER KJE CE | 0000045C | CYRILLIC SMALL LETTER KJE CF | 00000455 | CYRILLIC SMALL LETTER DZE D0 | 00002013 | EN DASH D1 | 00002014 | EM DASH D2 | 0000201C | LEFT DOUBLE QUOTATION MARK D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK D4 | 00002018 | LEFT SINGLE QUOTATION MARK D5 | 00002019 | RIGHT SINGLE QUOTATION MARK D6 | 000000F7 | DIVISION SIGN D7 | 0000201E | DOUBLE LOW-9 QUOTATION MARK D8 | 0000040E | CYRILLIC CAPITAL LETTER SHORT U D9 | 0000045E | CYRILLIC SMALL LETTER SHORT U DA | 0000040F | CYRILLIC CAPITAL LETTER DZHE DB | 0000045F | CYRILLIC SMALL LETTER DZHE DC | 00002116 | NUMERO SIGN DD | 00000401 | CYRILLIC CAPITAL LETTER IO DE | 00000451 | CYRILLIC SMALL LETTER IO DF | 0000044F | CYRILLIC SMALL LETTER YA E0 | 00000430 | CYRILLIC SMALL LETTER A E1 | 00000431 | CYRILLIC SMALL LETTER BE E2 | 00000432 | CYRILLIC SMALL LETTER VE E3 | 00000433 | CYRILLIC SMALL LETTER GHE E4 | 00000434 | CYRILLIC SMALL LETTER DE E5 | 00000435 | CYRILLIC SMALL LETTER IE E6 | 00000436 | CYRILLIC SMALL LETTER ZHE E7 | 00000437 | CYRILLIC SMALL LETTER ZE E8 | 00000438 | CYRILLIC SMALL LETTER I E9 | 00000439 | CYRILLIC SMALL LETTER SHORT I EA | 0000043A | CYRILLIC SMALL LETTER KA EB | 0000043B | CYRILLIC SMALL LETTER EL EC | 0000043C | CYRILLIC SMALL LETTER EM ED | 0000043D | CYRILLIC SMALL LETTER EN EE | 0000043E | CYRILLIC SMALL LETTER O EF | 0000043F | CYRILLIC SMALL LETTER PE F0 | 00000440 | CYRILLIC SMALL LETTER ER F1 | 00000441 | CYRILLIC SMALL LETTER ES F2 | 00000442 | CYRILLIC SMALL LETTER TE F3 | 00000443 | CYRILLIC SMALL LETTER U F4 | 00000444 | CYRILLIC SMALL LETTER EF F5 | 00000445 | CYRILLIC SMALL LETTER HA F6 | 00000446 | CYRILLIC SMALL LETTER TSE F7 | 00000447 | CYRILLIC SMALL LETTER CHE F8 | 00000448 | CYRILLIC SMALL LETTER SHA F9 | 00000449 | CYRILLIC SMALL LETTER SHCHA FA | 0000044A | CYRILLIC SMALL LETTER HARD SIGN FB | 0000044B | CYRILLIC SMALL LETTER YERU FC | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN FD | 0000044D | CYRILLIC SMALL LETTER E FE | 0000044E | CYRILLIC SMALL LETTER YU FF | 000000A4 | CURRENCY SIGN =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]M-eeRecodeData/CP1253.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for CP1253. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::CP1253; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, 0xfffd, 0x2030, 0xfffd, 0x2039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0xfffd, 0x2122, 0xfffd, 0x203a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a0, 0x0385, 0x0386, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0xfffd, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x2015, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x00b5, 0x00b6, 0x00b7, 0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e, 0x038f, 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0xfffd, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af, 0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xe2\x82\xac", "\xef\xbf\xbd", "\xe2\x80\x9a", "\xc6\x92", "\xe2\x80\x9e", "\xe2\x80\xa6", "\xe2\x80\xa0", "\xe2\x80\xa1", "\xef\xbf\xbd", "\xe2\x80\xb0", "\xef\xbf\xbd", "\xe2\x80\xb9", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\xa2", "\xe2\x80\x93", "\xe2\x80\x94", "\xef\xbf\xbd", "\xe2\x84\xa2", "\xef\xbf\xbd", "\xe2\x80\xba", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa0", "\xce\x85", "\xce\x86", "\xc2\xa3", "\xc2\xa4", "\xc2\xa5", "\xc2\xa6", "\xc2\xa7", "\xc2\xa8", "\xc2\xa9", "\xef\xbf\xbd", "\xc2\xab", "\xc2\xac", "\xc2\xad", "\xc2\xae", "\xe2\x80\x95", "\xc2\xb0", "\xc2\xb1", "\xc2\xb2", "\xc2\xb3", "\xce\x84", "\xc2\xb5", "\xc2\xb6", "\xc2\xb7", "\xce\x88", "\xce\x89", "\xce\x8a", "\xc2\xbb", "\xce\x8c", "\xc2\xbd", "\xce\x8e", "\xce\x8f", "\xce\x90", "\xce\x91", "\xce\x92", "\xce\x93", "\xce\x94", "\xce\x95", "\xce\x96", "\xce\x97", "\xce\x98", "\xce\x99", "\xce\x9a", "\xce\x9b", "\xce\x9c", "\xce\x9d", "\xce\x9e", "\xce\x9f", "\xce\xa0", "\xce\xa1", "\xef\xbf\xbd", "\xce\xa3", "\xce\xa4", "\xce\xa5", "\xce\xa6", "\xce\xa7", "\xce\xa8", "\xce\xa9", "\xce\xaa", "\xce\xab", "\xce\xac", "\xce\xad", "\xce\xae", "\xce\xaf", "\xce\xb0", "\xce\xb1", "\xce\xb2", "\xce\xb3", "\xce\xb4", "\xce\xb5", "\xce\xb6", "\xce\xb7", "\xce\xb8", "\xce\xb9", "\xce\xba", "\xce\xbb", "\xce\xbc", "\xce\xbd", "\xce\xbe", "\xce\xbf", "\xcf\x80", "\xcf\x81", "\xcf\x82", "\xcf\x83", "\xcf\x84", "\xcf\x85", "\xcf\x86", "\xcf\x87", "\xcf\x88", "\xcf\x89", "\xcf\x8a", "\xcf\x8b", "\xcf\x8c", "\xcf\x8d", "\xcf\x8e", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xa0", 0x000000a3 => "\xa3", 0x000000a4 => "\xa4", 0x000000a5 => "\xa5", 0x000000a6 => "\xa6", 0x000000a7 => "\xa7", 0x000000a8 => "\xa8", 0x000000a9 => "\xa9", 0x000000ab => "\xab", 0x000000ac => "\xac", 0x000000ad => "\xad", 0x000000ae => "\xae", 0x000000b0 => "\xb0", 0x000000b1 => "\xb1", 0x000000b2 => "\xb2", 0x000000b3 => "\xb3", 0x000000b5 => "\xb5", 0x000000b6 => "\xb6", 0x000000b7 => "\xb7", 0x000000bb => "\xbb", 0x000000bd => "\xbd", 0x00000192 => "\x83", 0x00000384 => "\xb4", 0x00000385 => "\xa1", 0x00000386 => "\xa2", 0x00000388 => "\xb8", 0x00000389 => "\xb9", 0x0000038a => "\xba", 0x0000038c => "\xbc", 0x0000038e => "\xbe", 0x0000038f => "\xbf", 0x00000390 => "\xc0", 0x00000391 => "\xc1", 0x00000392 => "\xc2", 0x00000393 => "\xc3", 0x00000394 => "\xc4", 0x00000395 => "\xc5", 0x00000396 => "\xc6", 0x00000397 => "\xc7", 0x00000398 => "\xc8", 0x00000399 => "\xc9", 0x0000039a => "\xca", 0x0000039b => "\xcb", 0x0000039c => "\xcc", 0x0000039d => "\xcd", 0x0000039e => "\xce", 0x0000039f => "\xcf", 0x000003a0 => "\xd0", 0x000003a1 => "\xd1", 0x000003a3 => "\xd3", 0x000003a4 => "\xd4", 0x000003a5 => "\xd5", 0x000003a6 => "\xd6", 0x000003a7 => "\xd7", 0x000003a8 => "\xd8", 0x000003a9 => "\xd9", 0x000003aa => "\xda", 0x000003ab => "\xdb", 0x000003ac => "\xdc", 0x000003ad => "\xdd", 0x000003ae => "\xde", 0x000003af => "\xdf", 0x000003b0 => "\xe0", 0x000003b1 => "\xe1", 0x000003b2 => "\xe2", 0x000003b3 => "\xe3", 0x000003b4 => "\xe4", 0x000003b5 => "\xe5", 0x000003b6 => "\xe6", 0x000003b7 => "\xe7", 0x000003b8 => "\xe8", 0x000003b9 => "\xe9", 0x000003ba => "\xea", 0x000003bb => "\xeb", 0x000003bc => "\xec", 0x000003bd => "\xed", 0x000003be => "\xee", 0x000003bf => "\xef", 0x000003c0 => "\xf0", 0x000003c1 => "\xf1", 0x000003c2 => "\xf2", 0x000003c3 => "\xf3", 0x000003c4 => "\xf4", 0x000003c5 => "\xf5", 0x000003c6 => "\xf6", 0x000003c7 => "\xf7", 0x000003c8 => "\xf8", 0x000003c9 => "\xf9", 0x000003ca => "\xfa", 0x000003cb => "\xfb", 0x000003cc => "\xfc", 0x000003cd => "\xfd", 0x000003ce => "\xfe", 0x00002013 => "\x96", 0x00002014 => "\x97", 0x00002015 => "\xaf", 0x00002018 => "\x91", 0x00002019 => "\x92", 0x0000201a => "\x82", 0x0000201c => "\x93", 0x0000201d => "\x94", 0x0000201e => "\x84", 0x00002020 => "\x86", 0x00002021 => "\x87", 0x00002022 => "\x95", 0x00002026 => "\x85", 0x00002030 => "\x89", 0x00002039 => "\x8b", 0x0000203a => "\x9b", 0x000020ac => "\x80", 0x00002122 => "\x99", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::CP1253 - Conversion routines for CP1253 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for CP1253. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 repertoiremap: mnemonic,ds source: UNICODE 1.0 alias MS-GREEK Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000020AC | EURO SIGN 82 | 0000201A | SINGLE LOW-9 QUOTATION MARK 83 | 00000192 | LATIN SMALL LETTER F WITH HOOK 84 | 0000201E | DOUBLE LOW-9 QUOTATION MARK 85 | 00002026 | HORIZONTAL ELLIPSIS 86 | 00002020 | DAGGER 87 | 00002021 | DOUBLE DAGGER 89 | 00002030 | PER MILLE SIGN 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK 91 | 00002018 | LEFT SINGLE QUOTATION MARK 92 | 00002019 | RIGHT SINGLE QUOTATION MARK 93 | 0000201C | LEFT DOUBLE QUOTATION MARK 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK 95 | 00002022 | BULLET 96 | 00002013 | EN DASH 97 | 00002014 | EM DASH 99 | 00002122 | TRADE MARK SIGN 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK A0 | 000000A0 | NO-BREAK SPACE A1 | 00000385 | GREEK DIALYTIKA TONOS A2 | 00000386 | GREEK CAPITAL LETTER ALPHA WITH TONOS A3 | 000000A3 | POUND SIGN A4 | 000000A4 | CURRENCY SIGN A5 | 000000A5 | YEN SIGN A6 | 000000A6 | BROKEN BAR A7 | 000000A7 | SECTION SIGN A8 | 000000A8 | DIAERESIS A9 | 000000A9 | COPYRIGHT SIGN AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AC | 000000AC | NOT SIGN AD | 000000AD | SOFT HYPHEN AE | 000000AE | REGISTERED SIGN AF | 00002015 | HORIZONTAL BAR B0 | 000000B0 | DEGREE SIGN B1 | 000000B1 | PLUS-MINUS SIGN B2 | 000000B2 | SUPERSCRIPT TWO B3 | 000000B3 | SUPERSCRIPT THREE B4 | 00000384 | GREEK TONOS B5 | 000000B5 | MICRO SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000B7 | MIDDLE DOT B8 | 00000388 | GREEK CAPITAL LETTER EPSILON WITH TONOS B9 | 00000389 | GREEK CAPITAL LETTER ETA WITH TONOS BA | 0000038A | GREEK CAPITAL LETTER IOTA WITH TONOS BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK BC | 0000038C | GREEK CAPITAL LETTER OMICRON WITH TONOS BD | 000000BD | VULGAR FRACTION ONE HALF BE | 0000038E | GREEK CAPITAL LETTER UPSILON WITH TONOS BF | 0000038F | GREEK CAPITAL LETTER OMEGA WITH TONOS C0 | 00000390 | GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS C1 | 00000391 | GREEK CAPITAL LETTER ALPHA C2 | 00000392 | GREEK CAPITAL LETTER BETA C3 | 00000393 | GREEK CAPITAL LETTER GAMMA C4 | 00000394 | GREEK CAPITAL LETTER DELTA C5 | 00000395 | GREEK CAPITAL LETTER EPSILON C6 | 00000396 | GREEK CAPITAL LETTER ZETA C7 | 00000397 | GREEK CAPITAL LETTER ETA C8 | 00000398 | GREEK CAPITAL LETTER THETA C9 | 00000399 | GREEK CAPITAL LETTER IOTA CA | 0000039A | GREEK CAPITAL LETTER KAPPA CB | 0000039B | GREEK CAPITAL LETTER LAMDA CC | 0000039C | GREEK CAPITAL LETTER MU CD | 0000039D | GREEK CAPITAL LETTER NU CE | 0000039E | GREEK CAPITAL LETTER XI CF | 0000039F | GREEK CAPITAL LETTER OMICRON D0 | 000003A0 | GREEK CAPITAL LETTER PI D1 | 000003A1 | GREEK CAPITAL LETTER RHO D3 | 000003A3 | GREEK CAPITAL LETTER SIGMA D4 | 000003A4 | GREEK CAPITAL LETTER TAU D5 | 000003A5 | GREEK CAPITAL LETTER UPSILON D6 | 000003A6 | GREEK CAPITAL LETTER PHI D7 | 000003A7 | GREEK CAPITAL LETTER CHI D8 | 000003A8 | GREEK CAPITAL LETTER PSI D9 | 000003A9 | GREEK CAPITAL LETTER OMEGA DA | 000003AA | GREEK CAPITAL LETTER IOTA WITH DIALYTIKA DB | 000003AB | GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA DC | 000003AC | GREEK SMALL LETTER ALPHA WITH TONOS DD | 000003AD | GREEK SMALL LETTER EPSILON WITH TONOS DE | 000003AE | GREEK SMALL LETTER ETA WITH TONOS DF | 000003AF | GREEK SMALL LETTER IOTA WITH TONOS E0 | 000003B0 | GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS E1 | 000003B1 | GREEK SMALL LETTER ALPHA E2 | 000003B2 | GREEK SMALL LETTER BETA E3 | 000003B3 | GREEK SMALL LETTER GAMMA E4 | 000003B4 | GREEK SMALL LETTER DELTA E5 | 000003B5 | GREEK SMALL LETTER EPSILON E6 | 000003B6 | GREEK SMALL LETTER ZETA E7 | 000003B7 | GREEK SMALL LETTER ETA E8 | 000003B8 | GREEK SMALL LETTER THETA E9 | 000003B9 | GREEK SMALL LETTER IOTA EA | 000003BA | GREEK SMALL LETTER KAPPA EB | 000003BB | GREEK SMALL LETTER LAMDA EC | 000003BC | GREEK SMALL LETTER MU ED | 000003BD | GREEK SMALL LETTER NU EE | 000003BE | GREEK SMALL LETTER XI EF | 000003BF | GREEK SMALL LETTER OMICRON F0 | 000003C0 | GREEK SMALL LETTER PI F1 | 000003C1 | GREEK SMALL LETTER RHO F2 | 000003C2 | GREEK SMALL LETTER FINAL SIGMA F3 | 000003C3 | GREEK SMALL LETTER SIGMA F4 | 000003C4 | GREEK SMALL LETTER TAU F5 | 000003C5 | GREEK SMALL LETTER UPSILON F6 | 000003C6 | GREEK SMALL LETTER PHI F7 | 000003C7 | GREEK SMALL LETTER CHI F8 | 000003C8 | GREEK SMALL LETTER PSI F9 | 000003C9 | GREEK SMALL LETTER OMEGA FA | 000003CA | GREEK SMALL LETTER IOTA WITH DIALYTIKA FB | 000003CB | GREEK SMALL LETTER UPSILON WITH DIALYTIKA FC | 000003CC | GREEK SMALL LETTER OMICRON WITH TONOS FD | 000003CD | GREEK SMALL LETTER UPSILON WITH TONOS FE | 000003CE | GREEK SMALL LETTER OMEGA WITH TONOS =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]3bbRecodeData/IBM918.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM918. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM918; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x00a0, 0x060c, 0x061b, 0x061f, 0x0623, 0x0627, 0xfe8e, 0xfffd, 0x0628, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0xfe91, 0x067e, 0xfffd, 0x0629, 0x062a, 0xfe97, 0xfffd, 0xfffd, 0x062b, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0xfe9b, 0x062c, 0xfe9f, 0xfffd, 0xfffd, 0x062d, 0xfea3, 0x062e, 0x0060, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, 0x0668, 0x0669, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0xfea7, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x062f, 0xfffd, 0x0630, 0x0631, 0xfffd, 0x0632, 0xfffd, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0633, 0xfeb3, 0x0634, 0xfeb7, 0x0635, 0xfebb, 0x0636, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfebf, 0x0637, 0x0638, 0x0639, 0xfeca, 0xfecb, 0xfecc, 0x063a, 0xfece, 0xfecf, 0xfed0, 0x0641, 0xfed3, 0x0642, 0xfed7, 0x0643, 0xfedb, 0x007c, 0xfffd, 0xfffd, 0x0644, 0xfede, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0xfffd, 0x0645, 0xfee3, 0xfffd, 0x0646, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0xfee7, 0xfffd, 0x0648, 0xfffd, 0xfffd, 0xfffd, 0x005c, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0621, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0xfffd, 0xfffd, 0xfffd, 0x0651, 0xfe7d, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xc2\xa0", "\xd8\x8c", "\xd8\x9b", "\xd8\x9f", "\xd8\xa3", "\xd8\xa7", "\xef\xba\x8e", "\xef\xbf\xbd", "\xd8\xa8", "\x5b", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\xef\xba\x91", "\xd9\xbe", "\xef\xbf\xbd", "\xd8\xa9", "\xd8\xaa", "\xef\xba\x97", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd8\xab", "\x5d", "\x24", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xef\xba\x9b", "\xd8\xac", "\xef\xba\x9f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd8\xad", "\xef\xba\xa3", "\xd8\xae", "\x60", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xd9\xa0", "\xd9\xa1", "\xd9\xa2", "\xd9\xa3", "\xd9\xa4", "\xd9\xa5", "\xd9\xa6", "\xd9\xa7", "\xd9\xa8", "\xd9\xa9", "\x3a", "\x23", "\x40", "\x27", "\x3d", "\x22", "\xef\xba\xa7", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xd8\xaf", "\xef\xbf\xbd", "\xd8\xb0", "\xd8\xb1", "\xef\xbf\xbd", "\xd8\xb2", "\xef\xbf\xbd", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xd8\xb3", "\xef\xba\xb3", "\xd8\xb4", "\xef\xba\xb7", "\xd8\xb5", "\xef\xba\xbb", "\xd8\xb6", "\x7e", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xba\xbf", "\xd8\xb7", "\xd8\xb8", "\xd8\xb9", "\xef\xbb\x8a", "\xef\xbb\x8b", "\xef\xbb\x8c", "\xd8\xba", "\xef\xbb\x8e", "\xef\xbb\x8f", "\xef\xbb\x90", "\xd9\x81", "\xef\xbb\x93", "\xd9\x82", "\xef\xbb\x97", "\xd9\x83", "\xef\xbb\x9b", "\x7c", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd9\x84", "\xef\xbb\x9e", "\x7b", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xc2\xad", "\xef\xbf\xbd", "\xd9\x85", "\xef\xbb\xa3", "\xef\xbf\xbd", "\xd9\x86", "\x7d", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xef\xbb\xa7", "\xef\xbf\xbd", "\xd9\x88", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x5c", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xd8\xa1", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd9\x91", "\xef\xb9\xbd", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000023 => "\x7b", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\x7c", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\x4a", 0x0000005c => "\xe0", 0x0000005d => "\x5a", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000060 => "\x6a", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\xc0", 0x0000007c => "\xbb", 0x0000007d => "\xd0", 0x0000007e => "\xa1", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a0 => "\x41", 0x000000ad => "\xca", 0x0000060c => "\x42", 0x0000061b => "\x43", 0x0000061f => "\x44", 0x00000621 => "\xea", 0x00000623 => "\x45", 0x00000627 => "\x46", 0x00000628 => "\x49", 0x00000629 => "\x54", 0x0000062a => "\x55", 0x0000062b => "\x59", 0x0000062c => "\x63", 0x0000062d => "\x67", 0x0000062e => "\x69", 0x0000062f => "\x8a", 0x00000630 => "\x8c", 0x00000631 => "\x8d", 0x00000632 => "\x8f", 0x00000633 => "\x9a", 0x00000634 => "\x9c", 0x00000635 => "\x9e", 0x00000636 => "\xa0", 0x00000637 => "\xab", 0x00000638 => "\xac", 0x00000639 => "\xad", 0x0000063a => "\xb1", 0x00000641 => "\xb5", 0x00000642 => "\xb7", 0x00000643 => "\xb9", 0x00000644 => "\xbe", 0x00000645 => "\xcc", 0x00000646 => "\xcf", 0x00000648 => "\xdc", 0x00000651 => "\xfd", 0x00000660 => "\x70", 0x00000661 => "\x71", 0x00000662 => "\x72", 0x00000663 => "\x73", 0x00000664 => "\x74", 0x00000665 => "\x75", 0x00000666 => "\x76", 0x00000667 => "\x77", 0x00000668 => "\x78", 0x00000669 => "\x79", 0x0000067e => "\x52", 0x0000fe7d => "\xfe", 0x0000fe8e => "\x47", 0x0000fe91 => "\x51", 0x0000fe97 => "\x56", 0x0000fe9b => "\x62", 0x0000fe9f => "\x64", 0x0000fea3 => "\x68", 0x0000fea7 => "\x80", 0x0000feb3 => "\x9b", 0x0000feb7 => "\x9d", 0x0000febb => "\x9f", 0x0000febf => "\xaa", 0x0000feca => "\xae", 0x0000fecb => "\xaf", 0x0000fecc => "\xb0", 0x0000fece => "\xb2", 0x0000fecf => "\xb3", 0x0000fed0 => "\xb4", 0x0000fed3 => "\xb6", 0x0000fed7 => "\xb8", 0x0000fedb => "\xba", 0x0000fede => "\xbf", 0x0000fee3 => "\xcd", 0x0000fee7 => "\xda", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM918 - Conversion routines for IBM918 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM918. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP918 alias EBCDIC-CP-AR2 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 41 | 000000A0 | NO-BREAK SPACE 42 | 0000060C | ARABIC COMMA 43 | 0000061B | ARABIC SEMICOLON 44 | 0000061F | ARABIC QUESTION MARK 45 | 00000623 | ARABIC LETTER ALEF WITH HAMZA ABOVE 46 | 00000627 | ARABIC LETTER ALEF 47 | 0000FE8E | ARABIC LETTER ALEF FINAL FORM 49 | 00000628 | ARABIC LETTER BEH 4A | 0000005B | LEFT SQUARE BRACKET 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 51 | 0000FE91 | ARABIC LETTER BEH INITIAL FORM 52 | 0000067E | ARABIC LETTER PEH 54 | 00000629 | ARABIC LETTER TEH MARBUTA 55 | 0000062A | ARABIC LETTER TEH 56 | 0000FE97 | ARABIC LETTER TEH INITIAL FORM 59 | 0000062B | ARABIC LETTER THEH 5A | 0000005D | RIGHT SQUARE BRACKET 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 62 | 0000FE9B | ARABIC LETTER THEH INITIAL FORM 63 | 0000062C | ARABIC LETTER JEEM 64 | 0000FE9F | ARABIC LETTER JEEM INITIAL FORM 67 | 0000062D | ARABIC LETTER HAH 68 | 0000FEA3 | ARABIC LETTER HAH INITIAL FORM 69 | 0000062E | ARABIC LETTER KHAH 6A | 00000060 | GRAVE ACCENT 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 70 | 00000660 | ARABIC-INDIC DIGIT ZERO 71 | 00000661 | ARABIC-INDIC DIGIT ONE 72 | 00000662 | ARABIC-INDIC DIGIT TWO 73 | 00000663 | ARABIC-INDIC DIGIT THREE 74 | 00000664 | ARABIC-INDIC DIGIT FOUR 75 | 00000665 | ARABIC-INDIC DIGIT FIVE 76 | 00000666 | ARABIC-INDIC DIGIT SIX 77 | 00000667 | ARABIC-INDIC DIGIT SEVEN 78 | 00000668 | ARABIC-INDIC DIGIT EIGHT 79 | 00000669 | ARABIC-INDIC DIGIT NINE 7A | 0000003A | COLON 7B | 00000023 | NUMBER SIGN 7C | 00000040 | COMMERCIAL AT 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 80 | 0000FEA7 | ARABIC LETTER KHAH INITIAL FORM 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 8A | 0000062F | ARABIC LETTER DAL 8C | 00000630 | ARABIC LETTER THAL 8D | 00000631 | ARABIC LETTER REH 8F | 00000632 | ARABIC LETTER ZAIN 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R 9A | 00000633 | ARABIC LETTER SEEN 9B | 0000FEB3 | ARABIC LETTER SEEN INITIAL FORM 9C | 00000634 | ARABIC LETTER SHEEN 9D | 0000FEB7 | ARABIC LETTER SHEEN INITIAL FORM 9E | 00000635 | ARABIC LETTER SAD 9F | 0000FEBB | ARABIC LETTER SAD INITIAL FORM A0 | 00000636 | ARABIC LETTER DAD A1 | 0000007E | TILDE A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z AA | 0000FEBF | ARABIC LETTER DAD INITIAL FORM AB | 00000637 | ARABIC LETTER TAH AC | 00000638 | ARABIC LETTER ZAH AD | 00000639 | ARABIC LETTER AIN AE | 0000FECA | ARABIC LETTER AIN FINAL FORM AF | 0000FECB | ARABIC LETTER AIN INITIAL FORM B0 | 0000FECC | ARABIC LETTER AIN MEDIAL FORM B1 | 0000063A | ARABIC LETTER GHAIN B2 | 0000FECE | ARABIC LETTER GHAIN FINAL FORM B3 | 0000FECF | ARABIC LETTER GHAIN INITIAL FORM B4 | 0000FED0 | ARABIC LETTER GHAIN MEDIAL FORM B5 | 00000641 | ARABIC LETTER FEH B6 | 0000FED3 | ARABIC LETTER FEH INITIAL FORM B7 | 00000642 | ARABIC LETTER QAF B8 | 0000FED7 | ARABIC LETTER QAF INITIAL FORM B9 | 00000643 | ARABIC LETTER KAF BA | 0000FEDB | ARABIC LETTER KAF INITIAL FORM BB | 0000007C | VERTICAL LINE BE | 00000644 | ARABIC LETTER LAM BF | 0000FEDE | ARABIC LETTER LAM FINAL FORM C0 | 0000007B | LEFT CURLY BRACKET C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I CA | 000000AD | SOFT HYPHEN CC | 00000645 | ARABIC LETTER MEEM CD | 0000FEE3 | ARABIC LETTER MEEM INITIAL FORM CF | 00000646 | ARABIC LETTER NOON D0 | 0000007D | RIGHT CURLY BRACKET D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R DA | 0000FEE7 | ARABIC LETTER NOON INITIAL FORM DC | 00000648 | ARABIC LETTER WAW E0 | 0000005C | REVERSE SOLIDUS E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z EA | 00000621 | ARABIC LETTER HAMZA F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FD | 00000651 | ARABIC SHADDA FE | 0000FE7D | ARABIC SHADDA MEDIAL FORM FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]tǡmjjRecodeData/ISO_8859_13.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ISO-8859-13. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ISO_8859_13; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x201d, 0x00a2, 0x00a3, 0x00a4, 0x201e, 0x00a6, 0x00a7, 0x00d8, 0x00a9, 0x0156, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00c6, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x201c, 0x00b5, 0x00b6, 0x00b7, 0x00f8, 0x00b9, 0x0157, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00e6, 0x0104, 0x012e, 0x0100, 0x0106, 0x00c4, 0x00c5, 0x0118, 0x0112, 0x010c, 0x00c9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012a, 0x013b, 0x0160, 0x0143, 0x0145, 0x00d3, 0x014c, 0x00d5, 0x00d6, 0x00d7, 0x0172, 0x0141, 0x015a, 0x016a, 0x00dc, 0x017b, 0x017d, 0x00df, 0x0105, 0x012f, 0x0101, 0x0107, 0x00e4, 0x00e5, 0x0119, 0x0113, 0x010d, 0x00e9, 0x017a, 0x0117, 0x0123, 0x0137, 0x012b, 0x013c, 0x0161, 0x0144, 0x0146, 0x00f3, 0x014d, 0x00f5, 0x00f6, 0x00f7, 0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0x2019, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\xc2\x85", "\xc2\x86", "\xc2\x87", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\xc2\x8d", "\xc2\x8e", "\xc2\x8f", "\xc2\x90", "\xc2\x91", "\xc2\x92", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\xc2\x97", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\xc2\x9c", "\xc2\x9d", "\xc2\x9e", "\xc2\x9f", "\xc2\xa0", "\xe2\x80\x9d", "\xc2\xa2", "\xc2\xa3", "\xc2\xa4", "\xe2\x80\x9e", "\xc2\xa6", "\xc2\xa7", "\xc3\x98", "\xc2\xa9", "\xc5\x96", "\xc2\xab", "\xc2\xac", "\xc2\xad", "\xc2\xae", "\xc3\x86", "\xc2\xb0", "\xc2\xb1", "\xc2\xb2", "\xc2\xb3", "\xe2\x80\x9c", "\xc2\xb5", "\xc2\xb6", "\xc2\xb7", "\xc3\xb8", "\xc2\xb9", "\xc5\x97", "\xc2\xbb", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\xc3\xa6", "\xc4\x84", "\xc4\xae", "\xc4\x80", "\xc4\x86", "\xc3\x84", "\xc3\x85", "\xc4\x98", "\xc4\x92", "\xc4\x8c", "\xc3\x89", "\xc5\xb9", "\xc4\x96", "\xc4\xa2", "\xc4\xb6", "\xc4\xaa", "\xc4\xbb", "\xc5\xa0", "\xc5\x83", "\xc5\x85", "\xc3\x93", "\xc5\x8c", "\xc3\x95", "\xc3\x96", "\xc3\x97", "\xc5\xb2", "\xc5\x81", "\xc5\x9a", "\xc5\xaa", "\xc3\x9c", "\xc5\xbb", "\xc5\xbd", "\xc3\x9f", "\xc4\x85", "\xc4\xaf", "\xc4\x81", "\xc4\x87", "\xc3\xa4", "\xc3\xa5", "\xc4\x99", "\xc4\x93", "\xc4\x8d", "\xc3\xa9", "\xc5\xba", "\xc4\x97", "\xc4\xa3", "\xc4\xb7", "\xc4\xab", "\xc4\xbc", "\xc5\xa1", "\xc5\x84", "\xc5\x86", "\xc3\xb3", "\xc5\x8d", "\xc3\xb5", "\xc3\xb6", "\xc3\xb7", "\xc5\xb3", "\xc5\x82", "\xc5\x9b", "\xc5\xab", "\xc3\xbc", "\xc5\xbc", "\xc5\xbe", "\xe2\x80\x99", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000080 => "\x80", 0x00000081 => "\x81", 0x00000082 => "\x82", 0x00000083 => "\x83", 0x00000084 => "\x84", 0x00000085 => "\x85", 0x00000086 => "\x86", 0x00000087 => "\x87", 0x00000088 => "\x88", 0x00000089 => "\x89", 0x0000008a => "\x8a", 0x0000008b => "\x8b", 0x0000008c => "\x8c", 0x0000008d => "\x8d", 0x0000008e => "\x8e", 0x0000008f => "\x8f", 0x00000090 => "\x90", 0x00000091 => "\x91", 0x00000092 => "\x92", 0x00000093 => "\x93", 0x00000094 => "\x94", 0x00000095 => "\x95", 0x00000096 => "\x96", 0x00000097 => "\x97", 0x00000098 => "\x98", 0x00000099 => "\x99", 0x0000009a => "\x9a", 0x0000009b => "\x9b", 0x0000009c => "\x9c", 0x0000009d => "\x9d", 0x0000009e => "\x9e", 0x0000009f => "\x9f", 0x000000a0 => "\xa0", 0x000000a2 => "\xa2", 0x000000a3 => "\xa3", 0x000000a4 => "\xa4", 0x000000a6 => "\xa6", 0x000000a7 => "\xa7", 0x000000a9 => "\xa9", 0x000000ab => "\xab", 0x000000ac => "\xac", 0x000000ad => "\xad", 0x000000ae => "\xae", 0x000000b0 => "\xb0", 0x000000b1 => "\xb1", 0x000000b2 => "\xb2", 0x000000b3 => "\xb3", 0x000000b5 => "\xb5", 0x000000b6 => "\xb6", 0x000000b7 => "\xb7", 0x000000b9 => "\xb9", 0x000000bb => "\xbb", 0x000000bc => "\xbc", 0x000000bd => "\xbd", 0x000000be => "\xbe", 0x000000c4 => "\xc4", 0x000000c5 => "\xc5", 0x000000c6 => "\xaf", 0x000000c9 => "\xc9", 0x000000d3 => "\xd3", 0x000000d5 => "\xd5", 0x000000d6 => "\xd6", 0x000000d7 => "\xd7", 0x000000d8 => "\xa8", 0x000000dc => "\xdc", 0x000000df => "\xdf", 0x000000e4 => "\xe4", 0x000000e5 => "\xe5", 0x000000e6 => "\xbf", 0x000000e9 => "\xe9", 0x000000f3 => "\xf3", 0x000000f5 => "\xf5", 0x000000f6 => "\xf6", 0x000000f7 => "\xf7", 0x000000f8 => "\xb8", 0x000000fc => "\xfc", 0x00000100 => "\xc2", 0x00000101 => "\xe2", 0x00000104 => "\xc0", 0x00000105 => "\xe0", 0x00000106 => "\xc3", 0x00000107 => "\xe3", 0x0000010c => "\xc8", 0x0000010d => "\xe8", 0x00000112 => "\xc7", 0x00000113 => "\xe7", 0x00000116 => "\xcb", 0x00000117 => "\xeb", 0x00000118 => "\xc6", 0x00000119 => "\xe6", 0x00000122 => "\xcc", 0x00000123 => "\xec", 0x0000012a => "\xce", 0x0000012b => "\xee", 0x0000012e => "\xc1", 0x0000012f => "\xe1", 0x00000136 => "\xcd", 0x00000137 => "\xed", 0x0000013b => "\xcf", 0x0000013c => "\xef", 0x00000141 => "\xd9", 0x00000142 => "\xf9", 0x00000143 => "\xd1", 0x00000144 => "\xf1", 0x00000145 => "\xd2", 0x00000146 => "\xf2", 0x0000014c => "\xd4", 0x0000014d => "\xf4", 0x00000156 => "\xaa", 0x00000157 => "\xba", 0x0000015a => "\xda", 0x0000015b => "\xfa", 0x00000160 => "\xd0", 0x00000161 => "\xf0", 0x0000016a => "\xdb", 0x0000016b => "\xfb", 0x00000172 => "\xd8", 0x00000173 => "\xf8", 0x00000179 => "\xca", 0x0000017a => "\xea", 0x0000017b => "\xdd", 0x0000017c => "\xfd", 0x0000017d => "\xde", 0x0000017e => "\xfe", 0x00002019 => "\xff", 0x0000201c => "\xb4", 0x0000201d => "\xa1", 0x0000201e => "\xa5", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ISO_8859_13 - Conversion routines for ISO-8859-13 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for ISO-8859-13. =head1 COMMENTS The following comments have been extracted from the original charmap: automatically generated from the charDB alias ISO-IR-179 alias LATIN7 alias L7 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL 01 | 00000001 | START OF HEADING 02 | 00000002 | START OF TEXT 03 | 00000003 | END OF TEXT 04 | 00000004 | END OF TRANSMISSION 05 | 00000005 | ENQUIRY 06 | 00000006 | ACKNOWLEDGE 07 | 00000007 | BELL 08 | 00000008 | BACKSPACE 09 | 00000009 | HORIZONTAL TABULATION 0A | 0000000A | LINE FEED 0B | 0000000B | VERTICAL TABULATION 0C | 0000000C | FORM FEED 0D | 0000000D | CARRIAGE RETURN 0E | 0000000E | SHIFT OUT 0F | 0000000F | SHIFT IN 10 | 00000010 | DATA LINK ESCAPE 11 | 00000011 | DEVICE CONTROL ONE 12 | 00000012 | DEVICE CONTROL TWO 13 | 00000013 | DEVICE CONTROL THREE 14 | 00000014 | DEVICE CONTROL FOUR 15 | 00000015 | NEGATIVE ACKNOWLEDGE 16 | 00000016 | SYNCHRONOUS IDLE 17 | 00000017 | END OF TRANSMISSION BLOCK 18 | 00000018 | CANCEL 19 | 00000019 | END OF MEDIUM 1A | 0000001A | SUBSTITUTE 1B | 0000001B | ESCAPE 1C | 0000001C | FILE SEPARATOR 1D | 0000001D | GROUP SEPARATOR 1E | 0000001E | RECORD SEPARATOR 1F | 0000001F | UNIT SEPARATOR 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE 80 | 00000080 | PADDING CHARACTER (PAD) 81 | 00000081 | HIGH OCTET PRESET (HOP) 82 | 00000082 | BREAK PERMITTED HERE (BPH) 83 | 00000083 | NO BREAK HERE (NBH) 84 | 00000084 | INDEX (IND) 85 | 00000085 | NEXT LINE (NEL) 86 | 00000086 | START OF SELECTED AREA (SSA) 87 | 00000087 | END OF SELECTED AREA (ESA) 88 | 00000088 | CHARACTER TABULATION SET (HTS) 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 8A | 0000008A | LINE TABULATION SET (VTS) 8B | 0000008B | PARTIAL LINE FORWARD (PLD) 8C | 0000008C | PARTIAL LINE BACKWARD (PLU) 8D | 0000008D | REVERSE LINE FEED (RI) 8E | 0000008E | SINGLE-SHIFT TWO (SS2) 8F | 0000008F | SINGLE-SHIFT THREE (SS3) 90 | 00000090 | DEVICE CONTROL STRING (DCS) 91 | 00000091 | PRIVATE USE ONE (PU1) 92 | 00000092 | PRIVATE USE TWO (PU2) 93 | 00000093 | SET TRANSMIT STATE (STS) 94 | 00000094 | CANCEL CHARACTER (CCH) 95 | 00000095 | MESSAGE WAITING (MW) 96 | 00000096 | START OF GUARDED AREA (SPA) 97 | 00000097 | END OF GUARDED AREA (EPA) 98 | 00000098 | START OF STRING (SOS) 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 9C | 0000009C | STRING TERMINATOR (ST) 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC) 9E | 0000009E | PRIVACY MESSAGE (PM) 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC) A0 | 000000A0 | NO-BREAK SPACE A1 | 0000201D | RIGHT DOUBLE QUOTATION MARK A2 | 000000A2 | CENT SIGN A3 | 000000A3 | POUND SIGN A4 | 000000A4 | CURRENCY SIGN A5 | 0000201E | DOUBLE LOW-9 QUOTATION MARK A6 | 000000A6 | BROKEN BAR A7 | 000000A7 | SECTION SIGN A8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE A9 | 000000A9 | COPYRIGHT SIGN AA | 00000156 | LATIN CAPITAL LETTER R WITH CEDILLA AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AC | 000000AC | NOT SIGN AD | 000000AD | SOFT HYPHEN AE | 000000AE | REGISTERED SIGN AF | 000000C6 | LATIN CAPITAL LETTER AE B0 | 000000B0 | DEGREE SIGN B1 | 000000B1 | PLUS-MINUS SIGN B2 | 000000B2 | SUPERSCRIPT TWO B3 | 000000B3 | SUPERSCRIPT THREE B4 | 0000201C | LEFT DOUBLE QUOTATION MARK B5 | 000000B5 | MICRO SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000B7 | MIDDLE DOT B8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE B9 | 000000B9 | SUPERSCRIPT ONE BA | 00000157 | LATIN SMALL LETTER R WITH CEDILLA BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK BC | 000000BC | VULGAR FRACTION ONE QUARTER BD | 000000BD | VULGAR FRACTION ONE HALF BE | 000000BE | VULGAR FRACTION THREE QUARTERS BF | 000000E6 | LATIN SMALL LETTER AE C0 | 00000104 | LATIN CAPITAL LETTER A WITH OGONEK C1 | 0000012E | LATIN CAPITAL LETTER I WITH OGONEK C2 | 00000100 | LATIN CAPITAL LETTER A WITH MACRON C3 | 00000106 | LATIN CAPITAL LETTER C WITH ACUTE C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE C6 | 00000118 | LATIN CAPITAL LETTER E WITH OGONEK C7 | 00000112 | LATIN CAPITAL LETTER E WITH MACRON C8 | 0000010C | LATIN CAPITAL LETTER C WITH CARON C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE CA | 00000179 | LATIN CAPITAL LETTER Z WITH ACUTE CB | 00000116 | LATIN CAPITAL LETTER E WITH DOT ABOVE CC | 00000122 | LATIN CAPITAL LETTER G WITH CEDILLA CD | 00000136 | LATIN CAPITAL LETTER K WITH CEDILLA CE | 0000012A | LATIN CAPITAL LETTER I WITH MACRON CF | 0000013B | LATIN CAPITAL LETTER L WITH CEDILLA D0 | 00000160 | LATIN CAPITAL LETTER S WITH CARON D1 | 00000143 | LATIN CAPITAL LETTER N WITH ACUTE D2 | 00000145 | LATIN CAPITAL LETTER N WITH CEDILLA D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE D4 | 0000014C | LATIN CAPITAL LETTER O WITH MACRON D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS D7 | 000000D7 | MULTIPLICATION SIGN D8 | 00000172 | LATIN CAPITAL LETTER U WITH OGONEK D9 | 00000141 | LATIN CAPITAL LETTER L WITH STROKE DA | 0000015A | LATIN CAPITAL LETTER S WITH ACUTE DB | 0000016A | LATIN CAPITAL LETTER U WITH MACRON DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS DD | 0000017B | LATIN CAPITAL LETTER Z WITH DOT ABOVE DE | 0000017D | LATIN CAPITAL LETTER Z WITH CARON DF | 000000DF | LATIN SMALL LETTER SHARP S E0 | 00000105 | LATIN SMALL LETTER A WITH OGONEK E1 | 0000012F | LATIN SMALL LETTER I WITH OGONEK E2 | 00000101 | LATIN SMALL LETTER A WITH MACRON E3 | 00000107 | LATIN SMALL LETTER C WITH ACUTE E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE E6 | 00000119 | LATIN SMALL LETTER E WITH OGONEK E7 | 00000113 | LATIN SMALL LETTER E WITH MACRON E8 | 0000010D | LATIN SMALL LETTER C WITH CARON E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE EA | 0000017A | LATIN SMALL LETTER Z WITH ACUTE EB | 00000117 | LATIN SMALL LETTER E WITH DOT ABOVE EC | 00000123 | LATIN SMALL LETTER G WITH CEDILLA ED | 00000137 | LATIN SMALL LETTER K WITH CEDILLA EE | 0000012B | LATIN SMALL LETTER I WITH MACRON EF | 0000013C | LATIN SMALL LETTER L WITH CEDILLA F0 | 00000161 | LATIN SMALL LETTER S WITH CARON F1 | 00000144 | LATIN SMALL LETTER N WITH ACUTE F2 | 00000146 | LATIN SMALL LETTER N WITH CEDILLA F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE F4 | 0000014D | LATIN SMALL LETTER O WITH MACRON F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS F7 | 000000F7 | DIVISION SIGN F8 | 00000173 | LATIN SMALL LETTER U WITH OGONEK F9 | 00000142 | LATIN SMALL LETTER L WITH STROKE FA | 0000015B | LATIN SMALL LETTER S WITH ACUTE FB | 0000016B | LATIN SMALL LETTER U WITH MACRON FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS FD | 0000017C | LATIN SMALL LETTER Z WITH DOT ABOVE FE | 0000017E | LATIN SMALL LETTER Z WITH CARON FF | 00002019 | RIGHT SINGLE QUOTATION MARK =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]լqOqORecodeData/EBCDIC_DK_NO_A.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for EBCDIC-DK-NO-A. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::EBCDIC_DK_NO_A; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00f8, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e5, 0x00c5, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x003a, 0x00c6, 0x00d8, 0x0027, 0x003d, 0x00e6, 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xb8", "\x2e", "\x3c", "\x28", "\x2b", "\x7c", "\x26", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa5", "\xc3\x85", "\x2a", "\x29", "\x3b", "\xc2\xac", "\x2d", "\x2f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa6", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x3a", "\xc3\x86", "\xc3\x98", "\x27", "\x3d", "\xc3\xa6", "\xef\xbf\xbd", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005f => "\x6d", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007c => "\x4f", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a6 => "\x6a", 0x000000ac => "\x5f", 0x000000c5 => "\x5b", 0x000000c6 => "\x7b", 0x000000d8 => "\x7c", 0x000000e5 => "\x5a", 0x000000e6 => "\x7f", 0x000000f8 => "\x4a", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::EBCDIC_DK_NO_A - Conversion routines for EBCDIC_DK_NO_A =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for EBCDIC-DK-NO-A. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 4A | 000000F8 | LATIN SMALL LETTER O WITH STROKE 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 0000007C | VERTICAL LINE 50 | 00000026 | AMPERSAND 5A | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 5B | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 000000AC | NOT SIGN 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 6A | 000000A6 | BROKEN BAR 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 7A | 0000003A | COLON 7B | 000000C6 | LATIN CAPITAL LETTER AE 7C | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 000000E6 | LATIN SMALL LETTER AE 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK])jjRecodeData/ISO_8859_9.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ISO-8859-9. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ISO_8859_9; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\xc2\x85", "\xc2\x86", "\xc2\x87", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\xc2\x8d", "\xc2\x8e", "\xc2\x8f", "\xc2\x90", "\xc2\x91", "\xc2\x92", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\xc2\x97", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\xc2\x9c", "\xc2\x9d", "\xc2\x9e", "\xc2\x9f", "\xc2\xa0", "\xc2\xa1", "\xc2\xa2", "\xc2\xa3", "\xc2\xa4", "\xc2\xa5", "\xc2\xa6", "\xc2\xa7", "\xc2\xa8", "\xc2\xa9", "\xc2\xaa", "\xc2\xab", "\xc2\xac", "\xc2\xad", "\xc2\xae", "\xc2\xaf", "\xc2\xb0", "\xc2\xb1", "\xc2\xb2", "\xc2\xb3", "\xc2\xb4", "\xc2\xb5", "\xc2\xb6", "\xc2\xb7", "\xc2\xb8", "\xc2\xb9", "\xc2\xba", "\xc2\xbb", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\xc2\xbf", "\xc3\x80", "\xc3\x81", "\xc3\x82", "\xc3\x83", "\xc3\x84", "\xc3\x85", "\xc3\x86", "\xc3\x87", "\xc3\x88", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x8c", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc4\x9e", "\xc3\x91", "\xc3\x92", "\xc3\x93", "\xc3\x94", "\xc3\x95", "\xc3\x96", "\xc3\x97", "\xc3\x98", "\xc3\x99", "\xc3\x9a", "\xc3\x9b", "\xc3\x9c", "\xc4\xb0", "\xc5\x9e", "\xc3\x9f", "\xc3\xa0", "\xc3\xa1", "\xc3\xa2", "\xc3\xa3", "\xc3\xa4", "\xc3\xa5", "\xc3\xa6", "\xc3\xa7", "\xc3\xa8", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xac", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc4\x9f", "\xc3\xb1", "\xc3\xb2", "\xc3\xb3", "\xc3\xb4", "\xc3\xb5", "\xc3\xb6", "\xc3\xb7", "\xc3\xb8", "\xc3\xb9", "\xc3\xba", "\xc3\xbb", "\xc3\xbc", "\xc4\xb1", "\xc5\x9f", "\xc3\xbf", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000080 => "\x80", 0x00000081 => "\x81", 0x00000082 => "\x82", 0x00000083 => "\x83", 0x00000084 => "\x84", 0x00000085 => "\x85", 0x00000086 => "\x86", 0x00000087 => "\x87", 0x00000088 => "\x88", 0x00000089 => "\x89", 0x0000008a => "\x8a", 0x0000008b => "\x8b", 0x0000008c => "\x8c", 0x0000008d => "\x8d", 0x0000008e => "\x8e", 0x0000008f => "\x8f", 0x00000090 => "\x90", 0x00000091 => "\x91", 0x00000092 => "\x92", 0x00000093 => "\x93", 0x00000094 => "\x94", 0x00000095 => "\x95", 0x00000096 => "\x96", 0x00000097 => "\x97", 0x00000098 => "\x98", 0x00000099 => "\x99", 0x0000009a => "\x9a", 0x0000009b => "\x9b", 0x0000009c => "\x9c", 0x0000009d => "\x9d", 0x0000009e => "\x9e", 0x0000009f => "\x9f", 0x000000a0 => "\xa0", 0x000000a1 => "\xa1", 0x000000a2 => "\xa2", 0x000000a3 => "\xa3", 0x000000a4 => "\xa4", 0x000000a5 => "\xa5", 0x000000a6 => "\xa6", 0x000000a7 => "\xa7", 0x000000a8 => "\xa8", 0x000000a9 => "\xa9", 0x000000aa => "\xaa", 0x000000ab => "\xab", 0x000000ac => "\xac", 0x000000ad => "\xad", 0x000000ae => "\xae", 0x000000af => "\xaf", 0x000000b0 => "\xb0", 0x000000b1 => "\xb1", 0x000000b2 => "\xb2", 0x000000b3 => "\xb3", 0x000000b4 => "\xb4", 0x000000b5 => "\xb5", 0x000000b6 => "\xb6", 0x000000b7 => "\xb7", 0x000000b8 => "\xb8", 0x000000b9 => "\xb9", 0x000000ba => "\xba", 0x000000bb => "\xbb", 0x000000bc => "\xbc", 0x000000bd => "\xbd", 0x000000be => "\xbe", 0x000000bf => "\xbf", 0x000000c0 => "\xc0", 0x000000c1 => "\xc1", 0x000000c2 => "\xc2", 0x000000c3 => "\xc3", 0x000000c4 => "\xc4", 0x000000c5 => "\xc5", 0x000000c6 => "\xc6", 0x000000c7 => "\xc7", 0x000000c8 => "\xc8", 0x000000c9 => "\xc9", 0x000000ca => "\xca", 0x000000cb => "\xcb", 0x000000cc => "\xcc", 0x000000cd => "\xcd", 0x000000ce => "\xce", 0x000000cf => "\xcf", 0x000000d1 => "\xd1", 0x000000d2 => "\xd2", 0x000000d3 => "\xd3", 0x000000d4 => "\xd4", 0x000000d5 => "\xd5", 0x000000d6 => "\xd6", 0x000000d7 => "\xd7", 0x000000d8 => "\xd8", 0x000000d9 => "\xd9", 0x000000da => "\xda", 0x000000db => "\xdb", 0x000000dc => "\xdc", 0x000000df => "\xdf", 0x000000e0 => "\xe0", 0x000000e1 => "\xe1", 0x000000e2 => "\xe2", 0x000000e3 => "\xe3", 0x000000e4 => "\xe4", 0x000000e5 => "\xe5", 0x000000e6 => "\xe6", 0x000000e7 => "\xe7", 0x000000e8 => "\xe8", 0x000000e9 => "\xe9", 0x000000ea => "\xea", 0x000000eb => "\xeb", 0x000000ec => "\xec", 0x000000ed => "\xed", 0x000000ee => "\xee", 0x000000ef => "\xef", 0x000000f1 => "\xf1", 0x000000f2 => "\xf2", 0x000000f3 => "\xf3", 0x000000f4 => "\xf4", 0x000000f5 => "\xf5", 0x000000f6 => "\xf6", 0x000000f7 => "\xf7", 0x000000f8 => "\xf8", 0x000000f9 => "\xf9", 0x000000fa => "\xfa", 0x000000fb => "\xfb", 0x000000fc => "\xfc", 0x000000ff => "\xff", 0x0000011e => "\xd0", 0x0000011f => "\xf0", 0x00000130 => "\xdd", 0x00000131 => "\xfd", 0x0000015e => "\xde", 0x0000015f => "\xfe", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ISO_8859_9 - Conversion routines for ISO-8859-9 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for ISO-8859-9. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: ECMA registry alias ISO-IR-148 alias ISO_8859-9:1989 alias ISO_8859-9 alias LATIN5 alias L5 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000080 | PADDING CHARACTER (PAD) 81 | 00000081 | HIGH OCTET PRESET (HOP) 82 | 00000082 | BREAK PERMITTED HERE (BPH) 83 | 00000083 | NO BREAK HERE (NBH) 84 | 00000084 | INDEX (IND) 85 | 00000085 | NEXT LINE (NEL) 86 | 00000086 | START OF SELECTED AREA (SSA) 87 | 00000087 | END OF SELECTED AREA (ESA) 88 | 00000088 | CHARACTER TABULATION SET (HTS) 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 8A | 0000008A | LINE TABULATION SET (VTS) 8B | 0000008B | PARTIAL LINE FORWARD (PLD) 8C | 0000008C | PARTIAL LINE BACKWARD (PLU) 8D | 0000008D | REVERSE LINE FEED (RI) 8E | 0000008E | SINGLE-SHIFT TWO (SS2) 8F | 0000008F | SINGLE-SHIFT THREE (SS3) 90 | 00000090 | DEVICE CONTROL STRING (DCS) 91 | 00000091 | PRIVATE USE ONE (PU1) 92 | 00000092 | PRIVATE USE TWO (PU2) 93 | 00000093 | SET TRANSMIT STATE (STS) 94 | 00000094 | CANCEL CHARACTER (CCH) 95 | 00000095 | MESSAGE WAITING (MW) 96 | 00000096 | START OF GUARDED AREA (SPA) 97 | 00000097 | END OF GUARDED AREA (EPA) 98 | 00000098 | START OF STRING (SOS) 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 9C | 0000009C | STRING TERMINATOR (ST) 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC) 9E | 0000009E | PRIVACY MESSAGE (PM) 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC) A0 | 000000A0 | NO-BREAK SPACE A1 | 000000A1 | INVERTED EXCLAMATION MARK A2 | 000000A2 | CENT SIGN A3 | 000000A3 | POUND SIGN A4 | 000000A4 | CURRENCY SIGN A5 | 000000A5 | YEN SIGN A6 | 000000A6 | BROKEN BAR A7 | 000000A7 | SECTION SIGN A8 | 000000A8 | DIAERESIS A9 | 000000A9 | COPYRIGHT SIGN AA | 000000AA | FEMININE ORDINAL INDICATOR AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AC | 000000AC | NOT SIGN AD | 000000AD | SOFT HYPHEN AE | 000000AE | REGISTERED SIGN AF | 000000AF | MACRON B0 | 000000B0 | DEGREE SIGN B1 | 000000B1 | PLUS-MINUS SIGN B2 | 000000B2 | SUPERSCRIPT TWO B3 | 000000B3 | SUPERSCRIPT THREE B4 | 000000B4 | ACUTE ACCENT B5 | 000000B5 | MICRO SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000B7 | MIDDLE DOT B8 | 000000B8 | CEDILLA B9 | 000000B9 | SUPERSCRIPT ONE BA | 000000BA | MASCULINE ORDINAL INDICATOR BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK BC | 000000BC | VULGAR FRACTION ONE QUARTER BD | 000000BD | VULGAR FRACTION ONE HALF BE | 000000BE | VULGAR FRACTION THREE QUARTERS BF | 000000BF | INVERTED QUESTION MARK C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE C6 | 000000C6 | LATIN CAPITAL LETTER AE C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS D0 | 0000011E | LATIN CAPITAL LETTER G WITH BREVE D1 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS D7 | 000000D7 | MULTIPLICATION SIGN D8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS DD | 00000130 | LATIN CAPITAL LETTER I WITH DOT ABOVE DE | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA DF | 000000DF | LATIN SMALL LETTER SHARP S (German) E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE E6 | 000000E6 | LATIN SMALL LETTER AE E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS F0 | 0000011F | LATIN SMALL LETTER G WITH BREVE F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS F7 | 000000F7 | DIVISION SIGN F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS FD | 00000131 | LATIN SMALL LETTER DOTLESS I FE | 0000015F | LATIN SMALL LETTER S WITH CEDILLA FF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]-$=XXRecodeData/ISO_10367_BOX.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ISO_10367-BOX. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ISO_10367_BOX; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2551, 0x2550, 0x2554, 0x2557, 0x255a, 0x255d, 0x2560, 0x2563, 0x2566, 0x2569, 0x256c, 0xe019, 0x2584, 0x2588, 0x25aa, 0xfffd, 0x2502, 0x2500, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524, 0x252c, 0x2534, 0x253c, 0x2591, 0x2592, 0x2593, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\xc2\x85", "\xc2\x86", "\xc2\x87", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\xc2\x8d", "\xc2\x8e", "\xc2\x8f", "\xc2\x90", "\xc2\x91", "\xc2\x92", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\xc2\x97", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\xc2\x9c", "\xc2\x9d", "\xc2\x9e", "\xc2\x9f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe2\x95\x91", "\xe2\x95\x90", "\xe2\x95\x94", "\xe2\x95\x97", "\xe2\x95\x9a", "\xe2\x95\x9d", "\xe2\x95\xa0", "\xe2\x95\xa3", "\xe2\x95\xa6", "\xe2\x95\xa9", "\xe2\x95\xac", "\xee\x80\x99", "\xe2\x96\x84", "\xe2\x96\x88", "\xe2\x96\xaa", "\xef\xbf\xbd", "\xe2\x94\x82", "\xe2\x94\x80", "\xe2\x94\x8c", "\xe2\x94\x90", "\xe2\x94\x94", "\xe2\x94\x98", "\xe2\x94\x9c", "\xe2\x94\xa4", "\xe2\x94\xac", "\xe2\x94\xb4", "\xe2\x94\xbc", "\xe2\x96\x91", "\xe2\x96\x92", "\xe2\x96\x93", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000080 => "\x80", 0x00000081 => "\x81", 0x00000082 => "\x82", 0x00000083 => "\x83", 0x00000084 => "\x84", 0x00000085 => "\x85", 0x00000086 => "\x86", 0x00000087 => "\x87", 0x00000088 => "\x88", 0x00000089 => "\x89", 0x0000008a => "\x8a", 0x0000008b => "\x8b", 0x0000008c => "\x8c", 0x0000008d => "\x8d", 0x0000008e => "\x8e", 0x0000008f => "\x8f", 0x00000090 => "\x90", 0x00000091 => "\x91", 0x00000092 => "\x92", 0x00000093 => "\x93", 0x00000094 => "\x94", 0x00000095 => "\x95", 0x00000096 => "\x96", 0x00000097 => "\x97", 0x00000098 => "\x98", 0x00000099 => "\x99", 0x0000009a => "\x9a", 0x0000009b => "\x9b", 0x0000009c => "\x9c", 0x0000009d => "\x9d", 0x0000009e => "\x9e", 0x0000009f => "\x9f", 0x00002500 => "\xd1", 0x00002502 => "\xd0", 0x0000250c => "\xd2", 0x00002510 => "\xd3", 0x00002514 => "\xd4", 0x00002518 => "\xd5", 0x0000251c => "\xd6", 0x00002524 => "\xd7", 0x0000252c => "\xd8", 0x00002534 => "\xd9", 0x0000253c => "\xda", 0x00002550 => "\xc1", 0x00002551 => "\xc0", 0x00002554 => "\xc2", 0x00002557 => "\xc3", 0x0000255a => "\xc4", 0x0000255d => "\xc5", 0x00002560 => "\xc6", 0x00002563 => "\xc7", 0x00002566 => "\xc8", 0x00002569 => "\xc9", 0x0000256c => "\xca", 0x00002584 => "\xcc", 0x00002588 => "\xcd", 0x00002591 => "\xdb", 0x00002592 => "\xdc", 0x00002593 => "\xdd", 0x000025aa => "\xce", 0x0000e019 => "\xcb", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ISO_10367_BOX - Conversion routines for ISO_10367_BOX =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for ISO_10367-BOX. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: ECMA registry alias ISO-IR-155 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000080 | PADDING CHARACTER (PAD) 81 | 00000081 | HIGH OCTET PRESET (HOP) 82 | 00000082 | BREAK PERMITTED HERE (BPH) 83 | 00000083 | NO BREAK HERE (NBH) 84 | 00000084 | INDEX (IND) 85 | 00000085 | NEXT LINE (NEL) 86 | 00000086 | START OF SELECTED AREA (SSA) 87 | 00000087 | END OF SELECTED AREA (ESA) 88 | 00000088 | CHARACTER TABULATION SET (HTS) 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 8A | 0000008A | LINE TABULATION SET (VTS) 8B | 0000008B | PARTIAL LINE FORWARD (PLD) 8C | 0000008C | PARTIAL LINE BACKWARD (PLU) 8D | 0000008D | REVERSE LINE FEED (RI) 8E | 0000008E | SINGLE-SHIFT TWO (SS2) 8F | 0000008F | SINGLE-SHIFT THREE (SS3) 90 | 00000090 | DEVICE CONTROL STRING (DCS) 91 | 00000091 | PRIVATE USE ONE (PU1) 92 | 00000092 | PRIVATE USE TWO (PU2) 93 | 00000093 | SET TRANSMIT STATE (STS) 94 | 00000094 | CANCEL CHARACTER (CCH) 95 | 00000095 | MESSAGE WAITING (MW) 96 | 00000096 | START OF GUARDED AREA (SPA) 97 | 00000097 | END OF GUARDED AREA (EPA) 98 | 00000098 | START OF STRING (SOS) 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 9C | 0000009C | STRING TERMINATOR (ST) 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC) 9E | 0000009E | PRIVACY MESSAGE (PM) 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC) C0 | 00002551 | BOX DRAWINGS DOUBLE VERTICAL C1 | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL C2 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT C3 | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT C4 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT C5 | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT C6 | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT C7 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT C8 | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL C9 | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL CA | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL CB | 0000E019 | Unit space B EISO-IR-8-1_60E CC | 00002584 | LOWER HALF BLOCK CD | 00002588 | FULL BLOCK CE | 000025AA | BLACK SMALL SQUARE D0 | 00002502 | BOX DRAWINGS LIGHT VERTICAL D1 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL D2 | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT D3 | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT D4 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT D5 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT D6 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT D7 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT D8 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL D9 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL DA | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL DB | 00002591 | LIGHT SHADE DC | 00002592 | MEDIUM SHADE DD | 00002593 | DARK SHADE =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]k\oioiRecodeData/CP1252.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for CP1252. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::CP1252; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0xfffd, 0x017d, 0xfffd, 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0xfffd, 0x017e, 0x0178, 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xe2\x82\xac", "\xef\xbf\xbd", "\xe2\x80\x9a", "\xc6\x92", "\xe2\x80\x9e", "\xe2\x80\xa6", "\xe2\x80\xa0", "\xe2\x80\xa1", "\xcb\x86", "\xe2\x80\xb0", "\xc5\xa0", "\xe2\x80\xb9", "\xc5\x92", "\xef\xbf\xbd", "\xc5\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\xa2", "\xe2\x80\x93", "\xe2\x80\x94", "\xcb\x9c", "\xe2\x84\xa2", "\xc5\xa1", "\xe2\x80\xba", "\xc5\x93", "\xef\xbf\xbd", "\xc5\xbe", "\xc5\xb8", "\xc2\xa0", "\xc2\xa1", "\xc2\xa2", "\xc2\xa3", "\xc2\xa4", "\xc2\xa5", "\xc2\xa6", "\xc2\xa7", "\xc2\xa8", "\xc2\xa9", "\xc2\xaa", "\xc2\xab", "\xc2\xac", "\xc2\xad", "\xc2\xae", "\xc2\xaf", "\xc2\xb0", "\xc2\xb1", "\xc2\xb2", "\xc2\xb3", "\xc2\xb4", "\xc2\xb5", "\xc2\xb6", "\xc2\xb7", "\xc2\xb8", "\xc2\xb9", "\xc2\xba", "\xc2\xbb", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\xc2\xbf", "\xc3\x80", "\xc3\x81", "\xc3\x82", "\xc3\x83", "\xc3\x84", "\xc3\x85", "\xc3\x86", "\xc3\x87", "\xc3\x88", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x8c", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x90", "\xc3\x91", "\xc3\x92", "\xc3\x93", "\xc3\x94", "\xc3\x95", "\xc3\x96", "\xc3\x97", "\xc3\x98", "\xc3\x99", "\xc3\x9a", "\xc3\x9b", "\xc3\x9c", "\xc3\x9d", "\xc3\x9e", "\xc3\x9f", "\xc3\xa0", "\xc3\xa1", "\xc3\xa2", "\xc3\xa3", "\xc3\xa4", "\xc3\xa5", "\xc3\xa6", "\xc3\xa7", "\xc3\xa8", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xac", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc3\xb0", "\xc3\xb1", "\xc3\xb2", "\xc3\xb3", "\xc3\xb4", "\xc3\xb5", "\xc3\xb6", "\xc3\xb7", "\xc3\xb8", "\xc3\xb9", "\xc3\xba", "\xc3\xbb", "\xc3\xbc", "\xc3\xbd", "\xc3\xbe", "\xc3\xbf", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xa0", 0x000000a1 => "\xa1", 0x000000a2 => "\xa2", 0x000000a3 => "\xa3", 0x000000a4 => "\xa4", 0x000000a5 => "\xa5", 0x000000a6 => "\xa6", 0x000000a7 => "\xa7", 0x000000a8 => "\xa8", 0x000000a9 => "\xa9", 0x000000aa => "\xaa", 0x000000ab => "\xab", 0x000000ac => "\xac", 0x000000ad => "\xad", 0x000000ae => "\xae", 0x000000af => "\xaf", 0x000000b0 => "\xb0", 0x000000b1 => "\xb1", 0x000000b2 => "\xb2", 0x000000b3 => "\xb3", 0x000000b4 => "\xb4", 0x000000b5 => "\xb5", 0x000000b6 => "\xb6", 0x000000b7 => "\xb7", 0x000000b8 => "\xb8", 0x000000b9 => "\xb9", 0x000000ba => "\xba", 0x000000bb => "\xbb", 0x000000bc => "\xbc", 0x000000bd => "\xbd", 0x000000be => "\xbe", 0x000000bf => "\xbf", 0x000000c0 => "\xc0", 0x000000c1 => "\xc1", 0x000000c2 => "\xc2", 0x000000c3 => "\xc3", 0x000000c4 => "\xc4", 0x000000c5 => "\xc5", 0x000000c6 => "\xc6", 0x000000c7 => "\xc7", 0x000000c8 => "\xc8", 0x000000c9 => "\xc9", 0x000000ca => "\xca", 0x000000cb => "\xcb", 0x000000cc => "\xcc", 0x000000cd => "\xcd", 0x000000ce => "\xce", 0x000000cf => "\xcf", 0x000000d0 => "\xd0", 0x000000d1 => "\xd1", 0x000000d2 => "\xd2", 0x000000d3 => "\xd3", 0x000000d4 => "\xd4", 0x000000d5 => "\xd5", 0x000000d6 => "\xd6", 0x000000d7 => "\xd7", 0x000000d8 => "\xd8", 0x000000d9 => "\xd9", 0x000000da => "\xda", 0x000000db => "\xdb", 0x000000dc => "\xdc", 0x000000dd => "\xdd", 0x000000de => "\xde", 0x000000df => "\xdf", 0x000000e0 => "\xe0", 0x000000e1 => "\xe1", 0x000000e2 => "\xe2", 0x000000e3 => "\xe3", 0x000000e4 => "\xe4", 0x000000e5 => "\xe5", 0x000000e6 => "\xe6", 0x000000e7 => "\xe7", 0x000000e8 => "\xe8", 0x000000e9 => "\xe9", 0x000000ea => "\xea", 0x000000eb => "\xeb", 0x000000ec => "\xec", 0x000000ed => "\xed", 0x000000ee => "\xee", 0x000000ef => "\xef", 0x000000f0 => "\xf0", 0x000000f1 => "\xf1", 0x000000f2 => "\xf2", 0x000000f3 => "\xf3", 0x000000f4 => "\xf4", 0x000000f5 => "\xf5", 0x000000f6 => "\xf6", 0x000000f7 => "\xf7", 0x000000f8 => "\xf8", 0x000000f9 => "\xf9", 0x000000fa => "\xfa", 0x000000fb => "\xfb", 0x000000fc => "\xfc", 0x000000fd => "\xfd", 0x000000fe => "\xfe", 0x000000ff => "\xff", 0x00000152 => "\x8c", 0x00000153 => "\x9c", 0x00000160 => "\x8a", 0x00000161 => "\x9a", 0x00000178 => "\x9f", 0x0000017d => "\x8e", 0x0000017e => "\x9e", 0x00000192 => "\x83", 0x000002c6 => "\x88", 0x000002dc => "\x98", 0x00002013 => "\x96", 0x00002014 => "\x97", 0x00002018 => "\x91", 0x00002019 => "\x92", 0x0000201a => "\x82", 0x0000201c => "\x93", 0x0000201d => "\x94", 0x0000201e => "\x84", 0x00002020 => "\x86", 0x00002021 => "\x87", 0x00002022 => "\x95", 0x00002026 => "\x85", 0x00002030 => "\x89", 0x00002039 => "\x8b", 0x0000203a => "\x9b", 0x000020ac => "\x80", 0x00002122 => "\x99", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::CP1252 - Conversion routines for CP1252 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for CP1252. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 repertoiremap: mnemonic,ds source: UNICODE 1.0 alias MS-ANSI Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000020AC | EURO SIGN 82 | 0000201A | SINGLE LOW-9 QUOTATION MARK 83 | 00000192 | LATIN SMALL LETTER F WITH HOOK 84 | 0000201E | DOUBLE LOW-9 QUOTATION MARK 85 | 00002026 | HORIZONTAL ELLIPSIS 86 | 00002020 | DAGGER 87 | 00002021 | DOUBLE DAGGER 88 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT 89 | 00002030 | PER MILLE SIGN 8A | 00000160 | LATIN CAPITAL LETTER S WITH CARON 8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK 8C | 00000152 | LATIN CAPITAL LIGATURE OE 8E | 0000017D | LATIN CAPITAL LETTER Z WITH CARON 91 | 00002018 | LEFT SINGLE QUOTATION MARK 92 | 00002019 | RIGHT SINGLE QUOTATION MARK 93 | 0000201C | LEFT DOUBLE QUOTATION MARK 94 | 0000201D | RIGHT DOUBLE QUOTATION MARK 95 | 00002022 | BULLET 96 | 00002013 | EN DASH 97 | 00002014 | EM DASH 98 | 000002DC | SMALL TILDE 99 | 00002122 | TRADE MARK SIGN 9A | 00000161 | LATIN SMALL LETTER S WITH CARON 9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 9C | 00000153 | LATIN SMALL LIGATURE OE 9E | 0000017E | LATIN SMALL LETTER Z WITH CARON 9F | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS A0 | 000000A0 | NO-BREAK SPACE A1 | 000000A1 | INVERTED EXCLAMATION MARK A2 | 000000A2 | CENT SIGN A3 | 000000A3 | POUND SIGN A4 | 000000A4 | CURRENCY SIGN A5 | 000000A5 | YEN SIGN A6 | 000000A6 | BROKEN BAR A7 | 000000A7 | SECTION SIGN A8 | 000000A8 | DIAERESIS A9 | 000000A9 | COPYRIGHT SIGN AA | 000000AA | FEMININE ORDINAL INDICATOR AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AC | 000000AC | NOT SIGN AD | 000000AD | SOFT HYPHEN AE | 000000AE | REGISTERED SIGN AF | 000000AF | MACRON B0 | 000000B0 | DEGREE SIGN B1 | 000000B1 | PLUS-MINUS SIGN B2 | 000000B2 | SUPERSCRIPT TWO B3 | 000000B3 | SUPERSCRIPT THREE B4 | 000000B4 | ACUTE ACCENT B5 | 000000B5 | MICRO SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000B7 | MIDDLE DOT B8 | 000000B8 | CEDILLA B9 | 000000B9 | SUPERSCRIPT ONE BA | 000000BA | MASCULINE ORDINAL INDICATOR BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK BC | 000000BC | VULGAR FRACTION ONE QUARTER BD | 000000BD | VULGAR FRACTION ONE HALF BE | 000000BE | VULGAR FRACTION THREE QUARTERS BF | 000000BF | INVERTED QUESTION MARK C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE C6 | 000000C6 | LATIN CAPITAL LETTER AE C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS D0 | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic) D1 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS D7 | 000000D7 | MULTIPLICATION SIGN D8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS DD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE DE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic) DF | 000000DF | LATIN SMALL LETTER SHARP S (German) E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE E6 | 000000E6 | LATIN SMALL LETTER AE E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS F0 | 000000F0 | LATIN SMALL LETTER ETH (Icelandic) F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS F7 | 000000F7 | DIVISION SIGN F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE FE | 000000FE | LATIN SMALL LETTER THORN (Icelandic) FF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK])b)bRecodeData/MACARABIC.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for MACARABIC. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::MACARABIC; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c4, 0x00a0, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, 0x00e0, 0x00e2, 0x00e4, 0x06ba, 0x00ab, 0x00e7, 0x00e9, 0x00e8, 0x00ea, 0x00eb, 0x00ed, 0x2026, 0x00ee, 0x00ef, 0x00f1, 0x00f3, 0x00bb, 0x00f4, 0x00f6, 0x00f7, 0x00fa, 0x00f9, 0x00fb, 0x00fc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x066a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x060c, 0xfffd, 0xfffd, 0xfffd, 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, 0x0668, 0x0669, 0xfffd, 0x061b, 0xfffd, 0xfffd, 0xfffd, 0x061f, 0x066d, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, 0x0638, 0x0639, 0x063a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f, 0x0650, 0x0651, 0x0652, 0x067e, 0x0679, 0x0686, 0x06d5, 0x06a4, 0x06af, 0x0688, 0x0691, 0xfffd, 0xfffd, 0xfffd, 0x0698, 0x06d2, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc3\x84", "\xc2\xa0", "\xc3\x87", "\xc3\x89", "\xc3\x91", "\xc3\x96", "\xc3\x9c", "\xc3\xa1", "\xc3\xa0", "\xc3\xa2", "\xc3\xa4", "\xda\xba", "\xc2\xab", "\xc3\xa7", "\xc3\xa9", "\xc3\xa8", "\xc3\xaa", "\xc3\xab", "\xc3\xad", "\xe2\x80\xa6", "\xc3\xae", "\xc3\xaf", "\xc3\xb1", "\xc3\xb3", "\xc2\xbb", "\xc3\xb4", "\xc3\xb6", "\xc3\xb7", "\xc3\xba", "\xc3\xb9", "\xc3\xbb", "\xc3\xbc", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd9\xaa", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd8\x8c", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd9\xa0", "\xd9\xa1", "\xd9\xa2", "\xd9\xa3", "\xd9\xa4", "\xd9\xa5", "\xd9\xa6", "\xd9\xa7", "\xd9\xa8", "\xd9\xa9", "\xef\xbf\xbd", "\xd8\x9b", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd8\x9f", "\xd9\xad", "\xd8\xa1", "\xd8\xa2", "\xd8\xa3", "\xd8\xa4", "\xd8\xa5", "\xd8\xa6", "\xd8\xa7", "\xd8\xa8", "\xd8\xa9", "\xd8\xaa", "\xd8\xab", "\xd8\xac", "\xd8\xad", "\xd8\xae", "\xd8\xaf", "\xd8\xb0", "\xd8\xb1", "\xd8\xb2", "\xd8\xb3", "\xd8\xb4", "\xd8\xb5", "\xd8\xb6", "\xd8\xb7", "\xd8\xb8", "\xd8\xb9", "\xd8\xba", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd9\x80", "\xd9\x81", "\xd9\x82", "\xd9\x83", "\xd9\x84", "\xd9\x85", "\xd9\x86", "\xd9\x87", "\xd9\x88", "\xd9\x89", "\xd9\x8a", "\xd9\x8b", "\xd9\x8c", "\xd9\x8d", "\xd9\x8e", "\xd9\x8f", "\xd9\x90", "\xd9\x91", "\xd9\x92", "\xd9\xbe", "\xd9\xb9", "\xda\x86", "\xdb\x95", "\xda\xa4", "\xda\xaf", "\xda\x88", "\xda\x91", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xda\x98", "\xdb\x92", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\x81", 0x000000ab => "\x8c", 0x000000bb => "\x98", 0x000000c4 => "\x80", 0x000000c7 => "\x82", 0x000000c9 => "\x83", 0x000000d1 => "\x84", 0x000000d6 => "\x85", 0x000000dc => "\x86", 0x000000e0 => "\x88", 0x000000e1 => "\x87", 0x000000e2 => "\x89", 0x000000e4 => "\x8a", 0x000000e7 => "\x8d", 0x000000e8 => "\x8f", 0x000000e9 => "\x8e", 0x000000ea => "\x90", 0x000000eb => "\x91", 0x000000ed => "\x92", 0x000000ee => "\x94", 0x000000ef => "\x95", 0x000000f1 => "\x96", 0x000000f3 => "\x97", 0x000000f4 => "\x99", 0x000000f6 => "\x9a", 0x000000f7 => "\x9b", 0x000000f9 => "\x9d", 0x000000fa => "\x9c", 0x000000fb => "\x9e", 0x000000fc => "\x9f", 0x0000060c => "\xac", 0x0000061b => "\xbb", 0x0000061f => "\xbf", 0x00000621 => "\xc1", 0x00000622 => "\xc2", 0x00000623 => "\xc3", 0x00000624 => "\xc4", 0x00000625 => "\xc5", 0x00000626 => "\xc6", 0x00000627 => "\xc7", 0x00000628 => "\xc8", 0x00000629 => "\xc9", 0x0000062a => "\xca", 0x0000062b => "\xcb", 0x0000062c => "\xcc", 0x0000062d => "\xcd", 0x0000062e => "\xce", 0x0000062f => "\xcf", 0x00000630 => "\xd0", 0x00000631 => "\xd1", 0x00000632 => "\xd2", 0x00000633 => "\xd3", 0x00000634 => "\xd4", 0x00000635 => "\xd5", 0x00000636 => "\xd6", 0x00000637 => "\xd7", 0x00000638 => "\xd8", 0x00000639 => "\xd9", 0x0000063a => "\xda", 0x00000640 => "\xe0", 0x00000641 => "\xe1", 0x00000642 => "\xe2", 0x00000643 => "\xe3", 0x00000644 => "\xe4", 0x00000645 => "\xe5", 0x00000646 => "\xe6", 0x00000647 => "\xe7", 0x00000648 => "\xe8", 0x00000649 => "\xe9", 0x0000064a => "\xea", 0x0000064b => "\xeb", 0x0000064c => "\xec", 0x0000064d => "\xed", 0x0000064e => "\xee", 0x0000064f => "\xef", 0x00000650 => "\xf0", 0x00000651 => "\xf1", 0x00000652 => "\xf2", 0x00000660 => "\xb0", 0x00000661 => "\xb1", 0x00000662 => "\xb2", 0x00000663 => "\xb3", 0x00000664 => "\xb4", 0x00000665 => "\xb5", 0x00000666 => "\xb6", 0x00000667 => "\xb7", 0x00000668 => "\xb8", 0x00000669 => "\xb9", 0x0000066a => "\xa5", 0x0000066d => "\xc0", 0x00000679 => "\xf4", 0x0000067e => "\xf3", 0x00000686 => "\xf5", 0x00000688 => "\xf9", 0x00000691 => "\xfa", 0x00000698 => "\xfe", 0x000006a4 => "\xf7", 0x000006af => "\xf8", 0x000006ba => "\x8b", 0x000006d2 => "\xff", 0x000006d5 => "\xf6", 0x00002026 => "\x93", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::MACARABIC - Conversion routines for MACARABIC =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for MACARABIC. =head1 COMMENTS The following comments have been extracted from the original charmap: This charmap has been generated automatically from GNU libiconv conversions. Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 81 | 000000A0 | NO-BREAK SPACE 82 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 83 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 84 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 85 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 86 | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 87 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 88 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 89 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 8A | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 8B | 000006BA | ARABIC LETTER NOON GHUNNA 8C | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 8D | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 8E | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 8F | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 90 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 91 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 92 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 93 | 00002026 | HORIZONTAL ELLIPSIS 94 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 95 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 96 | 000000F1 | LATIN SMALL LETTER N WITH TILDE 97 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE 98 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 99 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX 9A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 9B | 000000F7 | DIVISION SIGN 9C | 000000FA | LATIN SMALL LETTER U WITH ACUTE 9D | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 9E | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX 9F | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS A5 | 0000066A | ARABIC PERCENT SIGN AC | 0000060C | ARABIC COMMA B0 | 00000660 | ARABIC-INDIC DIGIT ZERO B1 | 00000661 | ARABIC-INDIC DIGIT ONE B2 | 00000662 | ARABIC-INDIC DIGIT TWO B3 | 00000663 | ARABIC-INDIC DIGIT THREE B4 | 00000664 | ARABIC-INDIC DIGIT FOUR B5 | 00000665 | ARABIC-INDIC DIGIT FIVE B6 | 00000666 | ARABIC-INDIC DIGIT SIX B7 | 00000667 | ARABIC-INDIC DIGIT SEVEN B8 | 00000668 | ARABIC-INDIC DIGIT EIGHT B9 | 00000669 | ARABIC-INDIC DIGIT NINE BB | 0000061B | ARABIC SEMICOLON BF | 0000061F | ARABIC QUESTION MARK C0 | 0000066D | ARABIC FIVE POINTED STAR C1 | 00000621 | ARABIC LETTER HAMZA C2 | 00000622 | ARABIC LETTER ALEF WITH MADDA ABOVE C3 | 00000623 | ARABIC LETTER ALEF WITH HAMZA ABOVE C4 | 00000624 | ARABIC LETTER WAW WITH HAMZA ABOVE C5 | 00000625 | ARABIC LETTER ALEF WITH HAMZA BELOW C6 | 00000626 | ARABIC LETTER YEH WITH HAMZA ABOVE C7 | 00000627 | ARABIC LETTER ALEF C8 | 00000628 | ARABIC LETTER BEH C9 | 00000629 | ARABIC LETTER TEH MARBUTA CA | 0000062A | ARABIC LETTER TEH CB | 0000062B | ARABIC LETTER THEH CC | 0000062C | ARABIC LETTER JEEM CD | 0000062D | ARABIC LETTER HAH CE | 0000062E | ARABIC LETTER KHAH CF | 0000062F | ARABIC LETTER DAL D0 | 00000630 | ARABIC LETTER THAL D1 | 00000631 | ARABIC LETTER REH D2 | 00000632 | ARABIC LETTER ZAIN D3 | 00000633 | ARABIC LETTER SEEN D4 | 00000634 | ARABIC LETTER SHEEN D5 | 00000635 | ARABIC LETTER SAD D6 | 00000636 | ARABIC LETTER DAD D7 | 00000637 | ARABIC LETTER TAH D8 | 00000638 | ARABIC LETTER ZAH D9 | 00000639 | ARABIC LETTER AIN DA | 0000063A | ARABIC LETTER GHAIN E0 | 00000640 | ARABIC TATWEEL E1 | 00000641 | ARABIC LETTER FEH E2 | 00000642 | ARABIC LETTER QAF E3 | 00000643 | ARABIC LETTER KAF E4 | 00000644 | ARABIC LETTER LAM E5 | 00000645 | ARABIC LETTER MEEM E6 | 00000646 | ARABIC LETTER NOON E7 | 00000647 | ARABIC LETTER HEH E8 | 00000648 | ARABIC LETTER WAW E9 | 00000649 | ARABIC LETTER ALEF MAKSURA EA | 0000064A | ARABIC LETTER YEH EB | 0000064B | ARABIC FATHATAN EC | 0000064C | ARABIC DAMMATAN ED | 0000064D | ARABIC KASRATAN EE | 0000064E | ARABIC FATHA EF | 0000064F | ARABIC DAMMA F0 | 00000650 | ARABIC KASRA F1 | 00000651 | ARABIC SHADDA F2 | 00000652 | ARABIC SUKUN F3 | 0000067E | ARABIC LETTER PEH F4 | 00000679 | ARABIC LETTER TTEH F5 | 00000686 | ARABIC LETTER TCHEH F6 | 000006D5 | ARABIC LETTER AE F7 | 000006A4 | ARABIC LETTER VEH F8 | 000006AF | ARABIC LETTER GAF F9 | 00000688 | ARABIC LETTER DDAL FA | 00000691 | ARABIC LETTER RREH FE | 00000698 | ARABIC LETTER JEH FF | 000006D2 | ARABIC LETTER YEH BARREE =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]SbiOORecodeData/EBCDIC_PT.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for EBCDIC-PT. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::EBCDIC_PT; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00f5, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0060, 0x003a, 0x00c3, 0x00d5, 0x0027, 0x003d, 0x0022, 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e7, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e3, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00b4, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00c7, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x5b", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x5d", "\x24", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xb5", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x60", "\x3a", "\xc3\x83", "\xc3\x95", "\x27", "\x3d", "\x22", "\xef\xbf\xbd", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa7", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa3", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xb4", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\x87", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\x4a", 0x0000005d => "\x5a", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000b4 => "\xd0", 0x000000c3 => "\x7b", 0x000000c7 => "\xe0", 0x000000d5 => "\x7c", 0x000000e3 => "\xc0", 0x000000e7 => "\xa1", 0x000000f5 => "\x6a", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::EBCDIC_PT - Conversion routines for EBCDIC_PT =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for EBCDIC-PT. =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 4A | 0000005B | LEFT SQUARE BRACKET 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 5A | 0000005D | RIGHT SQUARE BRACKET 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 6A | 000000F5 | LATIN SMALL LETTER O WITH TILDE 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE 7C | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R A1 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z C0 | 000000E3 | LATIN SMALL LETTER A WITH TILDE C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I D0 | 000000B4 | ACUTE ACCENT D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R E0 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]=kkRecodeData/IBM500.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM500. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM500; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xc2\xa0", "\xc3\xa2", "\xc3\xa4", "\xc3\xa0", "\xc3\xa1", "\xc3\xa3", "\xc3\xa5", "\xc3\xa7", "\xc3\xb1", "\x5b", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xa8", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc3\xac", "\xc3\x9f", "\x5d", "\x24", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xc3\x82", "\xc3\x84", "\xc3\x80", "\xc3\x81", "\xc3\x83", "\xc3\x85", "\xc3\x87", "\xc3\x91", "\xc2\xa6", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xc3\xb8", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x88", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x8c", "\x60", "\x3a", "\x23", "\x40", "\x27", "\x3d", "\x22", "\xc3\x98", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xc2\xab", "\xc2\xbb", "\xc3\xb0", "\xc3\xbd", "\xc3\xbe", "\xc2\xb1", "\xc2\xb0", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xc2\xaa", "\xc2\xba", "\xc3\xa6", "\xc2\xb8", "\xc3\x86", "\xc2\xa4", "\xc2\xb5", "\x7e", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xc2\xa1", "\xc2\xbf", "\xc3\x90", "\xc3\x9d", "\xc3\x9e", "\xc2\xae", "\xc2\xa2", "\xc2\xa3", "\xc2\xa5", "\xc2\xb7", "\xc2\xa9", "\xc2\xa7", "\xc2\xb6", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\xc2\xac", "\x7c", "\xc2\xaf", "\xc2\xa8", "\xc2\xb4", "\xc3\x97", "\x7b", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xc2\xad", "\xc3\xb4", "\xc3\xb6", "\xc3\xb2", "\xc3\xb3", "\xc3\xb5", "\x7d", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xc2\xb9", "\xc3\xbb", "\xc3\xbc", "\xc3\xb9", "\xc3\xba", "\xc3\xbf", "\x5c", "\xc3\xb7", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xc2\xb2", "\xc3\x94", "\xc3\x96", "\xc3\x92", "\xc3\x93", "\xc3\x95", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xc2\xb3", "\xc3\x9b", "\xc3\x9c", "\xc3\x99", "\xc3\x9a", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000023 => "\x7b", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\x7c", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\x4a", 0x0000005c => "\xe0", 0x0000005d => "\x5a", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\xc0", 0x0000007c => "\xbb", 0x0000007d => "\xd0", 0x0000007e => "\xa1", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a0 => "\x41", 0x000000a1 => "\xaa", 0x000000a2 => "\xb0", 0x000000a3 => "\xb1", 0x000000a4 => "\x9f", 0x000000a5 => "\xb2", 0x000000a6 => "\x6a", 0x000000a7 => "\xb5", 0x000000a8 => "\xbd", 0x000000a9 => "\xb4", 0x000000aa => "\x9a", 0x000000ab => "\x8a", 0x000000ac => "\xba", 0x000000ad => "\xca", 0x000000ae => "\xaf", 0x000000af => "\xbc", 0x000000b0 => "\x90", 0x000000b1 => "\x8f", 0x000000b2 => "\xea", 0x000000b3 => "\xfa", 0x000000b4 => "\xbe", 0x000000b5 => "\xa0", 0x000000b6 => "\xb6", 0x000000b7 => "\xb3", 0x000000b8 => "\x9d", 0x000000b9 => "\xda", 0x000000ba => "\x9b", 0x000000bb => "\x8b", 0x000000bc => "\xb7", 0x000000bd => "\xb8", 0x000000be => "\xb9", 0x000000bf => "\xab", 0x000000c0 => "\x64", 0x000000c1 => "\x65", 0x000000c2 => "\x62", 0x000000c3 => "\x66", 0x000000c4 => "\x63", 0x000000c5 => "\x67", 0x000000c6 => "\x9e", 0x000000c7 => "\x68", 0x000000c8 => "\x74", 0x000000c9 => "\x71", 0x000000ca => "\x72", 0x000000cb => "\x73", 0x000000cc => "\x78", 0x000000cd => "\x75", 0x000000ce => "\x76", 0x000000cf => "\x77", 0x000000d0 => "\xac", 0x000000d1 => "\x69", 0x000000d2 => "\xed", 0x000000d3 => "\xee", 0x000000d4 => "\xeb", 0x000000d5 => "\xef", 0x000000d6 => "\xec", 0x000000d7 => "\xbf", 0x000000d8 => "\x80", 0x000000d9 => "\xfd", 0x000000da => "\xfe", 0x000000db => "\xfb", 0x000000dc => "\xfc", 0x000000dd => "\xad", 0x000000de => "\xae", 0x000000df => "\x59", 0x000000e0 => "\x44", 0x000000e1 => "\x45", 0x000000e2 => "\x42", 0x000000e3 => "\x46", 0x000000e4 => "\x43", 0x000000e5 => "\x47", 0x000000e6 => "\x9c", 0x000000e7 => "\x48", 0x000000e8 => "\x54", 0x000000e9 => "\x51", 0x000000ea => "\x52", 0x000000eb => "\x53", 0x000000ec => "\x58", 0x000000ed => "\x55", 0x000000ee => "\x56", 0x000000ef => "\x57", 0x000000f0 => "\x8c", 0x000000f1 => "\x49", 0x000000f2 => "\xcd", 0x000000f3 => "\xce", 0x000000f4 => "\xcb", 0x000000f5 => "\xcf", 0x000000f6 => "\xcc", 0x000000f7 => "\xe1", 0x000000f8 => "\x70", 0x000000f9 => "\xdd", 0x000000fa => "\xde", 0x000000fb => "\xdb", 0x000000fc => "\xdc", 0x000000fd => "\x8d", 0x000000fe => "\x8e", 0x000000ff => "\xdf", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM500 - Conversion routines for IBM500 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM500. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP500 alias 500 alias 500V1 alias EBCDIC-CP-BE alias EBCDIC-CP-CH Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 41 | 000000A0 | NO-BREAK SPACE 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE 47 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE 4A | 0000005B | LEFT SQUARE BRACKET 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE 59 | 000000DF | LATIN SMALL LETTER SHARP S (German) 5A | 0000005D | RIGHT SQUARE BRACKET 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE 67 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 6A | 000000A6 | BROKEN BAR 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 00000023 | NUMBER SIGN 7C | 00000040 | COMMERCIAL AT 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic) 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE 8E | 000000FE | LATIN SMALL LETTER THORN (Icelandic) 8F | 000000B1 | PLUS-MINUS SIGN 90 | 000000B0 | DEGREE SIGN 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R 9A | 000000AA | FEMININE ORDINAL INDICATOR 9B | 000000BA | MASCULINE ORDINAL INDICATOR 9C | 000000E6 | LATIN SMALL LETTER AE 9D | 000000B8 | CEDILLA 9E | 000000C6 | LATIN CAPITAL LETTER AE 9F | 000000A4 | CURRENCY SIGN A0 | 000000B5 | MICRO SIGN A1 | 0000007E | TILDE A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z AA | 000000A1 | INVERTED EXCLAMATION MARK AB | 000000BF | INVERTED QUESTION MARK AC | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic) AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE AE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic) AF | 000000AE | REGISTERED SIGN B0 | 000000A2 | CENT SIGN B1 | 000000A3 | POUND SIGN B2 | 000000A5 | YEN SIGN B3 | 000000B7 | MIDDLE DOT B4 | 000000A9 | COPYRIGHT SIGN B5 | 000000A7 | SECTION SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000BC | VULGAR FRACTION ONE QUARTER B8 | 000000BD | VULGAR FRACTION ONE HALF B9 | 000000BE | VULGAR FRACTION THREE QUARTERS BA | 000000AC | NOT SIGN BB | 0000007C | VERTICAL LINE BC | 000000AF | MACRON BD | 000000A8 | DIAERESIS BE | 000000B4 | ACUTE ACCENT BF | 000000D7 | MULTIPLICATION SIGN C0 | 0000007B | LEFT CURLY BRACKET C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I CA | 000000AD | SOFT HYPHEN CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX CC | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE D0 | 0000007D | RIGHT CURLY BRACKET D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R DA | 000000B9 | SUPERSCRIPT ONE DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX DC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS E0 | 0000005C | REVERSE SOLIDUS E1 | 000000F7 | DIVISION SIGN E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z EA | 000000B2 | SUPERSCRIPT TWO EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX EC | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FA | 000000B3 | SUPERSCRIPT THREE FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]'Y.Ҝ]]RecodeData/IBM424.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM424. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM424; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, 0x05d8, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, 0x05e0, 0x05e1, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfffd, 0x05ea, 0xfffd, 0xfffd, 0x00a0, 0xfffd, 0xfffd, 0xfffd, 0x21d4, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0xfffd, 0xfffd, 0xfffd, 0x00b8, 0xfffd, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x203e, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xd7\x90", "\xd7\x91", "\xd7\x92", "\xd7\x93", "\xd7\x94", "\xd7\x95", "\xd7\x96", "\xd7\x97", "\xd7\x98", "\xc2\xa2", "\x2e", "\x3c", "\x28", "\x2b", "\x7c", "\x26", "\xd7\x99", "\xd7\x9a", "\xd7\x9b", "\xd7\x9c", "\xd7\x9d", "\xd7\x9e", "\xd7\x9f", "\xd7\xa0", "\xd7\xa1", "\x21", "\x24", "\x2a", "\x29", "\x3b", "\xc2\xac", "\x2d", "\x2f", "\xd7\xa2", "\xd7\xa3", "\xd7\xa4", "\xd7\xa5", "\xd7\xa6", "\xd7\xa7", "\xd7\xa8", "\xd7\xa9", "\xc2\xa6", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xd7\xaa", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa0", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xe2\x87\x94", "\x60", "\x3a", "\x23", "\x40", "\x27", "\x3d", "\x22", "\xef\xbf\xbd", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xc2\xab", "\xc2\xbb", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xb0", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xb8", "\xef\xbf\xbd", "\xc2\xa4", "\xc2\xb5", "\x7e", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xae", "\x5e", "\xc2\xa3", "\xc2\xa5", "\xc2\xb7", "\xc2\xa9", "\xc2\xa7", "\xc2\xb6", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\x5b", "\x5d", "\xe2\x80\xbe", "\xc2\xa8", "\xc2\xb4", "\xc3\x97", "\x7b", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xc2\xad", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x7d", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xc2\xb9", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x5c", "\xc3\xb7", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xc2\xb2", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xc2\xb3", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x5a", 0x00000022 => "\x7f", 0x00000023 => "\x7b", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\x7c", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\xba", 0x0000005c => "\xe0", 0x0000005d => "\xbb", 0x0000005e => "\xb0", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\xc0", 0x0000007c => "\x4f", 0x0000007d => "\xd0", 0x0000007e => "\xa1", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a0 => "\x74", 0x000000a2 => "\x4a", 0x000000a3 => "\xb1", 0x000000a4 => "\x9f", 0x000000a5 => "\xb2", 0x000000a6 => "\x6a", 0x000000a7 => "\xb5", 0x000000a8 => "\xbd", 0x000000a9 => "\xb4", 0x000000ab => "\x8a", 0x000000ac => "\x5f", 0x000000ad => "\xca", 0x000000ae => "\xaf", 0x000000b0 => "\x90", 0x000000b2 => "\xea", 0x000000b3 => "\xfa", 0x000000b4 => "\xbe", 0x000000b5 => "\xa0", 0x000000b6 => "\xb6", 0x000000b7 => "\xb3", 0x000000b8 => "\x9d", 0x000000b9 => "\xda", 0x000000bb => "\x8b", 0x000000bc => "\xb7", 0x000000bd => "\xb8", 0x000000be => "\xb9", 0x000000d7 => "\xbf", 0x000000f7 => "\xe1", 0x000005d0 => "\x41", 0x000005d1 => "\x42", 0x000005d2 => "\x43", 0x000005d3 => "\x44", 0x000005d4 => "\x45", 0x000005d5 => "\x46", 0x000005d6 => "\x47", 0x000005d7 => "\x48", 0x000005d8 => "\x49", 0x000005d9 => "\x51", 0x000005da => "\x52", 0x000005db => "\x53", 0x000005dc => "\x54", 0x000005dd => "\x55", 0x000005de => "\x56", 0x000005df => "\x57", 0x000005e0 => "\x58", 0x000005e1 => "\x59", 0x000005e2 => "\x62", 0x000005e3 => "\x63", 0x000005e4 => "\x64", 0x000005e5 => "\x65", 0x000005e6 => "\x66", 0x000005e7 => "\x67", 0x000005e8 => "\x68", 0x000005e9 => "\x69", 0x000005ea => "\x71", 0x0000203e => "\xbc", 0x000021d4 => "\x78", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM424 - Conversion routines for IBM424 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM424. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP424 alias EBCDIC-CP-HE Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 41 | 000005D0 | HEBREW LETTER ALEF 42 | 000005D1 | HEBREW LETTER BET 43 | 000005D2 | HEBREW LETTER GIMEL 44 | 000005D3 | HEBREW LETTER DALET 45 | 000005D4 | HEBREW LETTER HE 46 | 000005D5 | HEBREW LETTER VAV 47 | 000005D6 | HEBREW LETTER ZAYIN 48 | 000005D7 | HEBREW LETTER HET 49 | 000005D8 | HEBREW LETTER TET 4A | 000000A2 | CENT SIGN 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 0000007C | VERTICAL LINE 50 | 00000026 | AMPERSAND 51 | 000005D9 | HEBREW LETTER YOD 52 | 000005DA | HEBREW LETTER FINAL KAF 53 | 000005DB | HEBREW LETTER KAF 54 | 000005DC | HEBREW LETTER LAMED 55 | 000005DD | HEBREW LETTER FINAL MEM 56 | 000005DE | HEBREW LETTER MEM 57 | 000005DF | HEBREW LETTER FINAL NUN 58 | 000005E0 | HEBREW LETTER NUN 59 | 000005E1 | HEBREW LETTER SAMEKH 5A | 00000021 | EXCLAMATION MARK 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 000000AC | NOT SIGN 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 62 | 000005E2 | HEBREW LETTER AYIN 63 | 000005E3 | HEBREW LETTER FINAL PE 64 | 000005E4 | HEBREW LETTER PE 65 | 000005E5 | HEBREW LETTER FINAL TSADI 66 | 000005E6 | HEBREW LETTER TSADI 67 | 000005E7 | HEBREW LETTER QOF 68 | 000005E8 | HEBREW LETTER RESH 69 | 000005E9 | HEBREW LETTER SHIN 6A | 000000A6 | BROKEN BAR 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 71 | 000005EA | HEBREW LETTER TAV 74 | 000000A0 | NO-BREAK SPACE 78 | 000021D4 | LEFT RIGHT DOUBLE ARROW 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 00000023 | NUMBER SIGN 7C | 00000040 | COMMERCIAL AT 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 90 | 000000B0 | DEGREE SIGN 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R 9D | 000000B8 | CEDILLA 9F | 000000A4 | CURRENCY SIGN A0 | 000000B5 | MICRO SIGN A1 | 0000007E | TILDE A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z AF | 000000AE | REGISTERED SIGN B0 | 0000005E | CIRCUMFLEX ACCENT B1 | 000000A3 | POUND SIGN B2 | 000000A5 | YEN SIGN B3 | 000000B7 | MIDDLE DOT B4 | 000000A9 | COPYRIGHT SIGN B5 | 000000A7 | SECTION SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000BC | VULGAR FRACTION ONE QUARTER B8 | 000000BD | VULGAR FRACTION ONE HALF B9 | 000000BE | VULGAR FRACTION THREE QUARTERS BA | 0000005B | LEFT SQUARE BRACKET BB | 0000005D | RIGHT SQUARE BRACKET BC | 0000203E | OVERLINE BD | 000000A8 | DIAERESIS BE | 000000B4 | ACUTE ACCENT BF | 000000D7 | MULTIPLICATION SIGN C0 | 0000007B | LEFT CURLY BRACKET C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I CA | 000000AD | SOFT HYPHEN D0 | 0000007D | RIGHT CURLY BRACKET D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R DA | 000000B9 | SUPERSCRIPT ONE E0 | 0000005C | REVERSE SOLIDUS E1 | 000000F7 | DIVISION SIGN E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z EA | 000000B2 | SUPERSCRIPT TWO F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FA | 000000B3 | SUPERSCRIPT THREE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]jjRecodeData/ISO_8859_5.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ISO-8859-5. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ISO_8859_5; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, 0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, 0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x00a7, 0x045e, 0x045f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\xc2\x85", "\xc2\x86", "\xc2\x87", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\xc2\x8d", "\xc2\x8e", "\xc2\x8f", "\xc2\x90", "\xc2\x91", "\xc2\x92", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\xc2\x97", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\xc2\x9c", "\xc2\x9d", "\xc2\x9e", "\xc2\x9f", "\xc2\xa0", "\xd0\x81", "\xd0\x82", "\xd0\x83", "\xd0\x84", "\xd0\x85", "\xd0\x86", "\xd0\x87", "\xd0\x88", "\xd0\x89", "\xd0\x8a", "\xd0\x8b", "\xd0\x8c", "\xc2\xad", "\xd0\x8e", "\xd0\x8f", "\xd0\x90", "\xd0\x91", "\xd0\x92", "\xd0\x93", "\xd0\x94", "\xd0\x95", "\xd0\x96", "\xd0\x97", "\xd0\x98", "\xd0\x99", "\xd0\x9a", "\xd0\x9b", "\xd0\x9c", "\xd0\x9d", "\xd0\x9e", "\xd0\x9f", "\xd0\xa0", "\xd0\xa1", "\xd0\xa2", "\xd0\xa3", "\xd0\xa4", "\xd0\xa5", "\xd0\xa6", "\xd0\xa7", "\xd0\xa8", "\xd0\xa9", "\xd0\xaa", "\xd0\xab", "\xd0\xac", "\xd0\xad", "\xd0\xae", "\xd0\xaf", "\xd0\xb0", "\xd0\xb1", "\xd0\xb2", "\xd0\xb3", "\xd0\xb4", "\xd0\xb5", "\xd0\xb6", "\xd0\xb7", "\xd0\xb8", "\xd0\xb9", "\xd0\xba", "\xd0\xbb", "\xd0\xbc", "\xd0\xbd", "\xd0\xbe", "\xd0\xbf", "\xd1\x80", "\xd1\x81", "\xd1\x82", "\xd1\x83", "\xd1\x84", "\xd1\x85", "\xd1\x86", "\xd1\x87", "\xd1\x88", "\xd1\x89", "\xd1\x8a", "\xd1\x8b", "\xd1\x8c", "\xd1\x8d", "\xd1\x8e", "\xd1\x8f", "\xe2\x84\x96", "\xd1\x91", "\xd1\x92", "\xd1\x93", "\xd1\x94", "\xd1\x95", "\xd1\x96", "\xd1\x97", "\xd1\x98", "\xd1\x99", "\xd1\x9a", "\xd1\x9b", "\xd1\x9c", "\xc2\xa7", "\xd1\x9e", "\xd1\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000080 => "\x80", 0x00000081 => "\x81", 0x00000082 => "\x82", 0x00000083 => "\x83", 0x00000084 => "\x84", 0x00000085 => "\x85", 0x00000086 => "\x86", 0x00000087 => "\x87", 0x00000088 => "\x88", 0x00000089 => "\x89", 0x0000008a => "\x8a", 0x0000008b => "\x8b", 0x0000008c => "\x8c", 0x0000008d => "\x8d", 0x0000008e => "\x8e", 0x0000008f => "\x8f", 0x00000090 => "\x90", 0x00000091 => "\x91", 0x00000092 => "\x92", 0x00000093 => "\x93", 0x00000094 => "\x94", 0x00000095 => "\x95", 0x00000096 => "\x96", 0x00000097 => "\x97", 0x00000098 => "\x98", 0x00000099 => "\x99", 0x0000009a => "\x9a", 0x0000009b => "\x9b", 0x0000009c => "\x9c", 0x0000009d => "\x9d", 0x0000009e => "\x9e", 0x0000009f => "\x9f", 0x000000a0 => "\xa0", 0x000000a7 => "\xfd", 0x000000ad => "\xad", 0x00000401 => "\xa1", 0x00000402 => "\xa2", 0x00000403 => "\xa3", 0x00000404 => "\xa4", 0x00000405 => "\xa5", 0x00000406 => "\xa6", 0x00000407 => "\xa7", 0x00000408 => "\xa8", 0x00000409 => "\xa9", 0x0000040a => "\xaa", 0x0000040b => "\xab", 0x0000040c => "\xac", 0x0000040e => "\xae", 0x0000040f => "\xaf", 0x00000410 => "\xb0", 0x00000411 => "\xb1", 0x00000412 => "\xb2", 0x00000413 => "\xb3", 0x00000414 => "\xb4", 0x00000415 => "\xb5", 0x00000416 => "\xb6", 0x00000417 => "\xb7", 0x00000418 => "\xb8", 0x00000419 => "\xb9", 0x0000041a => "\xba", 0x0000041b => "\xbb", 0x0000041c => "\xbc", 0x0000041d => "\xbd", 0x0000041e => "\xbe", 0x0000041f => "\xbf", 0x00000420 => "\xc0", 0x00000421 => "\xc1", 0x00000422 => "\xc2", 0x00000423 => "\xc3", 0x00000424 => "\xc4", 0x00000425 => "\xc5", 0x00000426 => "\xc6", 0x00000427 => "\xc7", 0x00000428 => "\xc8", 0x00000429 => "\xc9", 0x0000042a => "\xca", 0x0000042b => "\xcb", 0x0000042c => "\xcc", 0x0000042d => "\xcd", 0x0000042e => "\xce", 0x0000042f => "\xcf", 0x00000430 => "\xd0", 0x00000431 => "\xd1", 0x00000432 => "\xd2", 0x00000433 => "\xd3", 0x00000434 => "\xd4", 0x00000435 => "\xd5", 0x00000436 => "\xd6", 0x00000437 => "\xd7", 0x00000438 => "\xd8", 0x00000439 => "\xd9", 0x0000043a => "\xda", 0x0000043b => "\xdb", 0x0000043c => "\xdc", 0x0000043d => "\xdd", 0x0000043e => "\xde", 0x0000043f => "\xdf", 0x00000440 => "\xe0", 0x00000441 => "\xe1", 0x00000442 => "\xe2", 0x00000443 => "\xe3", 0x00000444 => "\xe4", 0x00000445 => "\xe5", 0x00000446 => "\xe6", 0x00000447 => "\xe7", 0x00000448 => "\xe8", 0x00000449 => "\xe9", 0x0000044a => "\xea", 0x0000044b => "\xeb", 0x0000044c => "\xec", 0x0000044d => "\xed", 0x0000044e => "\xee", 0x0000044f => "\xef", 0x00000451 => "\xf1", 0x00000452 => "\xf2", 0x00000453 => "\xf3", 0x00000454 => "\xf4", 0x00000455 => "\xf5", 0x00000456 => "\xf6", 0x00000457 => "\xf7", 0x00000458 => "\xf8", 0x00000459 => "\xf9", 0x0000045a => "\xfa", 0x0000045b => "\xfb", 0x0000045c => "\xfc", 0x0000045e => "\xfe", 0x0000045f => "\xff", 0x00002116 => "\xf0", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ISO_8859_5 - Conversion routines for ISO-8859-5 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for ISO-8859-5. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: ECMA registry alias ISO-IR-144 alias ISO_8859-5:1988 alias ISO_8859-5 alias CYRILLIC Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000080 | PADDING CHARACTER (PAD) 81 | 00000081 | HIGH OCTET PRESET (HOP) 82 | 00000082 | BREAK PERMITTED HERE (BPH) 83 | 00000083 | NO BREAK HERE (NBH) 84 | 00000084 | INDEX (IND) 85 | 00000085 | NEXT LINE (NEL) 86 | 00000086 | START OF SELECTED AREA (SSA) 87 | 00000087 | END OF SELECTED AREA (ESA) 88 | 00000088 | CHARACTER TABULATION SET (HTS) 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 8A | 0000008A | LINE TABULATION SET (VTS) 8B | 0000008B | PARTIAL LINE FORWARD (PLD) 8C | 0000008C | PARTIAL LINE BACKWARD (PLU) 8D | 0000008D | REVERSE LINE FEED (RI) 8E | 0000008E | SINGLE-SHIFT TWO (SS2) 8F | 0000008F | SINGLE-SHIFT THREE (SS3) 90 | 00000090 | DEVICE CONTROL STRING (DCS) 91 | 00000091 | PRIVATE USE ONE (PU1) 92 | 00000092 | PRIVATE USE TWO (PU2) 93 | 00000093 | SET TRANSMIT STATE (STS) 94 | 00000094 | CANCEL CHARACTER (CCH) 95 | 00000095 | MESSAGE WAITING (MW) 96 | 00000096 | START OF GUARDED AREA (SPA) 97 | 00000097 | END OF GUARDED AREA (EPA) 98 | 00000098 | START OF STRING (SOS) 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 9C | 0000009C | STRING TERMINATOR (ST) 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC) 9E | 0000009E | PRIVACY MESSAGE (PM) 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC) A0 | 000000A0 | NO-BREAK SPACE A1 | 00000401 | CYRILLIC CAPITAL LETTER IO A2 | 00000402 | CYRILLIC CAPITAL LETTER DJE (Serbocroatian) A3 | 00000403 | CYRILLIC CAPITAL LETTER GJE A4 | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE A5 | 00000405 | CYRILLIC CAPITAL LETTER DZE A6 | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I A7 | 00000407 | CYRILLIC CAPITAL LETTER YI (Ukrainian) A8 | 00000408 | CYRILLIC CAPITAL LETTER JE A9 | 00000409 | CYRILLIC CAPITAL LETTER LJE AA | 0000040A | CYRILLIC CAPITAL LETTER NJE AB | 0000040B | CYRILLIC CAPITAL LETTER TSHE (Serbocroatian) AC | 0000040C | CYRILLIC CAPITAL LETTER KJE AD | 000000AD | SOFT HYPHEN AE | 0000040E | CYRILLIC CAPITAL LETTER SHORT U (Byelorussian) AF | 0000040F | CYRILLIC CAPITAL LETTER DZHE B0 | 00000410 | CYRILLIC CAPITAL LETTER A B1 | 00000411 | CYRILLIC CAPITAL LETTER BE B2 | 00000412 | CYRILLIC CAPITAL LETTER VE B3 | 00000413 | CYRILLIC CAPITAL LETTER GHE B4 | 00000414 | CYRILLIC CAPITAL LETTER DE B5 | 00000415 | CYRILLIC CAPITAL LETTER IE B6 | 00000416 | CYRILLIC CAPITAL LETTER ZHE B7 | 00000417 | CYRILLIC CAPITAL LETTER ZE B8 | 00000418 | CYRILLIC CAPITAL LETTER I B9 | 00000419 | CYRILLIC CAPITAL LETTER SHORT I BA | 0000041A | CYRILLIC CAPITAL LETTER KA BB | 0000041B | CYRILLIC CAPITAL LETTER EL BC | 0000041C | CYRILLIC CAPITAL LETTER EM BD | 0000041D | CYRILLIC CAPITAL LETTER EN BE | 0000041E | CYRILLIC CAPITAL LETTER O BF | 0000041F | CYRILLIC CAPITAL LETTER PE C0 | 00000420 | CYRILLIC CAPITAL LETTER ER C1 | 00000421 | CYRILLIC CAPITAL LETTER ES C2 | 00000422 | CYRILLIC CAPITAL LETTER TE C3 | 00000423 | CYRILLIC CAPITAL LETTER U C4 | 00000424 | CYRILLIC CAPITAL LETTER EF C5 | 00000425 | CYRILLIC CAPITAL LETTER HA C6 | 00000426 | CYRILLIC CAPITAL LETTER TSE C7 | 00000427 | CYRILLIC CAPITAL LETTER CHE C8 | 00000428 | CYRILLIC CAPITAL LETTER SHA C9 | 00000429 | CYRILLIC CAPITAL LETTER SHCHA CA | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN CB | 0000042B | CYRILLIC CAPITAL LETTER YERU CC | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN CD | 0000042D | CYRILLIC CAPITAL LETTER E CE | 0000042E | CYRILLIC CAPITAL LETTER YU CF | 0000042F | CYRILLIC CAPITAL LETTER YA D0 | 00000430 | CYRILLIC SMALL LETTER A D1 | 00000431 | CYRILLIC SMALL LETTER BE D2 | 00000432 | CYRILLIC SMALL LETTER VE D3 | 00000433 | CYRILLIC SMALL LETTER GHE D4 | 00000434 | CYRILLIC SMALL LETTER DE D5 | 00000435 | CYRILLIC SMALL LETTER IE D6 | 00000436 | CYRILLIC SMALL LETTER ZHE D7 | 00000437 | CYRILLIC SMALL LETTER ZE D8 | 00000438 | CYRILLIC SMALL LETTER I D9 | 00000439 | CYRILLIC SMALL LETTER SHORT I DA | 0000043A | CYRILLIC SMALL LETTER KA DB | 0000043B | CYRILLIC SMALL LETTER EL DC | 0000043C | CYRILLIC SMALL LETTER EM DD | 0000043D | CYRILLIC SMALL LETTER EN DE | 0000043E | CYRILLIC SMALL LETTER O DF | 0000043F | CYRILLIC SMALL LETTER PE E0 | 00000440 | CYRILLIC SMALL LETTER ER E1 | 00000441 | CYRILLIC SMALL LETTER ES E2 | 00000442 | CYRILLIC SMALL LETTER TE E3 | 00000443 | CYRILLIC SMALL LETTER U E4 | 00000444 | CYRILLIC SMALL LETTER EF E5 | 00000445 | CYRILLIC SMALL LETTER HA E6 | 00000446 | CYRILLIC SMALL LETTER TSE E7 | 00000447 | CYRILLIC SMALL LETTER CHE E8 | 00000448 | CYRILLIC SMALL LETTER SHA E9 | 00000449 | CYRILLIC SMALL LETTER SHCHA EA | 0000044A | CYRILLIC SMALL LETTER HARD SIGN EB | 0000044B | CYRILLIC SMALL LETTER YERU EC | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN ED | 0000044D | CYRILLIC SMALL LETTER E EE | 0000044E | CYRILLIC SMALL LETTER YU EF | 0000044F | CYRILLIC SMALL LETTER YA F0 | 00002116 | NUMERO SIGN F1 | 00000451 | CYRILLIC SMALL LETTER IO F2 | 00000452 | CYRILLIC SMALL LETTER DJE (Serbocroatian) F3 | 00000453 | CYRILLIC SMALL LETTER GJE F4 | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE F5 | 00000455 | CYRILLIC SMALL LETTER DZE F6 | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I F7 | 00000457 | CYRILLIC SMALL LETTER YI (Ukrainian) F8 | 00000458 | CYRILLIC SMALL LETTER JE F9 | 00000459 | CYRILLIC SMALL LETTER LJE FA | 0000045A | CYRILLIC SMALL LETTER NJE FB | 0000045B | CYRILLIC SMALL LETTER TSHE (Serbocroatian) FC | 0000045C | CYRILLIC SMALL LETTER KJE FD | 000000A7 | SECTION SIGN FE | 0000045E | CYRILLIC SMALL LETTER SHORT U (Byelorussian) FF | 0000045F | CYRILLIC SMALL LETTER DZHE =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]jjRecodeData/IBM273.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM273. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM273; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00c4, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x007e, 0x00dc, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x005b, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00df, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x203e, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00fc, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007d, 0x00f9, 0x00fa, 0x00ff, 0x00d6, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005c, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x005d, 0x00d9, 0x00da, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xc2\xa0", "\xc3\xa2", "\x7b", "\xc3\xa0", "\xc3\xa1", "\xc3\xa3", "\xc3\xa5", "\xc3\xa7", "\xc3\xb1", "\xc3\x84", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xa8", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc3\xac", "\x7e", "\xc3\x9c", "\x24", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xc3\x82", "\x5b", "\xc3\x80", "\xc3\x81", "\xc3\x83", "\xc3\x85", "\xc3\x87", "\xc3\x91", "\xc3\xb6", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xc3\xb8", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x88", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x8c", "\x60", "\x3a", "\x23", "\xc2\xa7", "\x27", "\x3d", "\x22", "\xc3\x98", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xc2\xab", "\xc2\xbb", "\xc3\xb0", "\xc3\xbd", "\xc3\xbe", "\xc2\xb1", "\xc2\xb0", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xc2\xaa", "\xc2\xba", "\xc3\xa6", "\xc2\xb8", "\xc3\x86", "\xc2\xa4", "\xc2\xb5", "\xc3\x9f", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xc2\xa1", "\xc2\xbf", "\xc3\x90", "\xc3\x9d", "\xc3\x9e", "\xc2\xae", "\xc2\xa2", "\xc2\xa3", "\xc2\xa5", "\xc2\xb7", "\xc2\xa9", "\x40", "\xc2\xb6", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\xc2\xac", "\x7c", "\xe2\x80\xbe", "\xc2\xa8", "\xc2\xb4", "\xc3\x97", "\xc3\xa4", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xc2\xad", "\xc3\xb4", "\xc2\xa6", "\xc3\xb2", "\xc3\xb3", "\xc3\xb5", "\xc3\xbc", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xc2\xb9", "\xc3\xbb", "\x7d", "\xc3\xb9", "\xc3\xba", "\xc3\xbf", "\xc3\x96", "\xc3\xb7", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xc2\xb2", "\xc3\x94", "\x5c", "\xc3\x92", "\xc3\x93", "\xc3\x95", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xc2\xb3", "\xc3\x9b", "\x5d", "\xc3\x99", "\xc3\x9a", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000023 => "\x7b", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\xb5", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\x63", 0x0000005c => "\xec", 0x0000005d => "\xfc", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\x43", 0x0000007c => "\xbb", 0x0000007d => "\xdc", 0x0000007e => "\x59", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a0 => "\x41", 0x000000a1 => "\xaa", 0x000000a2 => "\xb0", 0x000000a3 => "\xb1", 0x000000a4 => "\x9f", 0x000000a5 => "\xb2", 0x000000a6 => "\xcc", 0x000000a7 => "\x7c", 0x000000a8 => "\xbd", 0x000000a9 => "\xb4", 0x000000aa => "\x9a", 0x000000ab => "\x8a", 0x000000ac => "\xba", 0x000000ad => "\xca", 0x000000ae => "\xaf", 0x000000b0 => "\x90", 0x000000b1 => "\x8f", 0x000000b2 => "\xea", 0x000000b3 => "\xfa", 0x000000b4 => "\xbe", 0x000000b5 => "\xa0", 0x000000b6 => "\xb6", 0x000000b7 => "\xb3", 0x000000b8 => "\x9d", 0x000000b9 => "\xda", 0x000000ba => "\x9b", 0x000000bb => "\x8b", 0x000000bc => "\xb7", 0x000000bd => "\xb8", 0x000000be => "\xb9", 0x000000bf => "\xab", 0x000000c0 => "\x64", 0x000000c1 => "\x65", 0x000000c2 => "\x62", 0x000000c3 => "\x66", 0x000000c4 => "\x4a", 0x000000c5 => "\x67", 0x000000c6 => "\x9e", 0x000000c7 => "\x68", 0x000000c8 => "\x74", 0x000000c9 => "\x71", 0x000000ca => "\x72", 0x000000cb => "\x73", 0x000000cc => "\x78", 0x000000cd => "\x75", 0x000000ce => "\x76", 0x000000cf => "\x77", 0x000000d0 => "\xac", 0x000000d1 => "\x69", 0x000000d2 => "\xed", 0x000000d3 => "\xee", 0x000000d4 => "\xeb", 0x000000d5 => "\xef", 0x000000d6 => "\xe0", 0x000000d7 => "\xbf", 0x000000d8 => "\x80", 0x000000d9 => "\xfd", 0x000000da => "\xfe", 0x000000db => "\xfb", 0x000000dc => "\x5a", 0x000000dd => "\xad", 0x000000de => "\xae", 0x000000df => "\xa1", 0x000000e0 => "\x44", 0x000000e1 => "\x45", 0x000000e2 => "\x42", 0x000000e3 => "\x46", 0x000000e4 => "\xc0", 0x000000e5 => "\x47", 0x000000e6 => "\x9c", 0x000000e7 => "\x48", 0x000000e8 => "\x54", 0x000000e9 => "\x51", 0x000000ea => "\x52", 0x000000eb => "\x53", 0x000000ec => "\x58", 0x000000ed => "\x55", 0x000000ee => "\x56", 0x000000ef => "\x57", 0x000000f0 => "\x8c", 0x000000f1 => "\x49", 0x000000f2 => "\xcd", 0x000000f3 => "\xce", 0x000000f4 => "\xcb", 0x000000f5 => "\xcf", 0x000000f6 => "\x6a", 0x000000f7 => "\xe1", 0x000000f8 => "\x70", 0x000000f9 => "\xdd", 0x000000fa => "\xde", 0x000000fb => "\xdb", 0x000000fc => "\xd0", 0x000000fd => "\x8d", 0x000000fe => "\x8e", 0x000000ff => "\xdf", 0x0000203e => "\xbc", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM273 - Conversion routines for IBM273 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM273. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP273 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 41 | 000000A0 | NO-BREAK SPACE 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 43 | 0000007B | LEFT CURLY BRACKET 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE 47 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE 4A | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE 59 | 0000007E | TILDE 5A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX 63 | 0000005B | LEFT SQUARE BRACKET 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE 67 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 6A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 00000023 | NUMBER SIGN 7C | 000000A7 | SECTION SIGN 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 8C | 000000F0 | LATIN SMALL LETTER ETH (Icelandic) 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE 8E | 000000FE | LATIN SMALL LETTER THORN (Icelandic) 8F | 000000B1 | PLUS-MINUS SIGN 90 | 000000B0 | DEGREE SIGN 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R 9A | 000000AA | FEMININE ORDINAL INDICATOR 9B | 000000BA | MASCULINE ORDINAL INDICATOR 9C | 000000E6 | LATIN SMALL LETTER AE 9D | 000000B8 | CEDILLA 9E | 000000C6 | LATIN CAPITAL LETTER AE 9F | 000000A4 | CURRENCY SIGN A0 | 000000B5 | MICRO SIGN A1 | 000000DF | LATIN SMALL LETTER SHARP S (German) A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z AA | 000000A1 | INVERTED EXCLAMATION MARK AB | 000000BF | INVERTED QUESTION MARK AC | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic) AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE AE | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic) AF | 000000AE | REGISTERED SIGN B0 | 000000A2 | CENT SIGN B1 | 000000A3 | POUND SIGN B2 | 000000A5 | YEN SIGN B3 | 000000B7 | MIDDLE DOT B4 | 000000A9 | COPYRIGHT SIGN B5 | 00000040 | COMMERCIAL AT B6 | 000000B6 | PILCROW SIGN B7 | 000000BC | VULGAR FRACTION ONE QUARTER B8 | 000000BD | VULGAR FRACTION ONE HALF B9 | 000000BE | VULGAR FRACTION THREE QUARTERS BA | 000000AC | NOT SIGN BB | 0000007C | VERTICAL LINE BC | 0000203E | OVERLINE BD | 000000A8 | DIAERESIS BE | 000000B4 | ACUTE ACCENT BF | 000000D7 | MULTIPLICATION SIGN C0 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I CA | 000000AD | SOFT HYPHEN CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX CC | 000000A6 | BROKEN BAR CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE D0 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R DA | 000000B9 | SUPERSCRIPT ONE DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX DC | 0000007D | RIGHT CURLY BRACKET DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS E0 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS E1 | 000000F7 | DIVISION SIGN E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z EA | 000000B2 | SUPERSCRIPT TWO EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX EC | 0000005C | REVERSE SOLIDUS ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FA | 000000B3 | SUPERSCRIPT THREE FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX FC | 0000005D | RIGHT SQUARE BRACKET FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]̕ l lRecodeData/KOI8_R.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for KOI8-R. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::KOI8_R; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524, 0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590, 0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248, 0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7, 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556, 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e, 0x255f, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x00a9, 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xe2\x94\x80", "\xe2\x94\x82", "\xe2\x94\x8c", "\xe2\x94\x90", "\xe2\x94\x94", "\xe2\x94\x98", "\xe2\x94\x9c", "\xe2\x94\xa4", "\xe2\x94\xac", "\xe2\x94\xb4", "\xe2\x94\xbc", "\xe2\x96\x80", "\xe2\x96\x84", "\xe2\x96\x88", "\xe2\x96\x8c", "\xe2\x96\x90", "\xe2\x96\x91", "\xe2\x96\x92", "\xe2\x96\x93", "\xe2\x8c\xa0", "\xe2\x96\xa0", "\xe2\x88\x99", "\xe2\x88\x9a", "\xe2\x89\x88", "\xe2\x89\xa4", "\xe2\x89\xa5", "\xc2\xa0", "\xe2\x8c\xa1", "\xc2\xb0", "\xc2\xb2", "\xc2\xb7", "\xc3\xb7", "\xe2\x95\x90", "\xe2\x95\x91", "\xe2\x95\x92", "\xd1\x91", "\xe2\x95\x93", "\xe2\x95\x94", "\xe2\x95\x95", "\xe2\x95\x96", "\xe2\x95\x97", "\xe2\x95\x98", "\xe2\x95\x99", "\xe2\x95\x9a", "\xe2\x95\x9b", "\xe2\x95\x9c", "\xe2\x95\x9d", "\xe2\x95\x9e", "\xe2\x95\x9f", "\xe2\x95\xa0", "\xe2\x95\xa1", "\xd0\x81", "\xe2\x95\xa2", "\xe2\x95\xa3", "\xe2\x95\xa4", "\xe2\x95\xa5", "\xe2\x95\xa6", "\xe2\x95\xa7", "\xe2\x95\xa8", "\xe2\x95\xa9", "\xe2\x95\xaa", "\xe2\x95\xab", "\xe2\x95\xac", "\xc2\xa9", "\xd1\x8e", "\xd0\xb0", "\xd0\xb1", "\xd1\x86", "\xd0\xb4", "\xd0\xb5", "\xd1\x84", "\xd0\xb3", "\xd1\x85", "\xd0\xb8", "\xd0\xb9", "\xd0\xba", "\xd0\xbb", "\xd0\xbc", "\xd0\xbd", "\xd0\xbe", "\xd0\xbf", "\xd1\x8f", "\xd1\x80", "\xd1\x81", "\xd1\x82", "\xd1\x83", "\xd0\xb6", "\xd0\xb2", "\xd1\x8c", "\xd1\x8b", "\xd0\xb7", "\xd1\x88", "\xd1\x8d", "\xd1\x89", "\xd1\x87", "\xd1\x8a", "\xd0\xae", "\xd0\x90", "\xd0\x91", "\xd0\xa6", "\xd0\x94", "\xd0\x95", "\xd0\xa4", "\xd0\x93", "\xd0\xa5", "\xd0\x98", "\xd0\x99", "\xd0\x9a", "\xd0\x9b", "\xd0\x9c", "\xd0\x9d", "\xd0\x9e", "\xd0\x9f", "\xd0\xaf", "\xd0\xa0", "\xd0\xa1", "\xd0\xa2", "\xd0\xa3", "\xd0\x96", "\xd0\x92", "\xd0\xac", "\xd0\xab", "\xd0\x97", "\xd0\xa8", "\xd0\xad", "\xd0\xa9", "\xd0\xa7", "\xd0\xaa", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\x9a", 0x000000a9 => "\xbf", 0x000000b0 => "\x9c", 0x000000b2 => "\x9d", 0x000000b7 => "\x9e", 0x000000f7 => "\x9f", 0x00000401 => "\xb3", 0x00000410 => "\xe1", 0x00000411 => "\xe2", 0x00000412 => "\xf7", 0x00000413 => "\xe7", 0x00000414 => "\xe4", 0x00000415 => "\xe5", 0x00000416 => "\xf6", 0x00000417 => "\xfa", 0x00000418 => "\xe9", 0x00000419 => "\xea", 0x0000041a => "\xeb", 0x0000041b => "\xec", 0x0000041c => "\xed", 0x0000041d => "\xee", 0x0000041e => "\xef", 0x0000041f => "\xf0", 0x00000420 => "\xf2", 0x00000421 => "\xf3", 0x00000422 => "\xf4", 0x00000423 => "\xf5", 0x00000424 => "\xe6", 0x00000425 => "\xe8", 0x00000426 => "\xe3", 0x00000427 => "\xfe", 0x00000428 => "\xfb", 0x00000429 => "\xfd", 0x0000042a => "\xff", 0x0000042b => "\xf9", 0x0000042c => "\xf8", 0x0000042d => "\xfc", 0x0000042e => "\xe0", 0x0000042f => "\xf1", 0x00000430 => "\xc1", 0x00000431 => "\xc2", 0x00000432 => "\xd7", 0x00000433 => "\xc7", 0x00000434 => "\xc4", 0x00000435 => "\xc5", 0x00000436 => "\xd6", 0x00000437 => "\xda", 0x00000438 => "\xc9", 0x00000439 => "\xca", 0x0000043a => "\xcb", 0x0000043b => "\xcc", 0x0000043c => "\xcd", 0x0000043d => "\xce", 0x0000043e => "\xcf", 0x0000043f => "\xd0", 0x00000440 => "\xd2", 0x00000441 => "\xd3", 0x00000442 => "\xd4", 0x00000443 => "\xd5", 0x00000444 => "\xc6", 0x00000445 => "\xc8", 0x00000446 => "\xc3", 0x00000447 => "\xde", 0x00000448 => "\xdb", 0x00000449 => "\xdd", 0x0000044a => "\xdf", 0x0000044b => "\xd9", 0x0000044c => "\xd8", 0x0000044d => "\xdc", 0x0000044e => "\xc0", 0x0000044f => "\xd1", 0x00000451 => "\xa3", 0x00002219 => "\x95", 0x0000221a => "\x96", 0x00002248 => "\x97", 0x00002264 => "\x98", 0x00002265 => "\x99", 0x00002320 => "\x93", 0x00002321 => "\x9b", 0x00002500 => "\x80", 0x00002502 => "\x81", 0x0000250c => "\x82", 0x00002510 => "\x83", 0x00002514 => "\x84", 0x00002518 => "\x85", 0x0000251c => "\x86", 0x00002524 => "\x87", 0x0000252c => "\x88", 0x00002534 => "\x89", 0x0000253c => "\x8a", 0x00002550 => "\xa0", 0x00002551 => "\xa1", 0x00002552 => "\xa2", 0x00002553 => "\xa4", 0x00002554 => "\xa5", 0x00002555 => "\xa6", 0x00002556 => "\xa7", 0x00002557 => "\xa8", 0x00002558 => "\xa9", 0x00002559 => "\xaa", 0x0000255a => "\xab", 0x0000255b => "\xac", 0x0000255c => "\xad", 0x0000255d => "\xae", 0x0000255e => "\xaf", 0x0000255f => "\xb0", 0x00002560 => "\xb1", 0x00002561 => "\xb2", 0x00002562 => "\xb4", 0x00002563 => "\xb5", 0x00002564 => "\xb6", 0x00002565 => "\xb7", 0x00002566 => "\xb8", 0x00002567 => "\xb9", 0x00002568 => "\xba", 0x00002569 => "\xbb", 0x0000256a => "\xbc", 0x0000256b => "\xbd", 0x0000256c => "\xbe", 0x00002580 => "\x8b", 0x00002584 => "\x8c", 0x00002588 => "\x8d", 0x0000258c => "\x8e", 0x00002590 => "\x8f", 0x00002591 => "\x90", 0x00002592 => "\x91", 0x00002593 => "\x92", 0x000025a0 => "\x94", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::KOI8_R - Conversion routines for KOI8-R =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for KOI8-R. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: RFC1489 via Gabor Kiss Ekissg@sztaki.huE and Andrey A. Chernov Eache@astral.msk.suE Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL 81 | 00002502 | BOX DRAWINGS LIGHT VERTICAL 82 | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT 83 | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT 84 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT 85 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT 86 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT 87 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT 88 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL 89 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL 8A | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL 8B | 00002580 | UPPER HALF BLOCK 8C | 00002584 | LOWER HALF BLOCK 8D | 00002588 | FULL BLOCK 8E | 0000258C | LEFT HALF BLOCK 8F | 00002590 | RIGHT HALF BLOCK 90 | 00002591 | LIGHT SHADE 91 | 00002592 | MEDIUM SHADE 92 | 00002593 | DARK SHADE 93 | 00002320 | TOP HALF INTEGRAL 94 | 000025A0 | BLACK SQUARE 95 | 00002219 | BULLET OPERATOR 96 | 0000221A | SQUARE ROOT 97 | 00002248 | ALMOST EQUAL TO 98 | 00002264 | LESS-THAN OR EQUAL TO 99 | 00002265 | GREATER-THAN OR EQUAL TO 9A | 000000A0 | NO-BREAK SPACE 9B | 00002321 | BOTTOM HALF INTEGRAL 9C | 000000B0 | DEGREE SIGN 9D | 000000B2 | SUPERSCRIPT TWO 9E | 000000B7 | MIDDLE DOT 9F | 000000F7 | DIVISION SIGN A0 | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL A1 | 00002551 | BOX DRAWINGS DOUBLE VERTICAL A2 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE A3 | 00000451 | CYRILLIC SMALL LETTER IO A4 | 00002553 | BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE A5 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT A6 | 00002555 | BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE A7 | 00002556 | BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE A8 | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT A9 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE AA | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE AB | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT AC | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE AD | 0000255C | BOX DRAWINGS UP DOUBLE AND LEFT SINGLE AE | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT AF | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE B0 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE B1 | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT B2 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE B3 | 00000401 | CYRILLIC CAPITAL LETTER IO B4 | 00002562 | BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE B5 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT B6 | 00002564 | BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE B7 | 00002565 | BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE B8 | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL B9 | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE BA | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE BB | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL BC | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE BD | 0000256B | BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE BE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL BF | 000000A9 | COPYRIGHT SIGN C0 | 0000044E | CYRILLIC SMALL LETTER YU C1 | 00000430 | CYRILLIC SMALL LETTER A C2 | 00000431 | CYRILLIC SMALL LETTER BE C3 | 00000446 | CYRILLIC SMALL LETTER TSE C4 | 00000434 | CYRILLIC SMALL LETTER DE C5 | 00000435 | CYRILLIC SMALL LETTER IE C6 | 00000444 | CYRILLIC SMALL LETTER EF C7 | 00000433 | CYRILLIC SMALL LETTER GHE C8 | 00000445 | CYRILLIC SMALL LETTER HA C9 | 00000438 | CYRILLIC SMALL LETTER I CA | 00000439 | CYRILLIC SMALL LETTER SHORT I CB | 0000043A | CYRILLIC SMALL LETTER KA CC | 0000043B | CYRILLIC SMALL LETTER EL CD | 0000043C | CYRILLIC SMALL LETTER EM CE | 0000043D | CYRILLIC SMALL LETTER EN CF | 0000043E | CYRILLIC SMALL LETTER O D0 | 0000043F | CYRILLIC SMALL LETTER PE D1 | 0000044F | CYRILLIC SMALL LETTER YA D2 | 00000440 | CYRILLIC SMALL LETTER ER D3 | 00000441 | CYRILLIC SMALL LETTER ES D4 | 00000442 | CYRILLIC SMALL LETTER TE D5 | 00000443 | CYRILLIC SMALL LETTER U D6 | 00000436 | CYRILLIC SMALL LETTER ZHE D7 | 00000432 | CYRILLIC SMALL LETTER VE D8 | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN D9 | 0000044B | CYRILLIC SMALL LETTER YERU DA | 00000437 | CYRILLIC SMALL LETTER ZE DB | 00000448 | CYRILLIC SMALL LETTER SHA DC | 0000044D | CYRILLIC SMALL LETTER E DD | 00000449 | CYRILLIC SMALL LETTER SHCHA DE | 00000447 | CYRILLIC SMALL LETTER CHE DF | 0000044A | CYRILLIC SMALL LETTER HARD SIGN E0 | 0000042E | CYRILLIC CAPITAL LETTER YU E1 | 00000410 | CYRILLIC CAPITAL LETTER A E2 | 00000411 | CYRILLIC CAPITAL LETTER BE E3 | 00000426 | CYRILLIC CAPITAL LETTER TSE E4 | 00000414 | CYRILLIC CAPITAL LETTER DE E5 | 00000415 | CYRILLIC CAPITAL LETTER IE E6 | 00000424 | CYRILLIC CAPITAL LETTER EF E7 | 00000413 | CYRILLIC CAPITAL LETTER GHE E8 | 00000425 | CYRILLIC CAPITAL LETTER HA E9 | 00000418 | CYRILLIC CAPITAL LETTER I EA | 00000419 | CYRILLIC CAPITAL LETTER SHORT I EB | 0000041A | CYRILLIC CAPITAL LETTER KA EC | 0000041B | CYRILLIC CAPITAL LETTER EL ED | 0000041C | CYRILLIC CAPITAL LETTER EM EE | 0000041D | CYRILLIC CAPITAL LETTER EN EF | 0000041E | CYRILLIC CAPITAL LETTER O F0 | 0000041F | CYRILLIC CAPITAL LETTER PE F1 | 0000042F | CYRILLIC CAPITAL LETTER YA F2 | 00000420 | CYRILLIC CAPITAL LETTER ER F3 | 00000421 | CYRILLIC CAPITAL LETTER ES F4 | 00000422 | CYRILLIC CAPITAL LETTER TE F5 | 00000423 | CYRILLIC CAPITAL LETTER U F6 | 00000416 | CYRILLIC CAPITAL LETTER ZHE F7 | 00000412 | CYRILLIC CAPITAL LETTER VE F8 | 0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN F9 | 0000042B | CYRILLIC CAPITAL LETTER YERU FA | 00000417 | CYRILLIC CAPITAL LETTER ZE FB | 00000428 | CYRILLIC CAPITAL LETTER SHA FC | 0000042D | CYRILLIC CAPITAL LETTER E FD | 00000429 | CYRILLIC CAPITAL LETTER SHCHA FE | 00000427 | CYRILLIC CAPITAL LETTER CHE FF | 0000042A | CYRILLIC CAPITAL LETTER HARD SIGN =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]<5jjRecodeData/IBM862.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM862. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM862; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x05ea, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xd7\x90", "\xd7\x91", "\xd7\x92", "\xd7\x93", "\xd7\x94", "\xd7\x95", "\xd7\x96", "\xd7\x97", "\xd7\x98", "\xd7\x99", "\xd7\x9a", "\xd7\x9b", "\xd7\x9c", "\xd7\x9d", "\xd7\x9e", "\xd7\x9f", "\xd7\xa0", "\xd7\xa1", "\xd7\xa2", "\xd7\xa3", "\xd7\xa4", "\xd7\xa5", "\xd7\xa6", "\xd7\xa7", "\xd7\xa8", "\xd7\xa9", "\xd7\xaa", "\xc2\xa2", "\xc2\xa3", "\xc2\xa5", "\xe2\x82\xa7", "\xc6\x92", "\xc3\xa1", "\xc3\xad", "\xc3\xb3", "\xc3\xba", "\xc3\xb1", "\xc3\x91", "\xc2\xaa", "\xc2\xba", "\xc2\xbf", "\xe2\x8c\x90", "\xc2\xac", "\xc2\xbd", "\xc2\xbc", "\xc2\xa1", "\xc2\xab", "\xc2\xbb", "\xe2\x96\x91", "\xe2\x96\x92", "\xe2\x96\x93", "\xe2\x94\x82", "\xe2\x94\xa4", "\xe2\x95\xa1", "\xe2\x95\xa2", "\xe2\x95\x96", "\xe2\x95\x95", "\xe2\x95\xa3", "\xe2\x95\x91", "\xe2\x95\x97", "\xe2\x95\x9d", "\xe2\x95\x9c", "\xe2\x95\x9b", "\xe2\x94\x90", "\xe2\x94\x94", "\xe2\x94\xb4", "\xe2\x94\xac", "\xe2\x94\x9c", "\xe2\x94\x80", "\xe2\x94\xbc", "\xe2\x95\x9e", "\xe2\x95\x9f", "\xe2\x95\x9a", "\xe2\x95\x94", "\xe2\x95\xa9", "\xe2\x95\xa6", "\xe2\x95\xa0", "\xe2\x95\x90", "\xe2\x95\xac", "\xe2\x95\xa7", "\xe2\x95\xa8", "\xe2\x95\xa4", "\xe2\x95\xa5", "\xe2\x95\x99", "\xe2\x95\x98", "\xe2\x95\x92", "\xe2\x95\x93", "\xe2\x95\xab", "\xe2\x95\xaa", "\xe2\x94\x98", "\xe2\x94\x8c", "\xe2\x96\x88", "\xe2\x96\x84", "\xe2\x96\x8c", "\xe2\x96\x90", "\xe2\x96\x80", "\xce\xb1", "\xc3\x9f", "\xce\x93", "\xcf\x80", "\xce\xa3", "\xcf\x83", "\xc2\xb5", "\xcf\x84", "\xce\xa6", "\xce\x98", "\xce\xa9", "\xce\xb4", "\xe2\x88\x9e", "\xcf\x86", "\xce\xb5", "\xe2\x88\xa9", "\xe2\x89\xa1", "\xc2\xb1", "\xe2\x89\xa5", "\xe2\x89\xa4", "\xe2\x8c\xa0", "\xe2\x8c\xa1", "\xc3\xb7", "\xe2\x89\x88", "\xc2\xb0", "\xe2\x88\x99", "\xc2\xb7", "\xe2\x88\x9a", "\xe2\x81\xbf", "\xc2\xb2", "\xe2\x96\xa0", "\xc2\xa0", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xff", 0x000000a1 => "\xad", 0x000000a2 => "\x9b", 0x000000a3 => "\x9c", 0x000000a5 => "\x9d", 0x000000aa => "\xa6", 0x000000ab => "\xae", 0x000000ac => "\xaa", 0x000000b0 => "\xf8", 0x000000b1 => "\xf1", 0x000000b2 => "\xfd", 0x000000b5 => "\xe6", 0x000000b7 => "\xfa", 0x000000ba => "\xa7", 0x000000bb => "\xaf", 0x000000bc => "\xac", 0x000000bd => "\xab", 0x000000bf => "\xa8", 0x000000d1 => "\xa5", 0x000000df => "\xe1", 0x000000e1 => "\xa0", 0x000000ed => "\xa1", 0x000000f1 => "\xa4", 0x000000f3 => "\xa2", 0x000000f7 => "\xf6", 0x000000fa => "\xa3", 0x00000192 => "\x9f", 0x00000393 => "\xe2", 0x00000398 => "\xe9", 0x000003a3 => "\xe4", 0x000003a6 => "\xe8", 0x000003a9 => "\xea", 0x000003b1 => "\xe0", 0x000003b4 => "\xeb", 0x000003b5 => "\xee", 0x000003c0 => "\xe3", 0x000003c3 => "\xe5", 0x000003c4 => "\xe7", 0x000003c6 => "\xed", 0x000005d0 => "\x80", 0x000005d1 => "\x81", 0x000005d2 => "\x82", 0x000005d3 => "\x83", 0x000005d4 => "\x84", 0x000005d5 => "\x85", 0x000005d6 => "\x86", 0x000005d7 => "\x87", 0x000005d8 => "\x88", 0x000005d9 => "\x89", 0x000005da => "\x8a", 0x000005db => "\x8b", 0x000005dc => "\x8c", 0x000005dd => "\x8d", 0x000005de => "\x8e", 0x000005df => "\x8f", 0x000005e0 => "\x90", 0x000005e1 => "\x91", 0x000005e2 => "\x92", 0x000005e3 => "\x93", 0x000005e4 => "\x94", 0x000005e5 => "\x95", 0x000005e6 => "\x96", 0x000005e7 => "\x97", 0x000005e8 => "\x98", 0x000005e9 => "\x99", 0x000005ea => "\x9a", 0x0000207f => "\xfc", 0x000020a7 => "\x9e", 0x00002219 => "\xf9", 0x0000221a => "\xfb", 0x0000221e => "\xec", 0x00002229 => "\xef", 0x00002248 => "\xf7", 0x00002261 => "\xf0", 0x00002264 => "\xf3", 0x00002265 => "\xf2", 0x00002310 => "\xa9", 0x00002320 => "\xf4", 0x00002321 => "\xf5", 0x00002500 => "\xc4", 0x00002502 => "\xb3", 0x0000250c => "\xda", 0x00002510 => "\xbf", 0x00002514 => "\xc0", 0x00002518 => "\xd9", 0x0000251c => "\xc3", 0x00002524 => "\xb4", 0x0000252c => "\xc2", 0x00002534 => "\xc1", 0x0000253c => "\xc5", 0x00002550 => "\xcd", 0x00002551 => "\xba", 0x00002552 => "\xd5", 0x00002553 => "\xd6", 0x00002554 => "\xc9", 0x00002555 => "\xb8", 0x00002556 => "\xb7", 0x00002557 => "\xbb", 0x00002558 => "\xd4", 0x00002559 => "\xd3", 0x0000255a => "\xc8", 0x0000255b => "\xbe", 0x0000255c => "\xbd", 0x0000255d => "\xbc", 0x0000255e => "\xc6", 0x0000255f => "\xc7", 0x00002560 => "\xcc", 0x00002561 => "\xb5", 0x00002562 => "\xb6", 0x00002563 => "\xb9", 0x00002564 => "\xd1", 0x00002565 => "\xd2", 0x00002566 => "\xcb", 0x00002567 => "\xcf", 0x00002568 => "\xd0", 0x00002569 => "\xca", 0x0000256a => "\xd8", 0x0000256b => "\xd7", 0x0000256c => "\xce", 0x00002580 => "\xdf", 0x00002584 => "\xdc", 0x00002588 => "\xdb", 0x0000258c => "\xdd", 0x00002590 => "\xde", 0x00002591 => "\xb0", 0x00002592 => "\xb1", 0x00002593 => "\xb2", 0x000025a0 => "\xfe", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM862 - Conversion routines for IBM862 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM862. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP862 alias 862 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000005D0 | HEBREW LETTER ALEF 81 | 000005D1 | HEBREW LETTER BET 82 | 000005D2 | HEBREW LETTER GIMEL 83 | 000005D3 | HEBREW LETTER DALET 84 | 000005D4 | HEBREW LETTER HE 85 | 000005D5 | HEBREW LETTER VAV 86 | 000005D6 | HEBREW LETTER ZAYIN 87 | 000005D7 | HEBREW LETTER HET 88 | 000005D8 | HEBREW LETTER TET 89 | 000005D9 | HEBREW LETTER YOD 8A | 000005DA | HEBREW LETTER FINAL KAF 8B | 000005DB | HEBREW LETTER KAF 8C | 000005DC | HEBREW LETTER LAMED 8D | 000005DD | HEBREW LETTER FINAL MEM 8E | 000005DE | HEBREW LETTER MEM 8F | 000005DF | HEBREW LETTER FINAL NUN 90 | 000005E0 | HEBREW LETTER NUN 91 | 000005E1 | HEBREW LETTER SAMEKH 92 | 000005E2 | HEBREW LETTER AYIN 93 | 000005E3 | HEBREW LETTER FINAL PE 94 | 000005E4 | HEBREW LETTER PE 95 | 000005E5 | HEBREW LETTER FINAL TSADI 96 | 000005E6 | HEBREW LETTER TSADI 97 | 000005E7 | HEBREW LETTER QOF 98 | 000005E8 | HEBREW LETTER RESH 99 | 000005E9 | HEBREW LETTER SHIN 9A | 000005EA | HEBREW LETTER TAV 9B | 000000A2 | CENT SIGN 9C | 000000A3 | POUND SIGN 9D | 000000A5 | YEN SIGN 9E | 000020A7 | PESETA SIGN 9F | 00000192 | LATIN SMALL LETTER F WITH HOOK A0 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE A1 | 000000ED | LATIN SMALL LETTER I WITH ACUTE A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE A4 | 000000F1 | LATIN SMALL LETTER N WITH TILDE A5 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE A6 | 000000AA | FEMININE ORDINAL INDICATOR A7 | 000000BA | MASCULINE ORDINAL INDICATOR A8 | 000000BF | INVERTED QUESTION MARK A9 | 00002310 | REVERSED NOT SIGN AA | 000000AC | NOT SIGN AB | 000000BD | VULGAR FRACTION ONE HALF AC | 000000BC | VULGAR FRACTION ONE QUARTER AD | 000000A1 | INVERTED EXCLAMATION MARK AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK B0 | 00002591 | LIGHT SHADE B1 | 00002592 | MEDIUM SHADE B2 | 00002593 | DARK SHADE B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT B5 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE B6 | 00002562 | BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE B7 | 00002556 | BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE B8 | 00002555 | BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT BD | 0000255C | BOX DRAWINGS UP DOUBLE AND LEFT SINGLE BE | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL C6 | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE C7 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL CF | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE D0 | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE D1 | 00002564 | BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE D2 | 00002565 | BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE D3 | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE D4 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE D5 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE D6 | 00002553 | BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE D7 | 0000256B | BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE D8 | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT DB | 00002588 | FULL BLOCK DC | 00002584 | LOWER HALF BLOCK DD | 0000258C | LEFT HALF BLOCK DE | 00002590 | RIGHT HALF BLOCK DF | 00002580 | UPPER HALF BLOCK E0 | 000003B1 | GREEK SMALL LETTER ALPHA E1 | 000000DF | LATIN SMALL LETTER SHARP S (German) E2 | 00000393 | GREEK CAPITAL LETTER GAMMA E3 | 000003C0 | GREEK SMALL LETTER PI E4 | 000003A3 | GREEK CAPITAL LETTER SIGMA E5 | 000003C3 | GREEK SMALL LETTER SIGMA E6 | 000000B5 | MICRO SIGN E7 | 000003C4 | GREEK SMALL LETTER TAU E8 | 000003A6 | GREEK CAPITAL LETTER PHI E9 | 00000398 | GREEK CAPITAL LETTER THETA EA | 000003A9 | GREEK CAPITAL LETTER OMEGA EB | 000003B4 | GREEK SMALL LETTER DELTA EC | 0000221E | INFINITY ED | 000003C6 | GREEK SMALL LETTER PHI EE | 000003B5 | GREEK SMALL LETTER EPSILON EF | 00002229 | INTERSECTION F0 | 00002261 | IDENTICAL TO F1 | 000000B1 | PLUS-MINUS SIGN F2 | 00002265 | GREATER-THAN OR EQUAL TO F3 | 00002264 | LESS-THAN OR EQUAL TO F4 | 00002320 | TOP HALF INTEGRAL F5 | 00002321 | BOTTOM HALF INTEGRAL F6 | 000000F7 | DIVISION SIGN F7 | 00002248 | ALMOST EQUAL TO F8 | 000000B0 | DEGREE SIGN F9 | 00002219 | BULLET OPERATOR FA | 000000B7 | MIDDLE DOT FB | 0000221A | SQUARE ROOT FC | 0000207F | SUPERSCRIPT LATIN SMALL LETTER N FD | 000000B2 | SUPERSCRIPT TWO FE | 000025A0 | BLACK SQUARE FF | 000000A0 | NO-BREAK SPACE =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]>ݩ\\RecodeData/ISO_8859_6.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for ISO-8859-6. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::ISO_8859_6; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0xfffd, 0xfffd, 0xfffd, 0x00a4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x060c, 0x00ad, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x061b, 0xfffd, 0xfffd, 0xfffd, 0x061f, 0xfffd, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, 0x0638, 0x0639, 0x063a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f, 0x0650, 0x0651, 0x0652, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\xc2\x85", "\xc2\x86", "\xc2\x87", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\xc2\x8d", "\xc2\x8e", "\xc2\x8f", "\xc2\x90", "\xc2\x91", "\xc2\x92", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\xc2\x97", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\xc2\x9c", "\xc2\x9d", "\xc2\x9e", "\xc2\x9f", "\xc2\xa0", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa4", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd8\x8c", "\xc2\xad", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd8\x9b", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd8\x9f", "\xef\xbf\xbd", "\xd8\xa1", "\xd8\xa2", "\xd8\xa3", "\xd8\xa4", "\xd8\xa5", "\xd8\xa6", "\xd8\xa7", "\xd8\xa8", "\xd8\xa9", "\xd8\xaa", "\xd8\xab", "\xd8\xac", "\xd8\xad", "\xd8\xae", "\xd8\xaf", "\xd8\xb0", "\xd8\xb1", "\xd8\xb2", "\xd8\xb3", "\xd8\xb4", "\xd8\xb5", "\xd8\xb6", "\xd8\xb7", "\xd8\xb8", "\xd8\xb9", "\xd8\xba", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xd9\x80", "\xd9\x81", "\xd9\x82", "\xd9\x83", "\xd9\x84", "\xd9\x85", "\xd9\x86", "\xd9\x87", "\xd9\x88", "\xd9\x89", "\xd9\x8a", "\xd9\x8b", "\xd9\x8c", "\xd9\x8d", "\xd9\x8e", "\xd9\x8f", "\xd9\x90", "\xd9\x91", "\xd9\x92", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x00000080 => "\x80", 0x00000081 => "\x81", 0x00000082 => "\x82", 0x00000083 => "\x83", 0x00000084 => "\x84", 0x00000085 => "\x85", 0x00000086 => "\x86", 0x00000087 => "\x87", 0x00000088 => "\x88", 0x00000089 => "\x89", 0x0000008a => "\x8a", 0x0000008b => "\x8b", 0x0000008c => "\x8c", 0x0000008d => "\x8d", 0x0000008e => "\x8e", 0x0000008f => "\x8f", 0x00000090 => "\x90", 0x00000091 => "\x91", 0x00000092 => "\x92", 0x00000093 => "\x93", 0x00000094 => "\x94", 0x00000095 => "\x95", 0x00000096 => "\x96", 0x00000097 => "\x97", 0x00000098 => "\x98", 0x00000099 => "\x99", 0x0000009a => "\x9a", 0x0000009b => "\x9b", 0x0000009c => "\x9c", 0x0000009d => "\x9d", 0x0000009e => "\x9e", 0x0000009f => "\x9f", 0x000000a0 => "\xa0", 0x000000a4 => "\xa4", 0x000000ad => "\xad", 0x0000060c => "\xac", 0x0000061b => "\xbb", 0x0000061f => "\xbf", 0x00000621 => "\xc1", 0x00000622 => "\xc2", 0x00000623 => "\xc3", 0x00000624 => "\xc4", 0x00000625 => "\xc5", 0x00000626 => "\xc6", 0x00000627 => "\xc7", 0x00000628 => "\xc8", 0x00000629 => "\xc9", 0x0000062a => "\xca", 0x0000062b => "\xcb", 0x0000062c => "\xcc", 0x0000062d => "\xcd", 0x0000062e => "\xce", 0x0000062f => "\xcf", 0x00000630 => "\xd0", 0x00000631 => "\xd1", 0x00000632 => "\xd2", 0x00000633 => "\xd3", 0x00000634 => "\xd4", 0x00000635 => "\xd5", 0x00000636 => "\xd6", 0x00000637 => "\xd7", 0x00000638 => "\xd8", 0x00000639 => "\xd9", 0x0000063a => "\xda", 0x00000640 => "\xe0", 0x00000641 => "\xe1", 0x00000642 => "\xe2", 0x00000643 => "\xe3", 0x00000644 => "\xe4", 0x00000645 => "\xe5", 0x00000646 => "\xe6", 0x00000647 => "\xe7", 0x00000648 => "\xe8", 0x00000649 => "\xe9", 0x0000064a => "\xea", 0x0000064b => "\xeb", 0x0000064c => "\xec", 0x0000064d => "\xed", 0x0000064e => "\xee", 0x0000064f => "\xef", 0x00000650 => "\xf0", 0x00000651 => "\xf1", 0x00000652 => "\xf2", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::ISO_8859_6 - Conversion routines for ISO-8859-6 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for ISO-8859-6. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: ECMA registry alias ISO-IR-127 alias ISO_8859-6:1987 alias ISO_8859-6 alias ECMA-114 alias ASMO-708 alias ARABIC Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 00000080 | PADDING CHARACTER (PAD) 81 | 00000081 | HIGH OCTET PRESET (HOP) 82 | 00000082 | BREAK PERMITTED HERE (BPH) 83 | 00000083 | NO BREAK HERE (NBH) 84 | 00000084 | INDEX (IND) 85 | 00000085 | NEXT LINE (NEL) 86 | 00000086 | START OF SELECTED AREA (SSA) 87 | 00000087 | END OF SELECTED AREA (ESA) 88 | 00000088 | CHARACTER TABULATION SET (HTS) 89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 8A | 0000008A | LINE TABULATION SET (VTS) 8B | 0000008B | PARTIAL LINE FORWARD (PLD) 8C | 0000008C | PARTIAL LINE BACKWARD (PLU) 8D | 0000008D | REVERSE LINE FEED (RI) 8E | 0000008E | SINGLE-SHIFT TWO (SS2) 8F | 0000008F | SINGLE-SHIFT THREE (SS3) 90 | 00000090 | DEVICE CONTROL STRING (DCS) 91 | 00000091 | PRIVATE USE ONE (PU1) 92 | 00000092 | PRIVATE USE TWO (PU2) 93 | 00000093 | SET TRANSMIT STATE (STS) 94 | 00000094 | CANCEL CHARACTER (CCH) 95 | 00000095 | MESSAGE WAITING (MW) 96 | 00000096 | START OF GUARDED AREA (SPA) 97 | 00000097 | END OF GUARDED AREA (EPA) 98 | 00000098 | START OF STRING (SOS) 99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 9C | 0000009C | STRING TERMINATOR (ST) 9D | 0000009D | OPERATING SYSTEM COMMAND (OSC) 9E | 0000009E | PRIVACY MESSAGE (PM) 9F | 0000009F | APPLICATION PROGRAM COMMAND (APC) A0 | 000000A0 | NO-BREAK SPACE A4 | 000000A4 | CURRENCY SIGN AC | 0000060C | ARABIC COMMA AD | 000000AD | SOFT HYPHEN BB | 0000061B | ARABIC SEMICOLON BF | 0000061F | ARABIC QUESTION MARK C1 | 00000621 | ARABIC LETTER HAMZA C2 | 00000622 | ARABIC LETTER ALEF WITH MADDA ABOVE C3 | 00000623 | ARABIC LETTER ALEF WITH HAMZA ABOVE C4 | 00000624 | ARABIC LETTER WAW WITH HAMZA ABOVE C5 | 00000625 | ARABIC LETTER ALEF WITH HAMZA BELOW C6 | 00000626 | ARABIC LETTER YEH WITH HAMZA ABOVE C7 | 00000627 | ARABIC LETTER ALEF C8 | 00000628 | ARABIC LETTER BEH C9 | 00000629 | ARABIC LETTER TEH MARBUTA CA | 0000062A | ARABIC LETTER TEH CB | 0000062B | ARABIC LETTER THEH CC | 0000062C | ARABIC LETTER JEEM CD | 0000062D | ARABIC LETTER HAH CE | 0000062E | ARABIC LETTER KHAH CF | 0000062F | ARABIC LETTER DAL D0 | 00000630 | ARABIC LETTER THAL D1 | 00000631 | ARABIC LETTER REH D2 | 00000632 | ARABIC LETTER ZAIN D3 | 00000633 | ARABIC LETTER SEEN D4 | 00000634 | ARABIC LETTER SHEEN D5 | 00000635 | ARABIC LETTER SAD D6 | 00000636 | ARABIC LETTER DAD D7 | 00000637 | ARABIC LETTER TAH D8 | 00000638 | ARABIC LETTER ZAH D9 | 00000639 | ARABIC LETTER AIN DA | 0000063A | ARABIC LETTER GHAIN E0 | 00000640 | ARABIC TATWEEL E1 | 00000641 | ARABIC LETTER FEH E2 | 00000642 | ARABIC LETTER QAF E3 | 00000643 | ARABIC LETTER KAF E4 | 00000644 | ARABIC LETTER LAM E5 | 00000645 | ARABIC LETTER MEEM E6 | 00000646 | ARABIC LETTER NOON E7 | 00000647 | ARABIC LETTER HEH E8 | 00000648 | ARABIC LETTER WAW E9 | 00000649 | ARABIC LETTER ALEF MAKSURA EA | 0000064A | ARABIC LETTER YEH EB | 0000064B | ARABIC FATHATAN EC | 0000064C | ARABIC DAMMATAN ED | 0000064D | ARABIC KASRATAN EE | 0000064E | ARABIC FATHA EF | 0000064F | ARABIC DAMMA F0 | 00000650 | ARABIC KASRA F1 | 00000651 | ARABIC SHADDA F2 | 00000652 | ARABIC SUKUN =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]_l" j jRecodeData/MACGREEK.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for MACGREEK. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::MACGREEK; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c4, 0x00b9, 0x00b2, 0x00c9, 0x00b3, 0x00d6, 0x00dc, 0x0385, 0x00e0, 0x00e2, 0x00e4, 0x0384, 0x00a8, 0x00e7, 0x00e9, 0x00e8, 0x00ea, 0x00eb, 0x00a3, 0x2122, 0x00ee, 0x00ef, 0x2022, 0x00bd, 0x2030, 0x00f4, 0x00f6, 0x00a6, 0x00ad, 0x00f9, 0x00fb, 0x00fc, 0x2020, 0x0393, 0x0394, 0x0398, 0x039b, 0x039e, 0x03a0, 0x00df, 0x00ae, 0x00a9, 0x03a3, 0x03aa, 0x00a7, 0x2260, 0x00b0, 0x0387, 0x0391, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x0392, 0x0395, 0x0396, 0x0397, 0x0399, 0x039a, 0x039c, 0x03a6, 0x03ab, 0x03a8, 0x03a9, 0x03ac, 0x039d, 0x00ac, 0x039f, 0x03a1, 0x2248, 0x03a4, 0x00ab, 0x00bb, 0x2026, 0x00a0, 0x03a5, 0x03a7, 0x0386, 0x0388, 0x0153, 0x2013, 0x2015, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x0389, 0x038a, 0x038c, 0x038e, 0x03ad, 0x03ae, 0x03af, 0x03cc, 0x038f, 0x03cd, 0x03b1, 0x03b2, 0x03c8, 0x03b4, 0x03b5, 0x03c6, 0x03b3, 0x03b7, 0x03b9, 0x03be, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03bf, 0x03c0, 0x03ce, 0x03c1, 0x03c3, 0x03c4, 0x03b8, 0x03c9, 0x03c2, 0x03c7, 0x03c5, 0x03b6, 0x03ca, 0x03cb, 0x0390, 0x03b0, 0xfffd, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc3\x84", "\xc2\xb9", "\xc2\xb2", "\xc3\x89", "\xc2\xb3", "\xc3\x96", "\xc3\x9c", "\xce\x85", "\xc3\xa0", "\xc3\xa2", "\xc3\xa4", "\xce\x84", "\xc2\xa8", "\xc3\xa7", "\xc3\xa9", "\xc3\xa8", "\xc3\xaa", "\xc3\xab", "\xc2\xa3", "\xe2\x84\xa2", "\xc3\xae", "\xc3\xaf", "\xe2\x80\xa2", "\xc2\xbd", "\xe2\x80\xb0", "\xc3\xb4", "\xc3\xb6", "\xc2\xa6", "\xc2\xad", "\xc3\xb9", "\xc3\xbb", "\xc3\xbc", "\xe2\x80\xa0", "\xce\x93", "\xce\x94", "\xce\x98", "\xce\x9b", "\xce\x9e", "\xce\xa0", "\xc3\x9f", "\xc2\xae", "\xc2\xa9", "\xce\xa3", "\xce\xaa", "\xc2\xa7", "\xe2\x89\xa0", "\xc2\xb0", "\xce\x87", "\xce\x91", "\xc2\xb1", "\xe2\x89\xa4", "\xe2\x89\xa5", "\xc2\xa5", "\xce\x92", "\xce\x95", "\xce\x96", "\xce\x97", "\xce\x99", "\xce\x9a", "\xce\x9c", "\xce\xa6", "\xce\xab", "\xce\xa8", "\xce\xa9", "\xce\xac", "\xce\x9d", "\xc2\xac", "\xce\x9f", "\xce\xa1", "\xe2\x89\x88", "\xce\xa4", "\xc2\xab", "\xc2\xbb", "\xe2\x80\xa6", "\xc2\xa0", "\xce\xa5", "\xce\xa7", "\xce\x86", "\xce\x88", "\xc5\x93", "\xe2\x80\x93", "\xe2\x80\x95", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x98", "\xe2\x80\x99", "\xc3\xb7", "\xce\x89", "\xce\x8a", "\xce\x8c", "\xce\x8e", "\xce\xad", "\xce\xae", "\xce\xaf", "\xcf\x8c", "\xce\x8f", "\xcf\x8d", "\xce\xb1", "\xce\xb2", "\xcf\x88", "\xce\xb4", "\xce\xb5", "\xcf\x86", "\xce\xb3", "\xce\xb7", "\xce\xb9", "\xce\xbe", "\xce\xba", "\xce\xbb", "\xce\xbc", "\xce\xbd", "\xce\xbf", "\xcf\x80", "\xcf\x8e", "\xcf\x81", "\xcf\x83", "\xcf\x84", "\xce\xb8", "\xcf\x89", "\xcf\x82", "\xcf\x87", "\xcf\x85", "\xce\xb6", "\xcf\x8a", "\xcf\x8b", "\xce\x90", "\xce\xb0", "\xef\xbf\xbd", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xca", 0x000000a3 => "\x92", 0x000000a5 => "\xb4", 0x000000a6 => "\x9b", 0x000000a7 => "\xac", 0x000000a8 => "\x8c", 0x000000a9 => "\xa9", 0x000000ab => "\xc7", 0x000000ac => "\xc2", 0x000000ad => "\x9c", 0x000000ae => "\xa8", 0x000000b0 => "\xae", 0x000000b1 => "\xb1", 0x000000b2 => "\x82", 0x000000b3 => "\x84", 0x000000b9 => "\x81", 0x000000bb => "\xc8", 0x000000bd => "\x97", 0x000000c4 => "\x80", 0x000000c9 => "\x83", 0x000000d6 => "\x85", 0x000000dc => "\x86", 0x000000df => "\xa7", 0x000000e0 => "\x88", 0x000000e2 => "\x89", 0x000000e4 => "\x8a", 0x000000e7 => "\x8d", 0x000000e8 => "\x8f", 0x000000e9 => "\x8e", 0x000000ea => "\x90", 0x000000eb => "\x91", 0x000000ee => "\x94", 0x000000ef => "\x95", 0x000000f4 => "\x99", 0x000000f6 => "\x9a", 0x000000f7 => "\xd6", 0x000000f9 => "\x9d", 0x000000fb => "\x9e", 0x000000fc => "\x9f", 0x00000153 => "\xcf", 0x00000384 => "\x8b", 0x00000385 => "\x87", 0x00000386 => "\xcd", 0x00000387 => "\xaf", 0x00000388 => "\xce", 0x00000389 => "\xd7", 0x0000038a => "\xd8", 0x0000038c => "\xd9", 0x0000038e => "\xda", 0x0000038f => "\xdf", 0x00000390 => "\xfd", 0x00000391 => "\xb0", 0x00000392 => "\xb5", 0x00000393 => "\xa1", 0x00000394 => "\xa2", 0x00000395 => "\xb6", 0x00000396 => "\xb7", 0x00000397 => "\xb8", 0x00000398 => "\xa3", 0x00000399 => "\xb9", 0x0000039a => "\xba", 0x0000039b => "\xa4", 0x0000039c => "\xbb", 0x0000039d => "\xc1", 0x0000039e => "\xa5", 0x0000039f => "\xc3", 0x000003a0 => "\xa6", 0x000003a1 => "\xc4", 0x000003a3 => "\xaa", 0x000003a4 => "\xc6", 0x000003a5 => "\xcb", 0x000003a6 => "\xbc", 0x000003a7 => "\xcc", 0x000003a8 => "\xbe", 0x000003a9 => "\xbf", 0x000003aa => "\xab", 0x000003ab => "\xbd", 0x000003ac => "\xc0", 0x000003ad => "\xdb", 0x000003ae => "\xdc", 0x000003af => "\xdd", 0x000003b0 => "\xfe", 0x000003b1 => "\xe1", 0x000003b2 => "\xe2", 0x000003b3 => "\xe7", 0x000003b4 => "\xe4", 0x000003b5 => "\xe5", 0x000003b6 => "\xfa", 0x000003b7 => "\xe8", 0x000003b8 => "\xf5", 0x000003b9 => "\xe9", 0x000003ba => "\xeb", 0x000003bb => "\xec", 0x000003bc => "\xed", 0x000003bd => "\xee", 0x000003be => "\xea", 0x000003bf => "\xef", 0x000003c0 => "\xf0", 0x000003c1 => "\xf2", 0x000003c2 => "\xf7", 0x000003c3 => "\xf3", 0x000003c4 => "\xf4", 0x000003c5 => "\xf9", 0x000003c6 => "\xe6", 0x000003c7 => "\xf8", 0x000003c8 => "\xe3", 0x000003c9 => "\xf6", 0x000003ca => "\xfb", 0x000003cb => "\xfc", 0x000003cc => "\xde", 0x000003cd => "\xe0", 0x000003ce => "\xf1", 0x00002013 => "\xd0", 0x00002015 => "\xd1", 0x00002018 => "\xd4", 0x00002019 => "\xd5", 0x0000201c => "\xd2", 0x0000201d => "\xd3", 0x00002020 => "\xa0", 0x00002022 => "\x96", 0x00002026 => "\xc9", 0x00002030 => "\x98", 0x00002122 => "\x93", 0x00002248 => "\xc5", 0x00002260 => "\xad", 0x00002264 => "\xb2", 0x00002265 => "\xb3", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::MACGREEK - Conversion routines for MACGREEK =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for MACGREEK. =head1 COMMENTS The following comments have been extracted from the original charmap: This charmap has been generated automatically from GNU libiconv conversions. Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 81 | 000000B9 | SUPERSCRIPT ONE 82 | 000000B2 | SUPERSCRIPT TWO 83 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 84 | 000000B3 | SUPERSCRIPT THREE 85 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 86 | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 87 | 00000385 | GREEK DIALYTIKA TONOS 88 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 89 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 8A | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 8B | 00000384 | GREEK TONOS 8C | 000000A8 | DIAERESIS 8D | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 8E | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 8F | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 90 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 91 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 92 | 000000A3 | POUND SIGN 93 | 00002122 | TRADE MARK SIGN 94 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 95 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 96 | 00002022 | BULLET 97 | 000000BD | VULGAR FRACTION ONE HALF 98 | 00002030 | PER MILLE SIGN 99 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX 9A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 9B | 000000A6 | BROKEN BAR 9C | 000000AD | SOFT HYPHEN 9D | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 9E | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX 9F | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS A0 | 00002020 | DAGGER A1 | 00000393 | GREEK CAPITAL LETTER GAMMA A2 | 00000394 | GREEK CAPITAL LETTER DELTA A3 | 00000398 | GREEK CAPITAL LETTER THETA A4 | 0000039B | GREEK CAPITAL LETTER LAMDA A5 | 0000039E | GREEK CAPITAL LETTER XI A6 | 000003A0 | GREEK CAPITAL LETTER PI A7 | 000000DF | LATIN SMALL LETTER SHARP S A8 | 000000AE | REGISTERED SIGN A9 | 000000A9 | COPYRIGHT SIGN AA | 000003A3 | GREEK CAPITAL LETTER SIGMA AB | 000003AA | GREEK CAPITAL LETTER IOTA WITH DIALYTIKA AC | 000000A7 | SECTION SIGN AD | 00002260 | NOT EQUAL TO AE | 000000B0 | DEGREE SIGN AF | 00000387 | GREEK ANO TELEIA B0 | 00000391 | GREEK CAPITAL LETTER ALPHA B1 | 000000B1 | PLUS-MINUS SIGN B2 | 00002264 | LESS-THAN OR EQUAL TO B3 | 00002265 | GREATER-THAN OR EQUAL TO B4 | 000000A5 | YEN SIGN B5 | 00000392 | GREEK CAPITAL LETTER BETA B6 | 00000395 | GREEK CAPITAL LETTER EPSILON B7 | 00000396 | GREEK CAPITAL LETTER ZETA B8 | 00000397 | GREEK CAPITAL LETTER ETA B9 | 00000399 | GREEK CAPITAL LETTER IOTA BA | 0000039A | GREEK CAPITAL LETTER KAPPA BB | 0000039C | GREEK CAPITAL LETTER MU BC | 000003A6 | GREEK CAPITAL LETTER PHI BD | 000003AB | GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA BE | 000003A8 | GREEK CAPITAL LETTER PSI BF | 000003A9 | GREEK CAPITAL LETTER OMEGA C0 | 000003AC | GREEK SMALL LETTER ALPHA WITH TONOS C1 | 0000039D | GREEK CAPITAL LETTER NU C2 | 000000AC | NOT SIGN C3 | 0000039F | GREEK CAPITAL LETTER OMICRON C4 | 000003A1 | GREEK CAPITAL LETTER RHO C5 | 00002248 | ALMOST EQUAL TO C6 | 000003A4 | GREEK CAPITAL LETTER TAU C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK C8 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK C9 | 00002026 | HORIZONTAL ELLIPSIS CA | 000000A0 | NO-BREAK SPACE CB | 000003A5 | GREEK CAPITAL LETTER UPSILON CC | 000003A7 | GREEK CAPITAL LETTER CHI CD | 00000386 | GREEK CAPITAL LETTER ALPHA WITH TONOS CE | 00000388 | GREEK CAPITAL LETTER EPSILON WITH TONOS CF | 00000153 | LATIN SMALL LIGATURE OE D0 | 00002013 | EN DASH D1 | 00002015 | HORIZONTAL BAR D2 | 0000201C | LEFT DOUBLE QUOTATION MARK D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK D4 | 00002018 | LEFT SINGLE QUOTATION MARK D5 | 00002019 | RIGHT SINGLE QUOTATION MARK D6 | 000000F7 | DIVISION SIGN D7 | 00000389 | GREEK CAPITAL LETTER ETA WITH TONOS D8 | 0000038A | GREEK CAPITAL LETTER IOTA WITH TONOS D9 | 0000038C | GREEK CAPITAL LETTER OMICRON WITH TONOS DA | 0000038E | GREEK CAPITAL LETTER UPSILON WITH TONOS DB | 000003AD | GREEK SMALL LETTER EPSILON WITH TONOS DC | 000003AE | GREEK SMALL LETTER ETA WITH TONOS DD | 000003AF | GREEK SMALL LETTER IOTA WITH TONOS DE | 000003CC | GREEK SMALL LETTER OMICRON WITH TONOS DF | 0000038F | GREEK CAPITAL LETTER OMEGA WITH TONOS E0 | 000003CD | GREEK SMALL LETTER UPSILON WITH TONOS E1 | 000003B1 | GREEK SMALL LETTER ALPHA E2 | 000003B2 | GREEK SMALL LETTER BETA E3 | 000003C8 | GREEK SMALL LETTER PSI E4 | 000003B4 | GREEK SMALL LETTER DELTA E5 | 000003B5 | GREEK SMALL LETTER EPSILON E6 | 000003C6 | GREEK SMALL LETTER PHI E7 | 000003B3 | GREEK SMALL LETTER GAMMA E8 | 000003B7 | GREEK SMALL LETTER ETA E9 | 000003B9 | GREEK SMALL LETTER IOTA EA | 000003BE | GREEK SMALL LETTER XI EB | 000003BA | GREEK SMALL LETTER KAPPA EC | 000003BB | GREEK SMALL LETTER LAMDA ED | 000003BC | GREEK SMALL LETTER MU EE | 000003BD | GREEK SMALL LETTER NU EF | 000003BF | GREEK SMALL LETTER OMICRON F0 | 000003C0 | GREEK SMALL LETTER PI F1 | 000003CE | GREEK SMALL LETTER OMEGA WITH TONOS F2 | 000003C1 | GREEK SMALL LETTER RHO F3 | 000003C3 | GREEK SMALL LETTER SIGMA F4 | 000003C4 | GREEK SMALL LETTER TAU F5 | 000003B8 | GREEK SMALL LETTER THETA F6 | 000003C9 | GREEK SMALL LETTER OMEGA F7 | 000003C2 | GREEK SMALL LETTER FINAL SIGMA F8 | 000003C7 | GREEK SMALL LETTER CHI F9 | 000003C5 | GREEK SMALL LETTER UPSILON FA | 000003B6 | GREEK SMALL LETTER ZETA FB | 000003CA | GREEK SMALL LETTER IOTA WITH DIALYTIKA FC | 000003CB | GREEK SMALL LETTER UPSILON WITH DIALYTIKA FD | 00000390 | GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS FE | 000003B0 | GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]IVVRecodeData/EBCDIC_CA_FR.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for EBCDIC-CA-FR. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::EBCDIC_CA_FR; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0xfffd, 0x00e2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e7, 0xfffd, 0x00e0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0xfffd, 0x00ea, 0x00eb, 0xfffd, 0xfffd, 0x00ee, 0x00ef, 0xfffd, 0xfffd, 0x00b4, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0xfffd, 0x00c0, 0xfffd, 0xfffd, 0xfffd, 0x00c7, 0xfffd, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0xfffd, 0x00c9, 0x00ca, 0x00cb, 0xfffd, 0x00ce, 0x00cf, 0xfffd, 0xfffd, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0xfffd, 0x00f4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0xfffd, 0x00fb, 0x00fc, 0xfffd, 0xfffd, 0xfffd, 0x00b8, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0xfffd, 0x00d4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0xfffd, 0x00db, 0x00dc, 0x00d9, 0xfffd, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xef\xbf\xbd", "\xc3\xa2", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa7", "\xef\xbf\xbd", "\xc3\xa0", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\xef\xbf\xbd", "\xc3\xaa", "\xc3\xab", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xae", "\xc3\xaf", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xb4", "\x24", "\x2a", "\x29", "\x3b", "\x5e", "\x2d", "\x2f", "\xc3\x82", "\xef\xbf\xbd", "\xc3\x80", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\x87", "\xef\xbf\xbd", "\xc3\xb9", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xef\xbf\xbd", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xef\xbf\xbd", "\xc3\x8e", "\xc3\x8f", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x60", "\x3a", "\x23", "\x40", "\x27", "\x3d", "\x22", "\xef\xbf\xbd", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xa8", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa9", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xef\xbf\xbd", "\xc3\xb4", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc3\xa8", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xef\xbf\xbd", "\xc3\xbb", "\xc3\xbc", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xc2\xb8", "\xef\xbf\xbd", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xef\xbf\xbd", "\xc3\x94", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\xef\xbf\xbd", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xef\xbf\xbd", "\xc3\x9b", "\xc3\x9c", "\xc3\x99", "\xef\xbf\xbd", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000023 => "\x7b", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\x7c", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005e => "\x5f", 0x0000005f => "\x6d", 0x00000060 => "\x79", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a8 => "\xa1", 0x000000b4 => "\x5a", 0x000000b8 => "\xe0", 0x000000c0 => "\x64", 0x000000c2 => "\x62", 0x000000c7 => "\x68", 0x000000c9 => "\x71", 0x000000ca => "\x72", 0x000000cb => "\x73", 0x000000ce => "\x75", 0x000000cf => "\x76", 0x000000d4 => "\xeb", 0x000000d9 => "\xfd", 0x000000db => "\xfb", 0x000000dc => "\xfc", 0x000000e0 => "\x4a", 0x000000e2 => "\x42", 0x000000e7 => "\x48", 0x000000e8 => "\xd0", 0x000000e9 => "\xc0", 0x000000ea => "\x52", 0x000000eb => "\x53", 0x000000ee => "\x56", 0x000000ef => "\x57", 0x000000f4 => "\xcb", 0x000000f9 => "\x6a", 0x000000fb => "\xdb", 0x000000fc => "\xdc", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::EBCDIC_CA_FR - Conversion routines for EBCDIC_CA_FR =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for EBCDIC-CA-FR. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 4A | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 5A | 000000B4 | ACUTE ACCENT 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 0000005E | CIRCUMFLEX ACCENT 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 6A | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS 75 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX 76 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS 79 | 00000060 | GRAVE ACCENT 7A | 0000003A | COLON 7B | 00000023 | NUMBER SIGN 7C | 00000040 | COMMERCIAL AT 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R A1 | 000000A8 | DIAERESIS A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z C0 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX D0 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX DC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS E0 | 000000B8 | CEDILLA E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]iiRecodeData/MACROMANIA.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for MACROMANIA. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::MACROMANIA; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, 0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, 0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x0102, 0x015e, 0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211, 0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x0103, 0x015f, 0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, 0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153, 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, 0x00ff, 0x0178, 0x2044, 0x00a4, 0x2039, 0x203a, 0x0162, 0x0163, 0x2021, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4, 0xfffd, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc, 0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x20", "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28", "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f", "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\x7f", "\xc3\x84", "\xc3\x85", "\xc3\x87", "\xc3\x89", "\xc3\x91", "\xc3\x96", "\xc3\x9c", "\xc3\xa1", "\xc3\xa0", "\xc3\xa2", "\xc3\xa4", "\xc3\xa3", "\xc3\xa5", "\xc3\xa7", "\xc3\xa9", "\xc3\xa8", "\xc3\xaa", "\xc3\xab", "\xc3\xad", "\xc3\xac", "\xc3\xae", "\xc3\xaf", "\xc3\xb1", "\xc3\xb3", "\xc3\xb2", "\xc3\xb4", "\xc3\xb6", "\xc3\xb5", "\xc3\xba", "\xc3\xb9", "\xc3\xbb", "\xc3\xbc", "\xe2\x80\xa0", "\xc2\xb0", "\xc2\xa2", "\xc2\xa3", "\xc2\xa7", "\xe2\x80\xa2", "\xc2\xb6", "\xc3\x9f", "\xc2\xae", "\xc2\xa9", "\xe2\x84\xa2", "\xc2\xb4", "\xc2\xa8", "\xe2\x89\xa0", "\xc4\x82", "\xc5\x9e", "\xe2\x88\x9e", "\xc2\xb1", "\xe2\x89\xa4", "\xe2\x89\xa5", "\xc2\xa5", "\xc2\xb5", "\xe2\x88\x82", "\xe2\x88\x91", "\xe2\x88\x8f", "\xcf\x80", "\xe2\x88\xab", "\xc2\xaa", "\xc2\xba", "\xe2\x84\xa6", "\xc4\x83", "\xc5\x9f", "\xc2\xbf", "\xc2\xa1", "\xc2\xac", "\xe2\x88\x9a", "\xc6\x92", "\xe2\x89\x88", "\xe2\x88\x86", "\xc2\xab", "\xc2\xbb", "\xe2\x80\xa6", "\xc2\xa0", "\xc3\x80", "\xc3\x83", "\xc3\x95", "\xc5\x92", "\xc5\x93", "\xe2\x80\x93", "\xe2\x80\x94", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x98", "\xe2\x80\x99", "\xc3\xb7", "\xe2\x97\x8a", "\xc3\xbf", "\xc5\xb8", "\xe2\x81\x84", "\xc2\xa4", "\xe2\x80\xb9", "\xe2\x80\xba", "\xc5\xa2", "\xc5\xa3", "\xe2\x80\xa1", "\xc2\xb7", "\xe2\x80\x9a", "\xe2\x80\x9e", "\xe2\x80\xb0", "\xc3\x82", "\xc3\x8a", "\xc3\x81", "\xc3\x8b", "\xc3\x88", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x8c", "\xc3\x93", "\xc3\x94", "\xef\xbf\xbd", "\xc3\x92", "\xc3\x9a", "\xc3\x9b", "\xc3\x99", "\xc4\xb1", "\xcb\x86", "\xcb\x9c", "\xc2\xaf", "\xcb\x98", "\xcb\x99", "\xcb\x9a", "\xc2\xb8", "\xcb\x9d", "\xcb\x9b", "\xcb\x87", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x04", 0x00000005 => "\x05", 0x00000006 => "\x06", 0x00000007 => "\x07", 0x00000008 => "\x08", 0x00000009 => "\x09", 0x0000000a => "\x0a", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x14", 0x00000015 => "\x15", 0x00000016 => "\x16", 0x00000017 => "\x17", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x1a", 0x0000001b => "\x1b", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x20", 0x00000021 => "\x21", 0x00000022 => "\x22", 0x00000023 => "\x23", 0x00000024 => "\x24", 0x00000025 => "\x25", 0x00000026 => "\x26", 0x00000027 => "\x27", 0x00000028 => "\x28", 0x00000029 => "\x29", 0x0000002a => "\x2a", 0x0000002b => "\x2b", 0x0000002c => "\x2c", 0x0000002d => "\x2d", 0x0000002e => "\x2e", 0x0000002f => "\x2f", 0x00000030 => "\x30", 0x00000031 => "\x31", 0x00000032 => "\x32", 0x00000033 => "\x33", 0x00000034 => "\x34", 0x00000035 => "\x35", 0x00000036 => "\x36", 0x00000037 => "\x37", 0x00000038 => "\x38", 0x00000039 => "\x39", 0x0000003a => "\x3a", 0x0000003b => "\x3b", 0x0000003c => "\x3c", 0x0000003d => "\x3d", 0x0000003e => "\x3e", 0x0000003f => "\x3f", 0x00000040 => "\x40", 0x00000041 => "\x41", 0x00000042 => "\x42", 0x00000043 => "\x43", 0x00000044 => "\x44", 0x00000045 => "\x45", 0x00000046 => "\x46", 0x00000047 => "\x47", 0x00000048 => "\x48", 0x00000049 => "\x49", 0x0000004a => "\x4a", 0x0000004b => "\x4b", 0x0000004c => "\x4c", 0x0000004d => "\x4d", 0x0000004e => "\x4e", 0x0000004f => "\x4f", 0x00000050 => "\x50", 0x00000051 => "\x51", 0x00000052 => "\x52", 0x00000053 => "\x53", 0x00000054 => "\x54", 0x00000055 => "\x55", 0x00000056 => "\x56", 0x00000057 => "\x57", 0x00000058 => "\x58", 0x00000059 => "\x59", 0x0000005a => "\x5a", 0x0000005b => "\x5b", 0x0000005c => "\x5c", 0x0000005d => "\x5d", 0x0000005e => "\x5e", 0x0000005f => "\x5f", 0x00000060 => "\x60", 0x00000061 => "\x61", 0x00000062 => "\x62", 0x00000063 => "\x63", 0x00000064 => "\x64", 0x00000065 => "\x65", 0x00000066 => "\x66", 0x00000067 => "\x67", 0x00000068 => "\x68", 0x00000069 => "\x69", 0x0000006a => "\x6a", 0x0000006b => "\x6b", 0x0000006c => "\x6c", 0x0000006d => "\x6d", 0x0000006e => "\x6e", 0x0000006f => "\x6f", 0x00000070 => "\x70", 0x00000071 => "\x71", 0x00000072 => "\x72", 0x00000073 => "\x73", 0x00000074 => "\x74", 0x00000075 => "\x75", 0x00000076 => "\x76", 0x00000077 => "\x77", 0x00000078 => "\x78", 0x00000079 => "\x79", 0x0000007a => "\x7a", 0x0000007b => "\x7b", 0x0000007c => "\x7c", 0x0000007d => "\x7d", 0x0000007e => "\x7e", 0x0000007f => "\x7f", 0x000000a0 => "\xca", 0x000000a1 => "\xc1", 0x000000a2 => "\xa2", 0x000000a3 => "\xa3", 0x000000a4 => "\xdb", 0x000000a5 => "\xb4", 0x000000a7 => "\xa4", 0x000000a8 => "\xac", 0x000000a9 => "\xa9", 0x000000aa => "\xbb", 0x000000ab => "\xc7", 0x000000ac => "\xc2", 0x000000ae => "\xa8", 0x000000af => "\xf8", 0x000000b0 => "\xa1", 0x000000b1 => "\xb1", 0x000000b4 => "\xab", 0x000000b5 => "\xb5", 0x000000b6 => "\xa6", 0x000000b7 => "\xe1", 0x000000b8 => "\xfc", 0x000000ba => "\xbc", 0x000000bb => "\xc8", 0x000000bf => "\xc0", 0x000000c0 => "\xcb", 0x000000c1 => "\xe7", 0x000000c2 => "\xe5", 0x000000c3 => "\xcc", 0x000000c4 => "\x80", 0x000000c5 => "\x81", 0x000000c7 => "\x82", 0x000000c8 => "\xe9", 0x000000c9 => "\x83", 0x000000ca => "\xe6", 0x000000cb => "\xe8", 0x000000cc => "\xed", 0x000000cd => "\xea", 0x000000ce => "\xeb", 0x000000cf => "\xec", 0x000000d1 => "\x84", 0x000000d2 => "\xf1", 0x000000d3 => "\xee", 0x000000d4 => "\xef", 0x000000d5 => "\xcd", 0x000000d6 => "\x85", 0x000000d9 => "\xf4", 0x000000da => "\xf2", 0x000000db => "\xf3", 0x000000dc => "\x86", 0x000000df => "\xa7", 0x000000e0 => "\x88", 0x000000e1 => "\x87", 0x000000e2 => "\x89", 0x000000e3 => "\x8b", 0x000000e4 => "\x8a", 0x000000e5 => "\x8c", 0x000000e7 => "\x8d", 0x000000e8 => "\x8f", 0x000000e9 => "\x8e", 0x000000ea => "\x90", 0x000000eb => "\x91", 0x000000ec => "\x93", 0x000000ed => "\x92", 0x000000ee => "\x94", 0x000000ef => "\x95", 0x000000f1 => "\x96", 0x000000f2 => "\x98", 0x000000f3 => "\x97", 0x000000f4 => "\x99", 0x000000f5 => "\x9b", 0x000000f6 => "\x9a", 0x000000f7 => "\xd6", 0x000000f9 => "\x9d", 0x000000fa => "\x9c", 0x000000fb => "\x9e", 0x000000fc => "\x9f", 0x000000ff => "\xd8", 0x00000102 => "\xae", 0x00000103 => "\xbe", 0x00000131 => "\xf5", 0x00000152 => "\xce", 0x00000153 => "\xcf", 0x0000015e => "\xaf", 0x0000015f => "\xbf", 0x00000162 => "\xde", 0x00000163 => "\xdf", 0x00000178 => "\xd9", 0x00000192 => "\xc4", 0x000002c6 => "\xf6", 0x000002c7 => "\xff", 0x000002d8 => "\xf9", 0x000002d9 => "\xfa", 0x000002da => "\xfb", 0x000002db => "\xfe", 0x000002dc => "\xf7", 0x000002dd => "\xfd", 0x000003c0 => "\xb9", 0x00002013 => "\xd0", 0x00002014 => "\xd1", 0x00002018 => "\xd4", 0x00002019 => "\xd5", 0x0000201a => "\xe2", 0x0000201c => "\xd2", 0x0000201d => "\xd3", 0x0000201e => "\xe3", 0x00002020 => "\xa0", 0x00002021 => "\xe0", 0x00002022 => "\xa5", 0x00002026 => "\xc9", 0x00002030 => "\xe4", 0x00002039 => "\xdc", 0x0000203a => "\xdd", 0x00002044 => "\xda", 0x00002122 => "\xaa", 0x00002126 => "\xbd", 0x00002202 => "\xb6", 0x00002206 => "\xc6", 0x0000220f => "\xb8", 0x00002211 => "\xb7", 0x0000221a => "\xc3", 0x0000221e => "\xb0", 0x0000222b => "\xba", 0x00002248 => "\xc5", 0x00002260 => "\xad", 0x00002264 => "\xb2", 0x00002265 => "\xb3", 0x000025ca => "\xd7", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::MACROMANIA - Conversion routines for MACROMANIA =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for MACROMANIA. =head1 COMMENTS The following comments have been extracted from the original charmap: This charmap has been generated automatically from GNU libiconv conversions. Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 00000004 | END OF TRANSMISSION (EOT) 05 | 00000005 | ENQUIRY (ENQ) 06 | 00000006 | ACKNOWLEDGE (ACK) 07 | 00000007 | BELL (BEL) 08 | 00000008 | BACKSPACE (BS) 09 | 00000009 | CHARACTER TABULATION (HT) 0A | 0000000A | LINE FEED (LF) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 00000014 | DEVICE CONTROL FOUR (DC4) 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 16 | 00000016 | SYNCHRONOUS IDLE (SYN) 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 0000001A | SUBSTITUTE (SUB) 1B | 0000001B | ESCAPE (ESC) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000020 | SPACE 21 | 00000021 | EXCLAMATION MARK 22 | 00000022 | QUOTATION MARK 23 | 00000023 | NUMBER SIGN 24 | 00000024 | DOLLAR SIGN 25 | 00000025 | PERCENT SIGN 26 | 00000026 | AMPERSAND 27 | 00000027 | APOSTROPHE 28 | 00000028 | LEFT PARENTHESIS 29 | 00000029 | RIGHT PARENTHESIS 2A | 0000002A | ASTERISK 2B | 0000002B | PLUS SIGN 2C | 0000002C | COMMA 2D | 0000002D | HYPHEN-MINUS 2E | 0000002E | FULL STOP 2F | 0000002F | SOLIDUS 30 | 00000030 | DIGIT ZERO 31 | 00000031 | DIGIT ONE 32 | 00000032 | DIGIT TWO 33 | 00000033 | DIGIT THREE 34 | 00000034 | DIGIT FOUR 35 | 00000035 | DIGIT FIVE 36 | 00000036 | DIGIT SIX 37 | 00000037 | DIGIT SEVEN 38 | 00000038 | DIGIT EIGHT 39 | 00000039 | DIGIT NINE 3A | 0000003A | COLON 3B | 0000003B | SEMICOLON 3C | 0000003C | LESS-THAN SIGN 3D | 0000003D | EQUALS SIGN 3E | 0000003E | GREATER-THAN SIGN 3F | 0000003F | QUESTION MARK 40 | 00000040 | COMMERCIAL AT 41 | 00000041 | LATIN CAPITAL LETTER A 42 | 00000042 | LATIN CAPITAL LETTER B 43 | 00000043 | LATIN CAPITAL LETTER C 44 | 00000044 | LATIN CAPITAL LETTER D 45 | 00000045 | LATIN CAPITAL LETTER E 46 | 00000046 | LATIN CAPITAL LETTER F 47 | 00000047 | LATIN CAPITAL LETTER G 48 | 00000048 | LATIN CAPITAL LETTER H 49 | 00000049 | LATIN CAPITAL LETTER I 4A | 0000004A | LATIN CAPITAL LETTER J 4B | 0000004B | LATIN CAPITAL LETTER K 4C | 0000004C | LATIN CAPITAL LETTER L 4D | 0000004D | LATIN CAPITAL LETTER M 4E | 0000004E | LATIN CAPITAL LETTER N 4F | 0000004F | LATIN CAPITAL LETTER O 50 | 00000050 | LATIN CAPITAL LETTER P 51 | 00000051 | LATIN CAPITAL LETTER Q 52 | 00000052 | LATIN CAPITAL LETTER R 53 | 00000053 | LATIN CAPITAL LETTER S 54 | 00000054 | LATIN CAPITAL LETTER T 55 | 00000055 | LATIN CAPITAL LETTER U 56 | 00000056 | LATIN CAPITAL LETTER V 57 | 00000057 | LATIN CAPITAL LETTER W 58 | 00000058 | LATIN CAPITAL LETTER X 59 | 00000059 | LATIN CAPITAL LETTER Y 5A | 0000005A | LATIN CAPITAL LETTER Z 5B | 0000005B | LEFT SQUARE BRACKET 5C | 0000005C | REVERSE SOLIDUS 5D | 0000005D | RIGHT SQUARE BRACKET 5E | 0000005E | CIRCUMFLEX ACCENT 5F | 0000005F | LOW LINE 60 | 00000060 | GRAVE ACCENT 61 | 00000061 | LATIN SMALL LETTER A 62 | 00000062 | LATIN SMALL LETTER B 63 | 00000063 | LATIN SMALL LETTER C 64 | 00000064 | LATIN SMALL LETTER D 65 | 00000065 | LATIN SMALL LETTER E 66 | 00000066 | LATIN SMALL LETTER F 67 | 00000067 | LATIN SMALL LETTER G 68 | 00000068 | LATIN SMALL LETTER H 69 | 00000069 | LATIN SMALL LETTER I 6A | 0000006A | LATIN SMALL LETTER J 6B | 0000006B | LATIN SMALL LETTER K 6C | 0000006C | LATIN SMALL LETTER L 6D | 0000006D | LATIN SMALL LETTER M 6E | 0000006E | LATIN SMALL LETTER N 6F | 0000006F | LATIN SMALL LETTER O 70 | 00000070 | LATIN SMALL LETTER P 71 | 00000071 | LATIN SMALL LETTER Q 72 | 00000072 | LATIN SMALL LETTER R 73 | 00000073 | LATIN SMALL LETTER S 74 | 00000074 | LATIN SMALL LETTER T 75 | 00000075 | LATIN SMALL LETTER U 76 | 00000076 | LATIN SMALL LETTER V 77 | 00000077 | LATIN SMALL LETTER W 78 | 00000078 | LATIN SMALL LETTER X 79 | 00000079 | LATIN SMALL LETTER Y 7A | 0000007A | LATIN SMALL LETTER Z 7B | 0000007B | LEFT CURLY BRACKET 7C | 0000007C | VERTICAL LINE 7D | 0000007D | RIGHT CURLY BRACKET 7E | 0000007E | TILDE 7F | 0000007F | DELETE (DEL) 80 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 81 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 82 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 83 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 84 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 85 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 86 | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS 87 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 88 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 89 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 8A | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 8B | 000000E3 | LATIN SMALL LETTER A WITH TILDE 8C | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 8D | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 8E | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 8F | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 90 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 91 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 92 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 93 | 000000EC | LATIN SMALL LETTER I WITH GRAVE 94 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 95 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 96 | 000000F1 | LATIN SMALL LETTER N WITH TILDE 97 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE 98 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE 99 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX 9A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS 9B | 000000F5 | LATIN SMALL LETTER O WITH TILDE 9C | 000000FA | LATIN SMALL LETTER U WITH ACUTE 9D | 000000F9 | LATIN SMALL LETTER U WITH GRAVE 9E | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX 9F | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS A0 | 00002020 | DAGGER A1 | 000000B0 | DEGREE SIGN A2 | 000000A2 | CENT SIGN A3 | 000000A3 | POUND SIGN A4 | 000000A7 | SECTION SIGN A5 | 00002022 | BULLET A6 | 000000B6 | PILCROW SIGN A7 | 000000DF | LATIN SMALL LETTER SHARP S A8 | 000000AE | REGISTERED SIGN A9 | 000000A9 | COPYRIGHT SIGN AA | 00002122 | TRADE MARK SIGN AB | 000000B4 | ACUTE ACCENT AC | 000000A8 | DIAERESIS AD | 00002260 | NOT EQUAL TO AE | 00000102 | LATIN CAPITAL LETTER A WITH BREVE AF | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA B0 | 0000221E | INFINITY B1 | 000000B1 | PLUS-MINUS SIGN B2 | 00002264 | LESS-THAN OR EQUAL TO B3 | 00002265 | GREATER-THAN OR EQUAL TO B4 | 000000A5 | YEN SIGN B5 | 000000B5 | MICRO SIGN B6 | 00002202 | PARTIAL DIFFERENTIAL B7 | 00002211 | N-ARY SUMMATION B8 | 0000220F | N-ARY PRODUCT B9 | 000003C0 | GREEK SMALL LETTER PI BA | 0000222B | INTEGRAL BB | 000000AA | FEMININE ORDINAL INDICATOR BC | 000000BA | MASCULINE ORDINAL INDICATOR BD | 00002126 | OHM SIGN BE | 00000103 | LATIN SMALL LETTER A WITH BREVE BF | 0000015F | LATIN SMALL LETTER S WITH CEDILLA C0 | 000000BF | INVERTED QUESTION MARK C1 | 000000A1 | INVERTED EXCLAMATION MARK C2 | 000000AC | NOT SIGN C3 | 0000221A | SQUARE ROOT C4 | 00000192 | LATIN SMALL LETTER F WITH HOOK C5 | 00002248 | ALMOST EQUAL TO C6 | 00002206 | INCREMENT C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK C8 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK C9 | 00002026 | HORIZONTAL ELLIPSIS CA | 000000A0 | NO-BREAK SPACE CB | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE CC | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE CD | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE CE | 00000152 | LATIN CAPITAL LIGATURE OE CF | 00000153 | LATIN SMALL LIGATURE OE D0 | 00002013 | EN DASH D1 | 00002014 | EM DASH D2 | 0000201C | LEFT DOUBLE QUOTATION MARK D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK D4 | 00002018 | LEFT SINGLE QUOTATION MARK D5 | 00002019 | RIGHT SINGLE QUOTATION MARK D6 | 000000F7 | DIVISION SIGN D7 | 000025CA | LOZENGE D8 | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS D9 | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS DA | 00002044 | FRACTION SLASH DB | 000000A4 | CURRENCY SIGN DC | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK DD | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK DE | 00000162 | LATIN CAPITAL LETTER T WITH CEDILLA DF | 00000163 | LATIN SMALL LETTER T WITH CEDILLA E0 | 00002021 | DOUBLE DAGGER E1 | 000000B7 | MIDDLE DOT E2 | 0000201A | SINGLE LOW-9 QUOTATION MARK E3 | 0000201E | DOUBLE LOW-9 QUOTATION MARK E4 | 00002030 | PER MILLE SIGN E5 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX E6 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX E7 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE E8 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS E9 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE EA | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE EB | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX EC | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS ED | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE EF | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX F1 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE F2 | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE F3 | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX F4 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE F5 | 00000131 | LATIN SMALL LETTER DOTLESS I F6 | 000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT F7 | 000002DC | SMALL TILDE F8 | 000000AF | MACRON F9 | 000002D8 | BREVE FA | 000002D9 | DOT ABOVE FB | 000002DA | RING ABOVE FC | 000000B8 | CEDILLA FD | 000002DD | DOUBLE ACUTE ACCENT FE | 000002DB | OGONEK FF | 000002C7 | CARON =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]%\jjRecodeData/IBM871.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Conversion routines for IBM871. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::RecodeData::IBM871; use strict; require Locale::RecodeData; use base qw(Locale::RecodeData); my @to_ucs4 = ( 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00fe, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00c6, 0x0024, 0x002a, 0x0029, 0x003b, 0x00d6, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f0, 0x003a, 0x0023, 0x00d0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0060, 0x00fd, 0x007b, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007d, 0x00b8, 0x005d, 0x00a4, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0040, 0x00dd, 0x005b, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x005c, 0x00d7, 0x00de, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x00e6, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x00b4, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005e, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, ); my @to_utf8 = ( "\x00", "\x01", "\x02", "\x03", "\xc2\x9c", "\x09", "\xc2\x86", "\x7f", "\xc2\x97", "\xc2\x8d", "\xc2\x8e", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x10", "\x11", "\x12", "\x13", "\xc2\x9d", "\xc2\x85", "\x08", "\xc2\x87", "\x18", "\x19", "\xc2\x92", "\xc2\x8f", "\x1c", "\x1d", "\x1e", "\x1f", "\xc2\x80", "\xc2\x81", "\xc2\x82", "\xc2\x83", "\xc2\x84", "\x0a", "\x17", "\x1b", "\xc2\x88", "\xc2\x89", "\xc2\x8a", "\xc2\x8b", "\xc2\x8c", "\x05", "\x06", "\x07", "\xc2\x90", "\xc2\x91", "\x16", "\xc2\x93", "\xc2\x94", "\xc2\x95", "\xc2\x96", "\x04", "\xc2\x98", "\xc2\x99", "\xc2\x9a", "\xc2\x9b", "\x14", "\x15", "\xc2\x9e", "\x1a", "\x20", "\xc2\xa0", "\xc3\xa2", "\xc3\xa4", "\xc3\xa0", "\xc3\xa1", "\xc3\xa3", "\xc3\xa5", "\xc3\xa7", "\xc3\xb1", "\xc3\xbe", "\x2e", "\x3c", "\x28", "\x2b", "\x21", "\x26", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xa8", "\xc3\xad", "\xc3\xae", "\xc3\xaf", "\xc3\xac", "\xc3\x9f", "\xc3\x86", "\x24", "\x2a", "\x29", "\x3b", "\xc3\x96", "\x2d", "\x2f", "\xc3\x82", "\xc3\x84", "\xc3\x80", "\xc3\x81", "\xc3\x83", "\xc3\x85", "\xc3\x87", "\xc3\x91", "\xc2\xa6", "\x2c", "\x25", "\x5f", "\x3e", "\x3f", "\xc3\xb8", "\xc3\x89", "\xc3\x8a", "\xc3\x8b", "\xc3\x88", "\xc3\x8d", "\xc3\x8e", "\xc3\x8f", "\xc3\x8c", "\xc3\xb0", "\x3a", "\x23", "\xc3\x90", "\x27", "\x3d", "\x22", "\xc3\x98", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\xc2\xab", "\xc2\xbb", "\x60", "\xc3\xbd", "\x7b", "\xc2\xb1", "\xc2\xb0", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\xc2\xaa", "\xc2\xba", "\x7d", "\xc2\xb8", "\x5d", "\xc2\xa4", "\xc2\xb5", "\xc3\xb6", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\xc2\xa1", "\xc2\xbf", "\x40", "\xc3\x9d", "\x5b", "\xc2\xae", "\xc2\xa2", "\xc2\xa3", "\xc2\xa5", "\xc2\xb7", "\xc2\xa9", "\xc2\xa7", "\xc2\xb6", "\xc2\xbc", "\xc2\xbd", "\xc2\xbe", "\xc2\xac", "\x7c", "\xc2\xaf", "\xc2\xa8", "\x5c", "\xc3\x97", "\xc3\x9e", "\x41", "\x42", "\x43", "\x44", "\x45", "\x46", "\x47", "\x48", "\x49", "\xc2\xad", "\xc3\xb4", "\x7e", "\xc3\xb2", "\xc3\xb3", "\xc3\xb5", "\xc3\xa6", "\x4a", "\x4b", "\x4c", "\x4d", "\x4e", "\x4f", "\x50", "\x51", "\x52", "\xc2\xb9", "\xc3\xbb", "\xc3\xbc", "\xc3\xb9", "\xc3\xba", "\xc3\xbf", "\xc2\xb4", "\xc3\xb7", "\x53", "\x54", "\x55", "\x56", "\x57", "\x58", "\x59", "\x5a", "\xc2\xb2", "\xc3\x94", "\x5e", "\xc3\x92", "\xc3\x93", "\xc3\x95", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\xc2\xb3", "\xc3\x9b", "\xc3\x9c", "\xc3\x99", "\xc3\x9a", "\xc2\x9f", ); my %from_ucs4 = ( 0x00000000 => "\x00", 0x00000001 => "\x01", 0x00000002 => "\x02", 0x00000003 => "\x03", 0x00000004 => "\x37", 0x00000005 => "\x2d", 0x00000006 => "\x2e", 0x00000007 => "\x2f", 0x00000008 => "\x16", 0x00000009 => "\x05", 0x0000000a => "\x25", 0x0000000b => "\x0b", 0x0000000c => "\x0c", 0x0000000d => "\x0d", 0x0000000e => "\x0e", 0x0000000f => "\x0f", 0x00000010 => "\x10", 0x00000011 => "\x11", 0x00000012 => "\x12", 0x00000013 => "\x13", 0x00000014 => "\x3c", 0x00000015 => "\x3d", 0x00000016 => "\x32", 0x00000017 => "\x26", 0x00000018 => "\x18", 0x00000019 => "\x19", 0x0000001a => "\x3f", 0x0000001b => "\x27", 0x0000001c => "\x1c", 0x0000001d => "\x1d", 0x0000001e => "\x1e", 0x0000001f => "\x1f", 0x00000020 => "\x40", 0x00000021 => "\x4f", 0x00000022 => "\x7f", 0x00000023 => "\x7b", 0x00000024 => "\x5b", 0x00000025 => "\x6c", 0x00000026 => "\x50", 0x00000027 => "\x7d", 0x00000028 => "\x4d", 0x00000029 => "\x5d", 0x0000002a => "\x5c", 0x0000002b => "\x4e", 0x0000002c => "\x6b", 0x0000002d => "\x60", 0x0000002e => "\x4b", 0x0000002f => "\x61", 0x00000030 => "\xf0", 0x00000031 => "\xf1", 0x00000032 => "\xf2", 0x00000033 => "\xf3", 0x00000034 => "\xf4", 0x00000035 => "\xf5", 0x00000036 => "\xf6", 0x00000037 => "\xf7", 0x00000038 => "\xf8", 0x00000039 => "\xf9", 0x0000003a => "\x7a", 0x0000003b => "\x5e", 0x0000003c => "\x4c", 0x0000003d => "\x7e", 0x0000003e => "\x6e", 0x0000003f => "\x6f", 0x00000040 => "\xac", 0x00000041 => "\xc1", 0x00000042 => "\xc2", 0x00000043 => "\xc3", 0x00000044 => "\xc4", 0x00000045 => "\xc5", 0x00000046 => "\xc6", 0x00000047 => "\xc7", 0x00000048 => "\xc8", 0x00000049 => "\xc9", 0x0000004a => "\xd1", 0x0000004b => "\xd2", 0x0000004c => "\xd3", 0x0000004d => "\xd4", 0x0000004e => "\xd5", 0x0000004f => "\xd6", 0x00000050 => "\xd7", 0x00000051 => "\xd8", 0x00000052 => "\xd9", 0x00000053 => "\xe2", 0x00000054 => "\xe3", 0x00000055 => "\xe4", 0x00000056 => "\xe5", 0x00000057 => "\xe6", 0x00000058 => "\xe7", 0x00000059 => "\xe8", 0x0000005a => "\xe9", 0x0000005b => "\xae", 0x0000005c => "\xbe", 0x0000005d => "\x9e", 0x0000005e => "\xec", 0x0000005f => "\x6d", 0x00000060 => "\x8c", 0x00000061 => "\x81", 0x00000062 => "\x82", 0x00000063 => "\x83", 0x00000064 => "\x84", 0x00000065 => "\x85", 0x00000066 => "\x86", 0x00000067 => "\x87", 0x00000068 => "\x88", 0x00000069 => "\x89", 0x0000006a => "\x91", 0x0000006b => "\x92", 0x0000006c => "\x93", 0x0000006d => "\x94", 0x0000006e => "\x95", 0x0000006f => "\x96", 0x00000070 => "\x97", 0x00000071 => "\x98", 0x00000072 => "\x99", 0x00000073 => "\xa2", 0x00000074 => "\xa3", 0x00000075 => "\xa4", 0x00000076 => "\xa5", 0x00000077 => "\xa6", 0x00000078 => "\xa7", 0x00000079 => "\xa8", 0x0000007a => "\xa9", 0x0000007b => "\x8e", 0x0000007c => "\xbb", 0x0000007d => "\x9c", 0x0000007e => "\xcc", 0x0000007f => "\x07", 0x00000080 => "\x20", 0x00000081 => "\x21", 0x00000082 => "\x22", 0x00000083 => "\x23", 0x00000084 => "\x24", 0x00000085 => "\x15", 0x00000086 => "\x06", 0x00000087 => "\x17", 0x00000088 => "\x28", 0x00000089 => "\x29", 0x0000008a => "\x2a", 0x0000008b => "\x2b", 0x0000008c => "\x2c", 0x0000008d => "\x09", 0x0000008e => "\x0a", 0x0000008f => "\x1b", 0x00000090 => "\x30", 0x00000091 => "\x31", 0x00000092 => "\x1a", 0x00000093 => "\x33", 0x00000094 => "\x34", 0x00000095 => "\x35", 0x00000096 => "\x36", 0x00000097 => "\x08", 0x00000098 => "\x38", 0x00000099 => "\x39", 0x0000009a => "\x3a", 0x0000009b => "\x3b", 0x0000009c => "\x04", 0x0000009d => "\x14", 0x0000009e => "\x3e", 0x0000009f => "\xff", 0x000000a0 => "\x41", 0x000000a1 => "\xaa", 0x000000a2 => "\xb0", 0x000000a3 => "\xb1", 0x000000a4 => "\x9f", 0x000000a5 => "\xb2", 0x000000a6 => "\x6a", 0x000000a7 => "\xb5", 0x000000a8 => "\xbd", 0x000000a9 => "\xb4", 0x000000aa => "\x9a", 0x000000ab => "\x8a", 0x000000ac => "\xba", 0x000000ad => "\xca", 0x000000ae => "\xaf", 0x000000af => "\xbc", 0x000000b0 => "\x90", 0x000000b1 => "\x8f", 0x000000b2 => "\xea", 0x000000b3 => "\xfa", 0x000000b4 => "\xe0", 0x000000b5 => "\xa0", 0x000000b6 => "\xb6", 0x000000b7 => "\xb3", 0x000000b8 => "\x9d", 0x000000b9 => "\xda", 0x000000ba => "\x9b", 0x000000bb => "\x8b", 0x000000bc => "\xb7", 0x000000bd => "\xb8", 0x000000be => "\xb9", 0x000000bf => "\xab", 0x000000c0 => "\x64", 0x000000c1 => "\x65", 0x000000c2 => "\x62", 0x000000c3 => "\x66", 0x000000c4 => "\x63", 0x000000c5 => "\x67", 0x000000c6 => "\x5a", 0x000000c7 => "\x68", 0x000000c8 => "\x74", 0x000000c9 => "\x71", 0x000000ca => "\x72", 0x000000cb => "\x73", 0x000000cc => "\x78", 0x000000cd => "\x75", 0x000000ce => "\x76", 0x000000cf => "\x77", 0x000000d0 => "\x7c", 0x000000d1 => "\x69", 0x000000d2 => "\xed", 0x000000d3 => "\xee", 0x000000d4 => "\xeb", 0x000000d5 => "\xef", 0x000000d6 => "\x5f", 0x000000d7 => "\xbf", 0x000000d8 => "\x80", 0x000000d9 => "\xfd", 0x000000da => "\xfe", 0x000000db => "\xfb", 0x000000dc => "\xfc", 0x000000dd => "\xad", 0x000000de => "\xc0", 0x000000df => "\x59", 0x000000e0 => "\x44", 0x000000e1 => "\x45", 0x000000e2 => "\x42", 0x000000e3 => "\x46", 0x000000e4 => "\x43", 0x000000e5 => "\x47", 0x000000e6 => "\xd0", 0x000000e7 => "\x48", 0x000000e8 => "\x54", 0x000000e9 => "\x51", 0x000000ea => "\x52", 0x000000eb => "\x53", 0x000000ec => "\x58", 0x000000ed => "\x55", 0x000000ee => "\x56", 0x000000ef => "\x57", 0x000000f0 => "\x79", 0x000000f1 => "\x49", 0x000000f2 => "\xcd", 0x000000f3 => "\xce", 0x000000f4 => "\xcb", 0x000000f5 => "\xcf", 0x000000f6 => "\xa1", 0x000000f7 => "\xe1", 0x000000f8 => "\x70", 0x000000f9 => "\xdd", 0x000000fa => "\xde", 0x000000fb => "\xdb", 0x000000fc => "\xdc", 0x000000fd => "\x8d", 0x000000fe => "\x4a", 0x000000ff => "\xdf", ); sub _recode { if ($_[0]->{_from} eq 'INTERNAL') { $_[1] = join '', map $from_ucs4{$_} || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"), @{$_[1]}; } elsif ($_[0]->{_to} eq 'UTF-8',) { $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1]; } else { $_[1] = [ map $to_ucs4[$_], unpack 'C*', $_[1] ]; } return 1; } 1; __END__ =head1 NAME Locale::RecodeData::IBM871 - Conversion routines for IBM871 =head1 SYNOPSIS This module is internal to libintl. Do not use directly! =head1 DESCRIPTION This module is generated and contains the conversion tables and routines for IBM871. =head1 COMMENTS The following comments have been extracted from the original charmap: version: 1.0 source: IBM NLS RM Vol2 SE09-8002-01, March 1990 alias CP871 alias EBCDIC-CP-IS Please note that aliases listed above are not necessarily valid! =head1 CHARACTER TABLE The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. Local | ISO-10646 | Description -------+-----------+------------------------------------------------- 00 | 00000000 | NULL (NUL) 01 | 00000001 | START OF HEADING (SOH) 02 | 00000002 | START OF TEXT (STX) 03 | 00000003 | END OF TEXT (ETX) 04 | 0000009C | STRING TERMINATOR (ST) 05 | 00000009 | CHARACTER TABULATION (HT) 06 | 00000086 | START OF SELECTED AREA (SSA) 07 | 0000007F | DELETE (DEL) 08 | 00000097 | END OF GUARDED AREA (EPA) 09 | 0000008D | REVERSE LINE FEED (RI) 0A | 0000008E | SINGLE-SHIFT TWO (SS2) 0B | 0000000B | LINE TABULATION (VT) 0C | 0000000C | FORM FEED (FF) 0D | 0000000D | CARRIAGE RETURN (CR) 0E | 0000000E | SHIFT OUT (SO) 0F | 0000000F | SHIFT IN (SI) 10 | 00000010 | DATALINK ESCAPE (DLE) 11 | 00000011 | DEVICE CONTROL ONE (DC1) 12 | 00000012 | DEVICE CONTROL TWO (DC2) 13 | 00000013 | DEVICE CONTROL THREE (DC3) 14 | 0000009D | OPERATING SYSTEM COMMAND (OSC) 15 | 00000085 | NEXT LINE (NEL) 16 | 00000008 | BACKSPACE (BS) 17 | 00000087 | END OF SELECTED AREA (ESA) 18 | 00000018 | CANCEL (CAN) 19 | 00000019 | END OF MEDIUM (EM) 1A | 00000092 | PRIVATE USE TWO (PU2) 1B | 0000008F | SINGLE-SHIFT THREE (SS3) 1C | 0000001C | FILE SEPARATOR (IS4) 1D | 0000001D | GROUP SEPARATOR (IS3) 1E | 0000001E | RECORD SEPARATOR (IS2) 1F | 0000001F | UNIT SEPARATOR (IS1) 20 | 00000080 | PADDING CHARACTER (PAD) 21 | 00000081 | HIGH OCTET PRESET (HOP) 22 | 00000082 | BREAK PERMITTED HERE (BPH) 23 | 00000083 | NO BREAK HERE (NBH) 24 | 00000084 | INDEX (IND) 25 | 0000000A | LINE FEED (LF) 26 | 00000017 | END OF TRANSMISSION BLOCK (ETB) 27 | 0000001B | ESCAPE (ESC) 28 | 00000088 | CHARACTER TABULATION SET (HTS) 29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ) 2A | 0000008A | LINE TABULATION SET (VTS) 2B | 0000008B | PARTIAL LINE FORWARD (PLD) 2C | 0000008C | PARTIAL LINE BACKWARD (PLU) 2D | 00000005 | ENQUIRY (ENQ) 2E | 00000006 | ACKNOWLEDGE (ACK) 2F | 00000007 | BELL (BEL) 30 | 00000090 | DEVICE CONTROL STRING (DCS) 31 | 00000091 | PRIVATE USE ONE (PU1) 32 | 00000016 | SYNCHRONOUS IDLE (SYN) 33 | 00000093 | SET TRANSMIT STATE (STS) 34 | 00000094 | CANCEL CHARACTER (CCH) 35 | 00000095 | MESSAGE WAITING (MW) 36 | 00000096 | START OF GUARDED AREA (SPA) 37 | 00000004 | END OF TRANSMISSION (EOT) 38 | 00000098 | START OF STRING (SOS) 39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) 3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI) 3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI) 3C | 00000014 | DEVICE CONTROL FOUR (DC4) 3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) 3E | 0000009E | PRIVACY MESSAGE (PM) 3F | 0000001A | SUBSTITUTE (SUB) 40 | 00000020 | SPACE 41 | 000000A0 | NO-BREAK SPACE 42 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX 43 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS 44 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE 45 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE 46 | 000000E3 | LATIN SMALL LETTER A WITH TILDE 47 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE 48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA 49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE 4A | 000000FE | LATIN SMALL LETTER THORN (Icelandic) 4B | 0000002E | FULL STOP 4C | 0000003C | LESS-THAN SIGN 4D | 00000028 | LEFT PARENTHESIS 4E | 0000002B | PLUS SIGN 4F | 00000021 | EXCLAMATION MARK 50 | 00000026 | AMPERSAND 51 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE 52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX 53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS 54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE 55 | 000000ED | LATIN SMALL LETTER I WITH ACUTE 56 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX 57 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS 58 | 000000EC | LATIN SMALL LETTER I WITH GRAVE 59 | 000000DF | LATIN SMALL LETTER SHARP S (German) 5A | 000000C6 | LATIN CAPITAL LETTER AE 5B | 00000024 | DOLLAR SIGN 5C | 0000002A | ASTERISK 5D | 00000029 | RIGHT PARENTHESIS 5E | 0000003B | SEMICOLON 5F | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS 60 | 0000002D | HYPHEN-MINUS 61 | 0000002F | SOLIDUS 62 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX 63 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS 64 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE 65 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE 66 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE 67 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE 68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA 69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE 6A | 000000A6 | BROKEN BAR 6B | 0000002C | COMMA 6C | 00000025 | PERCENT SIGN 6D | 0000005F | LOW LINE 6E | 0000003E | GREATER-THAN SIGN 6F | 0000003F | QUESTION MARK 70 | 000000F8 | LATIN SMALL LETTER O WITH STROKE 71 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE 72 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX 73 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS 74 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE 75 | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE 76 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX 77 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS 78 | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE 79 | 000000F0 | LATIN SMALL LETTER ETH (Icelandic) 7A | 0000003A | COLON 7B | 00000023 | NUMBER SIGN 7C | 000000D0 | LATIN CAPITAL LETTER ETH (Icelandic) 7D | 00000027 | APOSTROPHE 7E | 0000003D | EQUALS SIGN 7F | 00000022 | QUOTATION MARK 80 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE 81 | 00000061 | LATIN SMALL LETTER A 82 | 00000062 | LATIN SMALL LETTER B 83 | 00000063 | LATIN SMALL LETTER C 84 | 00000064 | LATIN SMALL LETTER D 85 | 00000065 | LATIN SMALL LETTER E 86 | 00000066 | LATIN SMALL LETTER F 87 | 00000067 | LATIN SMALL LETTER G 88 | 00000068 | LATIN SMALL LETTER H 89 | 00000069 | LATIN SMALL LETTER I 8A | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 8B | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 8C | 00000060 | GRAVE ACCENT 8D | 000000FD | LATIN SMALL LETTER Y WITH ACUTE 8E | 0000007B | LEFT CURLY BRACKET 8F | 000000B1 | PLUS-MINUS SIGN 90 | 000000B0 | DEGREE SIGN 91 | 0000006A | LATIN SMALL LETTER J 92 | 0000006B | LATIN SMALL LETTER K 93 | 0000006C | LATIN SMALL LETTER L 94 | 0000006D | LATIN SMALL LETTER M 95 | 0000006E | LATIN SMALL LETTER N 96 | 0000006F | LATIN SMALL LETTER O 97 | 00000070 | LATIN SMALL LETTER P 98 | 00000071 | LATIN SMALL LETTER Q 99 | 00000072 | LATIN SMALL LETTER R 9A | 000000AA | FEMININE ORDINAL INDICATOR 9B | 000000BA | MASCULINE ORDINAL INDICATOR 9C | 0000007D | RIGHT CURLY BRACKET 9D | 000000B8 | CEDILLA 9E | 0000005D | RIGHT SQUARE BRACKET 9F | 000000A4 | CURRENCY SIGN A0 | 000000B5 | MICRO SIGN A1 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS A2 | 00000073 | LATIN SMALL LETTER S A3 | 00000074 | LATIN SMALL LETTER T A4 | 00000075 | LATIN SMALL LETTER U A5 | 00000076 | LATIN SMALL LETTER V A6 | 00000077 | LATIN SMALL LETTER W A7 | 00000078 | LATIN SMALL LETTER X A8 | 00000079 | LATIN SMALL LETTER Y A9 | 0000007A | LATIN SMALL LETTER Z AA | 000000A1 | INVERTED EXCLAMATION MARK AB | 000000BF | INVERTED QUESTION MARK AC | 00000040 | COMMERCIAL AT AD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE AE | 0000005B | LEFT SQUARE BRACKET AF | 000000AE | REGISTERED SIGN B0 | 000000A2 | CENT SIGN B1 | 000000A3 | POUND SIGN B2 | 000000A5 | YEN SIGN B3 | 000000B7 | MIDDLE DOT B4 | 000000A9 | COPYRIGHT SIGN B5 | 000000A7 | SECTION SIGN B6 | 000000B6 | PILCROW SIGN B7 | 000000BC | VULGAR FRACTION ONE QUARTER B8 | 000000BD | VULGAR FRACTION ONE HALF B9 | 000000BE | VULGAR FRACTION THREE QUARTERS BA | 000000AC | NOT SIGN BB | 0000007C | VERTICAL LINE BC | 000000AF | MACRON BD | 000000A8 | DIAERESIS BE | 0000005C | REVERSE SOLIDUS BF | 000000D7 | MULTIPLICATION SIGN C0 | 000000DE | LATIN CAPITAL LETTER THORN (Icelandic) C1 | 00000041 | LATIN CAPITAL LETTER A C2 | 00000042 | LATIN CAPITAL LETTER B C3 | 00000043 | LATIN CAPITAL LETTER C C4 | 00000044 | LATIN CAPITAL LETTER D C5 | 00000045 | LATIN CAPITAL LETTER E C6 | 00000046 | LATIN CAPITAL LETTER F C7 | 00000047 | LATIN CAPITAL LETTER G C8 | 00000048 | LATIN CAPITAL LETTER H C9 | 00000049 | LATIN CAPITAL LETTER I CA | 000000AD | SOFT HYPHEN CB | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX CC | 0000007E | TILDE CD | 000000F2 | LATIN SMALL LETTER O WITH GRAVE CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE D0 | 000000E6 | LATIN SMALL LETTER AE D1 | 0000004A | LATIN CAPITAL LETTER J D2 | 0000004B | LATIN CAPITAL LETTER K D3 | 0000004C | LATIN CAPITAL LETTER L D4 | 0000004D | LATIN CAPITAL LETTER M D5 | 0000004E | LATIN CAPITAL LETTER N D6 | 0000004F | LATIN CAPITAL LETTER O D7 | 00000050 | LATIN CAPITAL LETTER P D8 | 00000051 | LATIN CAPITAL LETTER Q D9 | 00000052 | LATIN CAPITAL LETTER R DA | 000000B9 | SUPERSCRIPT ONE DB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX DC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS DD | 000000F9 | LATIN SMALL LETTER U WITH GRAVE DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS E0 | 000000B4 | ACUTE ACCENT E1 | 000000F7 | DIVISION SIGN E2 | 00000053 | LATIN CAPITAL LETTER S E3 | 00000054 | LATIN CAPITAL LETTER T E4 | 00000055 | LATIN CAPITAL LETTER U E5 | 00000056 | LATIN CAPITAL LETTER V E6 | 00000057 | LATIN CAPITAL LETTER W E7 | 00000058 | LATIN CAPITAL LETTER X E8 | 00000059 | LATIN CAPITAL LETTER Y E9 | 0000005A | LATIN CAPITAL LETTER Z EA | 000000B2 | SUPERSCRIPT TWO EB | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX EC | 0000005E | CIRCUMFLEX ACCENT ED | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE EE | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE EF | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE F0 | 00000030 | DIGIT ZERO F1 | 00000031 | DIGIT ONE F2 | 00000032 | DIGIT TWO F3 | 00000033 | DIGIT THREE F4 | 00000034 | DIGIT FOUR F5 | 00000035 | DIGIT FIVE F6 | 00000036 | DIGIT SIX F7 | 00000037 | DIGIT SEVEN F8 | 00000038 | DIGIT EIGHT F9 | 00000039 | DIGIT NINE FA | 000000B3 | SUPERSCRIPT THREE FB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX FC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS FD | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE FE | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE FF | 0000009F | APPLICATION PROGRAM COMMAND (APC) =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::RecodeData(3), Locale::Recode(3), perl(1) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]އ TextDomain.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # High-level interface to Perl i18n. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package __TiedTextDomain; use strict; sub TIEHASH { my ($class, $function) = @_; bless { __function => $function, }, $class; } sub FETCH { my ($self, $msg) = @_; &{$self->{__function}} ($msg); } sub FIRSTKEY { my $self = shift; my $reset_iterator = keys %$self; return scalar each %$self; } sub NEXTKEY { my $self = shift; return scalar each %$self; } sub CLEAR {} sub STORE {} sub DELETE {} 1; package Locale::TextDomain; use strict; use Locale::Messages qw (textdomain bindtextdomain dgettext dngettext dpgettext dnpgettext); use Cwd qw (abs_path); use vars qw ($VERSION); $VERSION = '1.33'; require Exporter; use vars qw (@ISA @EXPORT %__ $__); @ISA = ('Exporter'); @EXPORT = qw (__ __x __n __nx __xn __p __px __np __npx $__ %__ N__ N__n N__p N__np); my %textdomains = (); my %bound_dirs = (); my @default_dirs = (); sub __ ($); sub __find_domain ($); sub __expand ($%); sub __tied_gettext ($$); BEGIN { # Tie the hash to gettext(). tie %__, '__TiedTextDomain', \&__tied_gettext; $__ = \%__; # Add default search directories, but only if they exist. for my $dir (qw (/usr/share/locale /usr/local/share/locale)) { if (-d $dir) { @default_dirs = ($dir); last; } } } # Class methods. sub keywords { join ' ', ( '--keyword=__', '--keyword=%__', '--keyword=$__', '--keyword=__x', '--keyword=__n:1,2', '--keyword=__nx:1,2', '--keyword=__xn:1,2', '--keyword=__p:1c,2', '--keyword=__px:1c,2', '--keyword=__np:1c,2,3', '--keyword=__npx:1c,2,3', '--keyword=N__', '--keyword=N__n:1,2', '--keyword=N__p:1c,2', '--keyword=N__np:1c,2,3', ); } sub flags { join ' ', ( '--flag=__:1:pass-perl-format', '--flag=%__:1:pass-perl-format', '--flag=$__:1:pass-perl-format', '--flag=__x:1:perl-brace-format', '--flag=__x:1:pass-perl-format', '--flag=__n:1:pass-perl-format', '--flag=__n:2:pass-perl-format', '--flag=__nx:1:perl-brace-format', '--flag=__nx:1:pass-perl-format', '--flag=__nx:2:perl-brace-format', '--flag=__nx:2:pass-perl-format', '--flag=__xn:1:perl-brace-format', '--flag=__xn:1:pass-perl-format', '--flag=__xn:2:perl-brace-format', '--flag=__xn:2:pass-perl-format', '--flag=__p:2:pass-perl-format', '--flag=__px:2:perl-brace-format', '--flag=__px:2:pass-perl-format', '--flag=__np:2:pass-perl-format', '--flag=__np:3:pass-perl-format', '--flag=__npx:2:perl-brace-format', '--flag=__npx:2:pass-perl-format', '--flag=__npx:3:perl-brace-format', '--flag=__npx:3:pass-perl-format', '--flag=N__:1:pass-perl-format', '--flag=N__n:1:pass-perl-format', '--flag=N__n:2:pass-perl-format', '--flag=N__p:2:pass-perl-format', '--flag=N__np:2:pass-perl-format', '--flag=N__np:3:pass-perl-format', ); } sub options { my ($class) = @_; join ' ', $class->keywords, $class->flags; } # Normal gettext. sub __ ($) { my $msgid = shift; my $package = caller; my $textdomain = $textdomains{$package}; __find_domain $textdomain if defined $textdomain && defined $bound_dirs{$textdomain}; return dgettext $textdomain => $msgid; } # Called from tied hash. sub __tied_gettext ($$) { my ($msgid) = @_; my ($package) = caller (1); my $textdomain = $textdomains{$package}; unless (defined $textdomain) { my ($maybe_package, $filename, $line) = caller (2); if (exists $textdomains{$maybe_package}) { warn < $msgid; } # With interpolation. sub __x ($@) { my ($msgid, %vars) = @_; my $package = caller; my $textdomain = $textdomains{$package}; __find_domain $textdomain if defined $textdomain && defined $bound_dirs{$textdomain}; return __expand ((dgettext $textdomain => $msgid), %vars); } # Plural. sub __n ($$$) { my ($msgid, $msgid_plural, $count) = @_; my $package = caller; my $textdomain = $textdomains{$package}; __find_domain $textdomain if defined $textdomain && defined $bound_dirs{$textdomain}; return dngettext $textdomain, $msgid, $msgid_plural, $count; } # Plural with interpolation. sub __nx ($$$@) { my ($msgid, $msgid_plural, $count, %args) = @_; my $package = caller; my $textdomain = $textdomains{$package}; __find_domain $textdomain if defined $textdomain && defined $bound_dirs{$textdomain}; return __expand ((dngettext $textdomain, $msgid, $msgid_plural, $count), %args); } # Plural with interpolation. sub __xn ($$$@) { my ($msgid, $msgid_plural, $count, %args) = @_; my $package = caller; my $textdomain = $textdomains{$package}; __find_domain $textdomain if defined $textdomain && defined $bound_dirs{$textdomain}; return __expand ((dngettext $textdomain, $msgid, $msgid_plural, $count), %args); } # Context. (p is for particular or special) sub __p ($$) { my $msgctxt = shift; my $msgid = shift; my $package = caller; my $textdomain = $textdomains{$package}; __find_domain $textdomain if defined $textdomain && defined $bound_dirs{$textdomain}; return dpgettext $textdomain => $msgctxt, $msgid; } # With interpolation. sub __px ($$@) { my ($msgctxt, $msgid, %vars) = @_; my $package = caller; my $textdomain = $textdomains{$package}; __find_domain $textdomain if defined $textdomain && defined $bound_dirs{$textdomain}; return __expand ((dpgettext $textdomain => $msgctxt, $msgid), %vars); } # Context + Plural. sub __np ($$$$) { my ($msgctxt, $msgid, $msgid_plural, $count) = @_; my $package = caller; my $textdomain = $textdomains{$package}; __find_domain $textdomain if defined $textdomain && defined $bound_dirs{$textdomain}; return dnpgettext $textdomain, $msgctxt, $msgid, $msgid_plural, $count; } # Plural with interpolation. sub __npx ($$$$@) { my ($msgctxt, $msgid, $msgid_plural, $count, %args) = @_; my $package = caller; my $textdomain = $textdomains{$package}; __find_domain $textdomain if defined $textdomain && defined $bound_dirs{$textdomain}; return __expand ((dnpgettext $textdomain, $msgctxt, $msgid, $msgid_plural, $count), %args); } # Dummy functions for string marking. sub N__($) { return shift; } sub N__n($$$) { return @_; } sub N__p($$) { return @_; } sub N__np($$$$) { return @_; } sub import { my ($self, $textdomain, @search_dirs) = @_; # Check our caller. my $package = caller; return if exists $textdomains{$package}; # Was a textdomain specified? $textdomain = textdomain unless defined $textdomain && length $textdomain; # Remember the textdomain of that package. $textdomains{$package} = $textdomain; # Remember that we still have to bind that textdomain to # a directory. unless (exists $bound_dirs{$textdomain}) { unless (@search_dirs) { @search_dirs = ((map $_ . '/LocaleData', @INC), @default_dirs) unless @search_dirs; if (my $share = eval { require File::ShareDir; File::ShareDir::dist_dir ($textdomain); }) { unshift @search_dirs, map { "$share/$_" } qw (locale LocaleData); } } $bound_dirs{$textdomain} = [grep { -d $_ } @search_dirs]; } Locale::TextDomain->export_to_level (1, $package, @EXPORT); return; } # Private functions. sub __find_domain ($) { my $domain = shift; my $try_dirs = $bound_dirs{$domain}; if (defined $try_dirs) { my $found_dir; TRYDIR: foreach my $dir (grep { -d $_ } @$try_dirs) { # Is there a message catalog? We have to search recursively # for it. Since globbing is reported to be buggy under # MS-DOS, we roll our own version. local *DIR; if (opendir DIR, $dir) { my @files = map { "$dir/$_/LC_MESSAGES/$domain.mo" } grep { ! /^\.\.?$/ } readdir DIR; foreach my $file (@files) { if (-f $file || -l $file) { # If we find a non-readable file on our way, # we access has been disabled on purpose. # Therefore no -r check here. $found_dir = $dir; last TRYDIR; } } } } # If there was no success, this will fall back to the default search # directories. bindtextdomain $domain => abs_path $found_dir if defined $found_dir; } # The search has completed. undef $bound_dirs{$domain}; return 1; } sub __expand ($%) { my ($translation, %args) = @_; my $re = join '|', map { quotemeta $_ } keys %args; $translation =~ s/\{($re)\}/defined $args{$1} ? $args{$1} : "{$1}"/ge; return $translation; } 1; __END__ =head1 NAME Locale::TextDomain - Perl Interface to Uniforum Message Translation =head1 SYNOPSIS use Locale::TextDomain ('my-package', @locale_dirs); use Locale::TextDomain qw (my-package); my $translated = __"Hello World!\n"; my $alt = $__{"Hello World!\n"}; my $alt2 = $__->{"Hello World!\n"}; my @list = (N__"Hello", N__"World"); printf (__n ("one file read", "%d files read", $num_files), $num_files); print __nx ("one file read", "{num} files read", $num_files, num => $num_files); my $translated_context = __p ("Verb, to view", "View"); printf (__np ("Files read from filesystems", "one file read", "%d files read", $num_files), $num_files); print __npx ("Files read from filesystems", "one file read", "{num} files read", $num_files, num => $num_files); =head1 DESCRIPTION The module Locale::TextDomain(3pm) provides a high-level interface to Perl message translation. =head2 Textdomains When you request a translation for a given string, the system used in libintl-perl follows a standard strategy to find a suitable message catalog containing the translation: Unless you explicitly define a name for the message catalog, libintl-perl will assume that your catalog is called 'messages' (unless you have changed the default value to something else via Locale::Messages(3pm), method textdomain()). You might think that his default strategy leaves room for optimization and you are right. It would be a lot smarter if multiple software packages, all with their individual message catalogs, could be installed on one system, and it should also be possible that third-party components of your software (like Perl modules) can load their message catalogs, too, without interfering with yours. The solution is clear, you have to assign a unique name to your message database, and you have to specify that name at run-time. That unique name is the so-called I of your software package. The name is actually arbitrary but you should follow these best-practice guidelines to ensure maximum interoperability: =over 8 =item File System Safety In practice, textdomains get mapped into file names, and you should therefore make sure that the textdomain you choose is a valid filename on every system that will run your software. =item Case-sensitivity Textdomains are always case-sensitive (i. e. 'Package' and 'PACKAGE' are not the same). However, since the message catalogs will be stored on file systems, that may or may not distinguish case when looking up file names, you should avoid potential conflicts here. =item Textdomain Should Match CPAN Name If your software is listed as a module on CPAN, you should simply choose the name on CPAN as your textdomain. The textdomain for libintl-perl is hence 'libintl-perl'. But please replace all periods ('.') in your package name with an underscore because ... =item Internet Domain Names as a Fallback ... if your software is I a module listed on CPAN, as a last resort you should use the Java(tm) package scheme, i. e. choose an internet domain that you are owner of (or ask the owner of an internet domain) and concatenate your preferred textdomain with the reversed internet domain. Example: Your company runs the web-site 'www.foobar.org' and is the owner of the domain 'foobar.org'. The textdomain for your company's software 'barfoos' should hence be 'org.foobar.barfoos'. =back If your software is likely to be installed in different versions on the same system, it is probably a good idea to append some version information to your textdomain. Other systems are less strict with the naming scheme for textdomains but the phenomena known as Perl is actually a plethora of small, specialized modules and it is probably wisest to postulate some namespace model in order to avoid chaos. =head2 Binding textdomains to directories Once the system knows the I of the message that you want to get translated into the user's language, it still has to find the correct message catalog. By default, libintl-perl will look up the string in the translation database found in the directories F and F (in that order). It is neither guaranteed that these directories exist on the target machine, nor can you be sure that the installation routine has write access to these locations. You can therefore instruct libintl-perl to search other directories prior to the default directories. Specifying a different search directory is called I a textdomain to a directory. Beginning with version 1.20, B extends the default strategy by a Perl-specific approach. If L is installed, it will look in the subdirectories named F and F (in that order) in the directory returned by C (if L is installed), and check for a database containing the message for your textdomain there. This allows you to install your database in the Perl-specific shared directory using L's C directive or the Dist::Zilla L. If L is not available, or if Locale::TextDomain fails to find the translation files in the L directory, it will next look in every directory found in the standard include path C<@INC>, and check for a database containing the message for your textdomain there. Example: If the path F is in your C<@INC>, you can install your translation files in F, and they will be found at run-time. =head1 USAGE It is crucial to remember that you use Locale::TextDomain(3) as specified in the section L, that means you have to B it, not B it. The module behaves quite differently compared to other modules. The most significant difference is the meaning of the list passed as an argument to the use() function. It actually works like this: use Locale::TextDomain (TEXTDOMAIN, DIRECTORY, ...) The first argument (the first string passed to use()) is the textdomain of your package, optionally followed by a list of directories to search I of the Perl-specific directories (see above: F appended to a F directory and every path in C<@INC>). If you are the author of a package 'barfoos', you will probably put the line use Locale::TextDomain 'barfoos'; resp. for non-CPAN modules use Locale::TextDomain 'org.foobar.barfoos'; in every module of your package that contains translatable strings. If your module has been installed properly, including the message catalogs, it will then be able to retrieve these translations at run-time. If you have not installed the translation database in a directory F in the L directory or the standard include path C<@INC> (or in the system directories F resp. F), you have to explicitly specify a search path by giving the names of directories (as strings!) as additional arguments to use(): use Locale::TextDomain qw (barfoos ./dir1 ./dir2); Alternatively you can call the function bindtextdomain() with suitable arguments (see the entry for bindtextdomain() in L). If you do so, you should pass C as an additional argument in order to avoid unnecessary lookups: use Locale::TextDomain ('barfoos', undef); You see that the arguments given to use() have nothing to do with what is imported into your namespace, but they are rather arguments to textdomain(), resp. bindtextdomain(). Does that mean that B exports nothing into your namespace? Umh, not exactly ... in fact it imports I functions listed below into your namespace, and hence you should not define conflicting functions (and variables) yourself. So, why has Locale::TextDomain to be different from other modules? If you have ever written software in C and prepared it for internationalization (i18n), you will probably have defined some preprocessor macros like: #define _(String) dgettext ("my-textdomain", String) #define N_(String) String You only have to define that once in C, and the textdomain for your package is automatically inserted into all gettext functions. In Perl there is no such mechanism (at least it is not portable, option -P) and using the gettext functions could become quite cumbersome without some extra fiddling: print dgettext ("my-textdomain", "Hello world!\n"); This is no fun. In C it would merely be a printf (_("Hello world!\n")); Perl has to be more concise and shorter than C ... see the next section for how you can use B to end up in Perl with a mere print __"Hello World!\n"; =head1 EXPORTED FUNCTIONS All functions have quite funny names on purpose. In fact the purpose for that is quite clear: They should be short, operator-like, and they should not yell for conflicts with existing functions in I namespace. You will understand it, when you internationalize your first Perl program or module. Preparing it is more like marking strings as being translatable than inserting function calls. Here we go: =over 4 =item B<__ MSGID> B This is a I underscore! The basic and most-used function. It is a short-cut for a call to gettext() resp. dgettext(), and simply returns the translation for B. If your old code reads like this: print "permission denied"; You will now write: print __"permission denied"; That's all, the string will be output in the user's preferred language, provided that you have installed a translation for it. Of course you can also use parentheses: print __("permission denied"); Or even: print (__("permission denied")); In my eyes, the first version without parentheses looks best. =item B<__x MSGID, ID1 =E VAL1, ID2 =E VAL2, ...> One of the nicest features in Perl is its capability to interpolate variables into strings: print "This is the $color $thing.\n"; This nice feature might con you into thinking that you could now write print __"This is the $color $thing.\n"; Alas, that would be nice, but it is not possible. Remember that the function __() serves both as an operator for translating strings I as a mark for translatable strings. If the above string would get extracted from your Perl code, the un-interpolated form would end up in the message catalog because when parsing your code it is unpredictable what values the variables C<$thing> and C<$color> will have at run-time (this fact is most probably one of the reasons you have written your program for). However, at run-time, Perl will have interpolated the values already I __() (resp. the underlying gettext() function) has seen the original string. Consequently something like "This is the red car.\n" will be looked up in the message catalog, it will not be found (because only "This is the $color $thing.\n" is included in the database), and the original, untranslated string will be returned. Honestly, because this is almost always an error, the xgettext(1) program will bail out with a fatal error when it comes across that string in your code. There are two workarounds for that: printf __"This is the %s %s.\n", $color, $thing; But that has several disadvantages: Your translator will only see the isolated string, and without the surrounding code it is almost impossible to interpret it correctly. Of course, GNU emacs and other software capable of editing PO translation files will allow you to examine the context in the source code, but it is more likely that your translator will look for a less challenging translation project when she frequently comes across such messages. And even if she does understand the underlying programming, what if she has to reorder the color and the thing like in French: msgid "This is the red car.\n"; msgstr "Cela est la voiture rouge.\n" Zut alors! While it is possible to reorder the arguments to printf() and friends, it requires a syntax that is is nothing that you want to learn. So what? The Perl backend to GNU gettext has defined an alternative format for interpolatable strings: "This is the {color} {thing}.\n"; Instead of Perl variables you use place-holders (legal Perl variables are also legal place-holders) in curly braces, and then you call print __x ("This is the {color} {thing}.\n", thing => $thang, color => $color); The function __x() will take the additional hash and replace all occurencies of the hash keys in curly braces with the corresponding values. Simple, readable, understandable to translators, what else would you want? And if the translator forgets, misspells or otherwise messes up some "variables", the msgfmt(1) program, that is used to compile the textual translation file into its binary representation will even choke on these errors and refuse to compile the translation. =item B<__n MSGID, MSGID_PLURAL, COUNT> Whew! That looks complicated ... It is best explained with an example. We'll have another look at your vintage code: if ($files_deleted > 1) { print "All files have been deleted.\n"; } else { print "One file has been deleted.\n"; } Your intent is clear, you wanted to avoid the cumbersome "1 files deleted". This is okay for English, but other languages have more than one plural form. For example in Russian it makes a difference whether you want to say 1 file, 3 files or 6 files. You will use three different forms of the noun 'file' in each case. [Note: Yep, very smart you are, the Russian word for 'file' is in fact the English word, and it is an invariable noun, but if you know that, you will also understand the rest despite this little simplification ...]. That is the reason for the existence of the function ngettext(), that __n() is a short-cut for: print __n"One file has been deleted.\n", "All files have been deleted.\n", $files_deleted; Alternatively: print __n ("One file has been deleted.\n", "All files have been deleted.\n", $files_deleted); The effect is always the same: libintl-perl will find out which plural form to pick for your user's language, and the output string will always look okay. =item B<__nx MSGID, MSGID_PLURAL, COUNT, VAR1 =E VAL1, VAR2 =E VAL2, ...> Bringing it all together: print __nx ("One file has been deleted.\n", "{count} files have been deleted.\n", $num_files, count => $num_files); The function __nx() picks the correct plural form (also for English!) I it is capable of interpolating variables into strings. Have a close look at the order of arguments: The first argument is the string in the singular, the second one is the plural string. The third one is an integer indicating the number of items. This third argument is I used to pick the correct translation. The optionally following arguments make up the hash used for interpolation. In the beginning it is often a little confusing that the variable holding the number of items will usually be repeated somewhere in the interpolation hash. =item B<__xn MSGID, MSGID_PLURAL, COUNT, VAR1 =E VAL1, VAR2 =E VAL2, ...> Does exactly the same thing as __nx(). In fact it is a common typo promoted to a feature. =item B<__p MSGCTXT, MSGID> This is much like __. The "p" stands for "particular", and the MSGCTXT is used to provide context to the translator. This may be necessary when your string is short, and could stand for multiple things. For example: print __p"Verb, to view", "View"; print __p"Noun, a view", "View"; The above may be "View" entries in a menu, where View->Source and File->View are different forms of "View", and likely need to be translated differently. A typical usage are GUI programs. Imagine a program with a main menu and the notorious "Open" entry in the "File" menu. Now imagine, there is another menu entry Preferences->Advanced->Policy where you have a choice between the alternatives "Open" and "Closed". In English, "Open" is the adequate text at both places. In other languages, it is very likely that you need two different translations. Therefore, you would now write: __p"File|", "Open"; __p"Preferences|Advanced|Policy", "Open"; In English, or if no translation can be found, the second argument (MSGID) is returned. This function was introduced in libintl-perl 1.17. =item B<__px MSGCTXT, MSGID, VAR1 =E VAL1, VAR2 =E VAL2, ...> Like __p(), but supports variable substitution in the string, like __x(). print __px("Verb, to view", "View {file}", file => $filename); See __p() and __x() for more details. This function was introduced in libintl-perl 1.17. =item B<__np MSGCTXT, MSGID, MSGID_PLURAL, COUNT> This adds context to plural calls. It should not be needed very often, if at all, due to the __nx() function. The type of variable substitution used in other gettext libraries (using sprintf-like sybols, like %s or %1) sometimes required context. For a (bad) example of this: printf (__np("[count] files have been deleted", "One file has been deleted.\n", "%s files have been deleted.\n", $num_files), $num_files); NOTE: The above usage is discouraged. Just use the __nx() call, which provides inline context via the key names. This function was introduced in libintl-perl 1.17. =item B<__npx MSGCTXT, MSGID, MSGID_PLURAL, COUNT, VAR1 =E VAL1, VAR2 =E VAL2, ...> This is provided for comleteness. It adds the variable interpolation into the string to the previous method, __np(). It's usage would be like so: print __npx ("Files being permenantly removed", "One file has been deleted.\n", "{count} files have been deleted.\n", $num_files, count => $num_files); I cannot think of any situations requiring this, but we can easily support it, so here it is. This function was introduced in libintl-perl 1.17. =item B A no-op function that simply echoes its arguments to the caller. Take the following piece of Perl: my @options = ( "Open", "Save", "Save As", ); ... my $option = $options[1]; Now say that you want to have this translatable. You could sometimes simply do: my @options = ( __"Open", __"Save", __"Save As", ); ... my $option = $options[1]; But often times this will not be what you want, for example when you also need the unmodified original string. Sometimes it may not even work, for example, when the preferred user language is not yet determined at the time that the list is initialized. In these cases you would write: my @options = ( N__"Open", N__"Save", N__"Save As", ); ... my $option = __($options[1]); # or: my $option = dgettext ('my-domain', $options[1]); Now all the strings in C<@options> will be left alone, since N__() returns its arguments (one ore more) unmodified. Nevertheless, the string extractor will be able to recognize the strings as being translatable. And you can still get the translation later by passing the variable instead of the string to one of the above translation functions. =item B Does exactly the same as N__(). You will use this form if you have to mark the strings as having plural forms. =item B Marks B as N__() does, but in the context B. =item B Marks B as N__n() does, but in the context B. =back =head1 EXPORTED VARIABLES The module exports several variables into your namespace: =over 4 =item B<%__> A tied hash. Its keys are your original messages, the values are their translations: my $title = "

$__{'My Homepage'}

"; This is much better for your translation team than my $title = __"

My Homepage

"; In the second case the HTML code will make it into the translation database and your translators have to be aware of HTML syntax when translating strings. B Do I use this hash outside of double-quoted strings! The code in the tied hash object relies on the correct working of the function caller() (see "perldoc -f caller"), and this function will report incorrect results if the tied hash value is the argument to a function from another package, for example: my $result = Other::Package::do_it ($__{'Some string'}); The tied hash code will see "Other::Package" as the calling package, instead of your own package. Consequently it will look up the message in the wrong text domain. There is no workaround for this bug. Therefore: Never use the tied hash interpolated strings! =item B<$__> A reference to C<%__>, in case you prefer: my $title = "

$__->{'My Homepage'}

"; =back =head1 CLASS METHODS The following class methods are defined: =over 4 =item B Returns a space-separated list of all '--keyword' and all '--flag' options for B, when extracting strings from Perl source files localized with B. The option should rather be called B. With regard to the typical use-case, a shorter name has been picked: xgettext `perl -MLocale::TextDomain -e 'print Locale::TextDomain->options'` See L for more information about the xgettext options '--keyword' and '--flag'. If you want to disable the use of the xgettext default keywords, you should pass an option '--keyword=""' to xgettext before the options returned by this method. If you doubt the usefulness of this method, check the output on the command-line: perl -MLocale::TextDomain -e 'print Locale::TextDomain->options' Nothing that you want to type yourself. This method was added in libintl-perl 1.28. =item B Returns a space-separated list of all '--keyword' options for B so that all translatable strings are properly extracted. This method was added in libintl-perl 1.28. =item B Returns a space-separated list of all '--flag' options for B so that extracted strings are properly flagged. This method was added in libintl-perl 1.28. =back =head1 PERFORMANCE Message translation can be a time-consuming task. Take this little example: 1: use Locale::TextDomain ('my-domain'); 2: use POSIX (:locale_h); 3: 4: setlocale (LC_ALL, ''); 5: print __"Hello world!\n"; This will usually be quite fast, but in pathological cases it may run for several seconds. A worst-case scenario would be a Chinese user at a terminal that understands the codeset Big5-HKSCS. Your translator for Chinese has however chosen to encode the translations in the codeset EUC-TW. What will happen at run-time? First, the library will search and load a (maybe large) message catalog for your textdomain 'my-domain'. Then it will look up the translation for "Hello world!\n", it will find that it is encoded in EUC-TW. Since that differs from the output codeset Big5-HKSCS, it will first load a conversion table containing several ten-thousands of codepoints for EUC-TW, then it does the same with the smaller, but still very large conversion table for Big5-HKSCS, it will convert the translation on the fly from EUC-TW into Big5-HKSCS, and finally it will return the converted translation. A worst-case scenario but realistic. And for these five lines of codes, there is not much you can do to make it any faster. You should understand, however, I the different steps will take place, so that you can arrange your code for it. You have learned in the section L that line 1 is responsible for locating your message database. However, the use() will do nothing more than remembering your settings. It will not search any directories, it will not load any catalogs or conversion tables. Somewhere in your code you will always have a call to POSIX::setlocale(), and the performance of this call may be time-consuming, depending on the architecture of your system. On some systems, this will consume very little time, on others it will only consume a considerable amount of time for the first call, and on others it may always be time-consuming. Since you cannot know, how setlocale() is implemented on the target system, you should reduce the calls to setlocale() to a minimum. Line 5 requests the translation for your string. Only now, the library will actually load the message catalog, and only now will it load eventually needed conversion tables. And from now on, all this information will be cached in memory. This strategy is used throughout libintl-perl, and you may describe it as 'load-on-first-access'. Getting the next translation will consume very little resources. However, although the translation retrieval is somewhat obfuscated by an operator-like function call, it is still a function call, and in fact it even involves a chain of function calls. Consequently, the following example is probably bad practice: foreach (1 .. 100_000) { print __"Hello world!\n"; } This example introduces a lot of overhead into your program. Better do this: my $string = __"Hello world!\n"; foreach (1 .. 100_000) { print $string; } The translation will never change, there is no need to retrieve it over and over again. Although libintl-perl will of course cache the translation read from the file system, you can still avoid the overhead for the function calls. =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::Messages(3pm), Locale::gettext_pp(3pm), perl(1), gettext(1), gettext(3) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 cperl-indent-level: 4 cperl-continued-statement-offset: 2 tab-width: 4 End: PK]UFj n n gettext_pp.pmnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # Pure Perl implementation of Uniforum message translation. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . package Locale::gettext_pp; use strict; require 5.004; use vars qw ($__gettext_pp_default_dir $__gettext_pp_textdomain $__gettext_pp_domain_bindings $__gettext_pp_domain_codeset_bindings $__gettext_pp_domains $__gettext_pp_recoders $__gettext_pp_unavailable_dirs $__gettext_pp_domain_cache $__gettext_pp_alias_cache $__gettext_pp_context_glue); use locale; use File::Spec; use Locale::Messages; BEGIN { $__gettext_pp_textdomain = 'messages'; $__gettext_pp_domain_bindings = {}; $__gettext_pp_domain_codeset_bindings = {}; $__gettext_pp_domains = {}; $__gettext_pp_recoders = {}; $__gettext_pp_unavailable_dirs = {}; $__gettext_pp_domain_cache = {}; $__gettext_pp_alias_cache = {}; # The separator between msgctxt and msgid in a .mo file. */ $__gettext_pp_context_glue = "\004"; $__gettext_pp_default_dir = ''; for my $dir (qw (/usr/share/locale /usr/local/share/locale)) { if (-d $dir) { $__gettext_pp_default_dir = $dir; last; } } } BEGIN { require POSIX; require Exporter; use IO::Handle; require Locale::Recode; local $@; my ($has_messages, $five_ok); $has_messages = eval '&POSIX::LC_MESSAGES'; unless (defined $has_messages && length $has_messages) { $five_ok = ! grep {my $x = eval "&POSIX::$_" || 0; $x eq '5';} qw (LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_ALL); if ($five_ok) { $five_ok = POSIX::setlocale (5, ''); } } if (defined $has_messages && length $has_messages) { eval <<'EOF'; sub LC_MESSAGES() { local $!; # Do not clobber errno! return &POSIX::LC_MESSAGES; } EOF } elsif ($five_ok) { eval <<'EOF'; sub LC_MESSAGES() { local $!; # Do not clobber errno! # Hack: POSIX.pm deems LC_MESSAGES an invalid macro until # Perl 5.8.0. However, on LC_MESSAGES should be 5 ... return 5; } EOF } else { eval <<'EOF'; sub LC_MESSAGES() { local $!; # Do not clobber errno! # This fallback value is widely used, # when LC_MESSAGES is not available. return 1729; } EOF } } use vars qw (%EXPORT_TAGS @EXPORT_OK @ISA $VERSION); %EXPORT_TAGS = (locale_h => [ qw ( gettext dgettext dcgettext ngettext dngettext dcngettext pgettext dpgettext dcpgettext npgettext dnpgettext dcnpgettext textdomain bindtextdomain bind_textdomain_codeset ) ], libintl_h => [ qw (LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES LC_ALL) ], ); @EXPORT_OK = qw (gettext dgettext dcgettext ngettext dngettext dcngettext pgettext dpgettext dcpgettext npgettext dnpgettext dcnpgettext textdomain bindtextdomain bind_textdomain_codeset nl_putenv setlocale LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES LC_ALL); @ISA = qw (Exporter); my $has_nl_langinfo; sub __load_catalog; sub __load_domain; sub __locale_category; sub __untaint_plural_header; sub __compile_plural_function; sub LC_NUMERIC() { &POSIX::LC_NUMERIC; } sub LC_CTYPE() { &POSIX::LC_CTYPE; } sub LC_TIME() { &POSIX::LC_TIME; } sub LC_COLLATE() { &POSIX::LC_COLLATE; } sub LC_MONETARY() { &POSIX::LC_MONETARY; } sub LC_ALL() { &POSIX::LC_ALL; } sub textdomain(;$) { my $new_domain = shift; $__gettext_pp_textdomain = $new_domain if defined $new_domain && length $new_domain; return $__gettext_pp_textdomain; } sub bindtextdomain($;$) { my ($domain, $directory) = @_; my $retval; if (defined $domain && length $domain) { if (defined $directory && length $directory) { $retval = $__gettext_pp_domain_bindings->{$domain} = $directory; } elsif (exists $__gettext_pp_domain_bindings->{$domain}) { $retval = $__gettext_pp_domain_bindings->{$domain}; } else { $retval = $__gettext_pp_default_dir; } $retval = '/usr/share/locale' unless defined $retval && length $retval; return $retval; } else { return; } } sub bind_textdomain_codeset($;$) { my ($domain, $codeset) = @_; if (defined $domain && length $domain) { if (defined $codeset && length $codeset) { return $__gettext_pp_domain_codeset_bindings->{$domain} = $codeset; } elsif (exists $__gettext_pp_domain_codeset_bindings->{$domain}) { return $__gettext_pp_domain_codeset_bindings->{$domain}; } } return; } sub gettext($) { my ($msgid) = @_; return dcnpgettext ('', undef, $msgid, undef, undef, undef); } sub dgettext($$) { my ($domainname, $msgid) = @_; return dcnpgettext ($domainname, undef, $msgid, undef, undef, undef); } sub dcgettext($$$) { my ($domainname, $msgid, $category) = @_; return dcnpgettext ($domainname, undef, $msgid, undef, undef, undef); } sub ngettext($$$) { my ($msgid, $msgid_plural, $n) = @_; return dcnpgettext ('', undef, $msgid, $msgid_plural, $n, undef); } sub dngettext($$$$) { my ($domainname, $msgid, $msgid_plural, $n) = @_; return dcnpgettext ($domainname, undef, $msgid, $msgid_plural, $n, undef); } sub dcngettext($$$$$) { my ($domainname, $msgid, $msgid_plural, $n, $category) = @_; return dcnpgettext ($domainname, undef, $msgid, $msgid_plural, $n, , $category); } sub pgettext($$) { my ($msgctxt, $msgid) = @_; return dcnpgettext ('', $msgctxt, $msgid, undef, undef, undef); } sub dpgettext($$$) { my ($domainname, $msgctxt, $msgid) = @_; return dcnpgettext ($domainname, $msgctxt, $msgid, undef, undef, undef); } sub dcpgettext($$$$) { my ($domainname, $msgctxt, $msgid, $category) = @_; return dcnpgettext ($domainname, $msgctxt, $msgid, undef, undef, undef); } sub npgettext($$$$) { my ($msgctxt, $msgid, $msgid_plural, $n) = @_; return dcnpgettext ('', $msgctxt, $msgid, $msgid_plural, $n, undef); } sub dnpgettext($$$$$) { my ($domainname, $msgctxt, $msgid, $msgid_plural, $n) = @_; return dcnpgettext ($domainname, $msgctxt, $msgid, $msgid_plural, $n, undef); } # This is the actual implementation of dncpgettext. It is also used by the # corresponding function in Locale::gettext_dumb. sub _dcnpgettext_impl { my ($domainname, $msgctxt, $msgid, $msgid_plural, $n, $category, $locale) = @_; return unless defined $msgid; my $plural = defined $msgid_plural; Locale::Messages::turn_utf_8_off($msgid); Locale::Messages::turn_utf_8_off($msgctxt) if defined $msgctxt; my $msg_ctxt_id = defined $msgctxt ? join($__gettext_pp_context_glue, ($msgctxt, $msgid)) : $msgid; local $!; # Do not clobber errno! # This is also done in __load_domain but we need a proper value. $domainname = $__gettext_pp_textdomain unless defined $domainname && length $domainname; # Category is always LC_MESSAGES (other categories are ignored). my $category_name = 'LC_MESSAGES'; $category = LC_MESSAGES; my $domains = __load_domain ($domainname, $category, $category_name, $locale); my @trans = (); my $domain; my $found; foreach my $this_domain (@$domains) { if ($this_domain && defined $this_domain->{messages}->{$msg_ctxt_id}) { @trans = @{$this_domain->{messages}->{$msg_ctxt_id}}; shift @trans; $domain = $this_domain; $found = 1; last; } } @trans = ($msgid, $msgid_plural) unless @trans; my $trans = $trans[0]; if ($plural) { if ($domain) { my $nplurals = 0; ($nplurals, $plural) = &{$domain->{plural_func}} ($n); $plural = 0 unless defined $plural; $nplurals = 0 unless defined $nplurals; $plural = 0 if $nplurals <= $plural; } else { $plural = $n != 1 || 0; } $trans = $trans[$plural] if defined $trans[$plural]; } if ($found && defined $domain->{po_header}->{charset}) { my $input_codeset = $domain->{po_header}->{charset}; # Convert into output charset. my $output_codeset = $__gettext_pp_domain_codeset_bindings->{$domainname}; $output_codeset = $ENV{OUTPUT_CHARSET} unless defined $output_codeset; $output_codeset = __get_codeset ($category, $category_name, $domain->{locale_id}) unless defined $output_codeset; unless (defined $output_codeset) { # Still no point. my $lc_ctype = __locale_category (POSIX::LC_CTYPE(), 'LC_CTYPE'); $output_codeset = $1 if $lc_ctype =~ /^[a-z]{2}(?:_[A-Z]{2})?\.([^@]+)/; } # No point. :-( $output_codeset = $domain->{po_header}->{charset} unless defined $output_codeset; if (exists $__gettext_pp_domain_cache->{$output_codeset}) { $output_codeset = $__gettext_pp_domain_cache->{$output_codeset}; } else { $output_codeset = 'utf-8' if lc $output_codeset eq 'utf8'; $output_codeset = $__gettext_pp_domain_cache->{$output_codeset} = Locale::Recode->resolveAlias ($output_codeset); } if (defined $output_codeset && $output_codeset ne $domain->{po_header}->{charset}) { # We have to convert. my $recoder; if (exists $__gettext_pp_recoders->{$input_codeset}->{$output_codeset}) { $recoder = $__gettext_pp_recoders->{$input_codeset}->{$output_codeset}; } else { $recoder = $__gettext_pp_recoders->{$input_codeset}->{$output_codeset} = Locale::Recode->new (from => $input_codeset, to => $output_codeset, ); } $recoder->recode ($trans); } } return $trans; } sub dcnpgettext ($$$$$$) { return &_dcnpgettext_impl; } sub nl_putenv ($) { my ($envspec) = @_; return unless defined $envspec; return unless length $envspec; return if substr ($envspec, 0, 1) eq '='; my ($var, $value) = split /=/, $envspec, 2; # In Perl we *could* set empty environment variables even under # MS-DOS, but for compatibility reasons, we implement the # brain-damaged behavior of the Microsoft putenv(). if ($^O eq 'MSWin32') { $value = '' unless defined $value; if (length $value) { $ENV{$var} = $value; } else { delete $ENV{$var}; } } else { if (defined $value) { $ENV{$var} = $value; } else { delete $ENV{$var}; } } return 1; } sub setlocale($;$) { require POSIX; &POSIX::setlocale; } sub __selected_locales { my ($locale, $category, $category_name) = @_; my @locales; my $cache_key; if (defined $ENV{LANGUAGE} && length $ENV{LANGUAGE}) { @locales = split /:/, $ENV{LANGUAGE}; $cache_key = $ENV{LANGUAGE}; } elsif (!defined $locale) { # The system does not have LC_MESSAGES. Guess the value. @locales = $cache_key = __locale_category ($category, $category_name); } else { @locales = $cache_key = $locale; } return $cache_key, @locales; } sub __extend_locales { my (@locales) = @_; my @tries = @locales; my %locale_lookup = map { $_ => $_ } @tries; foreach my $locale (@locales) { if ($locale =~ /^([a-z][a-z]) (?:(_[A-Z][A-Z])? (\.[-_A-Za-z0-9]+)? )? (\@[-_A-Za-z0-9]+)?$/x) { if (defined $3) { defined $2 ? push @tries, $1 . $2 . $3 : push @tries, $1 . $3; $locale_lookup{$tries[-1]} = $locale; } if (defined $2) { push @tries, $1 . $2; $locale_lookup{$1 . $2} = $locale; } if (defined $1) { push @tries, $1 if defined $1; $locale_lookup{$1} = $locale; } } } return \@tries, \%locale_lookup; } sub __load_domain { my ($domainname, $category, $category_name, $locale) = @_; # If no locale was selected for the requested locale category, # l10n is disabled completely. This matches the behavior of GNU # gettext. if ($category != LC_MESSAGES) { # Not supported. return []; } if (!defined $locale && $category != 1729) { $locale = POSIX::setlocale ($category); if (!defined $locale || 'C' eq $locale || 'POSIX' eq $locale) { return []; } } $domainname = $__gettext_pp_textdomain unless defined $domainname && length $domainname; my $dir = bindtextdomain ($domainname, ''); $dir = $__gettext_pp_default_dir unless defined $dir && length $dir; return [] unless defined $dir && length $dir; my ($cache_key, @locales) = __selected_locales $locale, $category, $category_name; # Have we looked that one up already? my $domains = $__gettext_pp_domain_cache->{$dir}->{$cache_key}->{$category_name}->{$domainname}; return $domains if defined $domains; return [] unless @locales; my @dirs = ($dir); my ($tries, $lookup) = __extend_locales @locales; push @dirs, $__gettext_pp_default_dir if $__gettext_pp_default_dir && $dir ne $__gettext_pp_default_dir; my %seen; my %loaded; foreach my $basedir (@dirs) { foreach my $try (@$tries) { # If we had already found a catalog for "xy_XY", do not try it # again. next if $loaded{$try}; my $fulldir = File::Spec->catfile($basedir, $try, $category_name); next if $seen{$fulldir}++; # If the cache for unavailable directories is removed, # the three lines below should be replaced by: # 'next unless -d $fulldir;' next if $__gettext_pp_unavailable_dirs->{$fulldir}; ++$__gettext_pp_unavailable_dirs->{$fulldir} and next unless -d $fulldir; my $filename = File::Spec->catfile($fulldir, "$domainname.mo"); my $domain = __load_catalog $filename, $try; next unless $domain; $loaded{$try} = 1; $domain->{locale_id} = $lookup->{$try}; push @$domains, $domain; } } $domains = [] unless defined $domains; $__gettext_pp_domain_cache->{$dir} ->{$cache_key} ->{$category_name} ->{$domainname} = $domains; return $domains; } sub __load_catalog { my ($filename, $locale) = @_; # Alternatively we could check the filename for evil characters ... # (Important for CGIs). return unless -f $filename && -r $filename; local $/; local *HANDLE; open HANDLE, "<$filename" or return; binmode HANDLE; my $raw = ; close HANDLE; # Corrupted? return if ! defined $raw || length $raw < 28; my $filesize = length $raw; # Read the magic number in order to determine the byte order. my $domain = { filename => $filename }; my $unpack = 'N'; $domain->{magic} = unpack $unpack, substr $raw, 0, 4; if ($domain->{magic} == 0xde120495) { $unpack = 'V'; } elsif ($domain->{magic} != 0x950412de) { return; } my $domain_unpack = $unpack x 6; my ($revision, $num_strings, $msgids_off, $msgstrs_off, $hash_size, $hash_off) = unpack (($unpack x 6), substr $raw, 4, 24); my $major = $revision >> 16; return if $major != 0; # Invalid revision number. $domain->{revision} = $revision; $domain->{num_strings} = $num_strings; $domain->{msgids_off} = $msgids_off; $domain->{msgstrs_off} = $msgstrs_off; $domain->{hash_size} = $hash_size; $domain->{hash_off} = $hash_off; return if $msgids_off + 4 * $num_strings > $filesize; return if $msgstrs_off + 4 * $num_strings > $filesize; my @orig_tab = unpack (($unpack x (2 * $num_strings)), substr $raw, $msgids_off, 8 * $num_strings); my @trans_tab = unpack (($unpack x (2 * $num_strings)), substr $raw, $msgstrs_off, 8 * $num_strings); my $messages = {}; for (my $count = 0; $count < 2 * $num_strings; $count += 2) { my $orig_length = $orig_tab[$count]; my $orig_offset = $orig_tab[$count + 1]; my $trans_length = $trans_tab[$count]; my $trans_offset = $trans_tab[$count + 1]; return if $orig_offset + $orig_length > $filesize; return if $trans_offset + $trans_length > $filesize; my @origs = split /\000/, substr $raw, $orig_offset, $orig_length; my @trans = split /\000/, substr $raw, $trans_offset, $trans_length; # The singular is the key, the plural plus all translations is the # value. my $msgid = $origs[0]; $msgid = '' unless defined $msgid && length $msgid; my $msgstr = [ $origs[1], @trans ]; $messages->{$msgid} = $msgstr; } $domain->{messages} = $messages; # Try to find po header information. my $po_header = {}; my $null_entry = $messages->{''}->[1]; if ($null_entry) { my @lines = split /\n/, $null_entry; foreach my $line (@lines) { my ($key, $value) = split /:/, $line, 2; $key =~ s/-/_/g; $po_header->{lc $key} = $value; } } $domain->{po_header} = $po_header; if (exists $domain->{po_header}->{content_type}) { my $content_type = $domain->{po_header}->{content_type}; if ($content_type =~ s/.*=//) { $domain->{po_header}->{charset} = $content_type; } } my $code = $domain->{po_header}->{plural_forms} || ''; # Whitespace, locale-independent. my $s = '[ \011-\015]'; # Untaint the plural header. # Keep line breaks as is (Perl 5_005 compatibility). $code = $domain->{po_header}->{plural_forms} = __untaint_plural_header $code; $domain->{plural_func} = __compile_plural_function $code; unless (defined $domain->{po_header}->{charset} && length $domain->{po_header}->{charset} && $locale =~ /^(?:[a-z][a-z]) (?:(?:_[A-Z][A-Z])? (\.[-_A-Za-z0-9]+)? )? (?:\@[-_A-Za-z0-9]+)?$/x) { $domain->{po_header}->{charset} = $1; } if (defined $domain->{po_header}->{charset}) { $domain->{po_header}->{charset} = Locale::Recode->resolveAlias ($domain->{po_header}->{charset}); } return $domain; } sub __locale_category { my ($category, $category_name) = @_; local $@; my $value = eval {POSIX::setlocale ($category)}; # We support only XPG syntax, i. e. # language[_territory[.codeset]][@modifier]. undef $value unless (defined $value && length $value && $value =~ /^[a-z][a-z] (?:_[A-Z][A-Z] (?:\.[-_A-Za-z0-9]+)? )? (?:\@[-_A-Za-z0-9]+)?$/x); unless ($value) { $value = $ENV{LC_ALL}; $value = $ENV{$category_name} unless defined $value && length $value; $value = $ENV{LANG} unless defined $value && length $value; return 'C' unless defined $value && length $value; } return $value if $value ne 'C' && $value ne 'POSIX'; } sub __get_codeset { my ($category, $category_name, $locale_id) = @_; local $@; unless (defined $has_nl_langinfo) { eval { require I18N::Langinfo; }; $has_nl_langinfo = !$@; } if ($has_nl_langinfo) { # Try to set the locale via the specified id. my $saved_locale = eval { POSIX::setlocale (LC_ALL) }; my $had_lc_all = exists $ENV{LC_ALL}; my $saved_lc_all = $ENV{LC_ALL} if $had_lc_all; # Now try to set the locale via the environment. There is no # point in calling the langinfo routines if this fails. $ENV{LC_ALL} = $locale_id; my $codeset; my $lc_all = eval { POSIX::setlocale (LC_ALL, $locale_id); }; $codeset = I18N::Langinfo::langinfo (I18N::Langinfo::CODESET()) if defined $lc_all; # Restore environment. if ($saved_locale) { eval { POSIX::setlocale (LC_ALL, $saved_locale); } } if ($had_lc_all) { $ENV{LC_ALL} = $saved_lc_all if $had_lc_all; } else { delete $ENV{LC_ALL}; } return $codeset; } return; } sub __untaint_plural_header { my ($code) = @_; # Whitespace, locale-independent. my $s = '[ \t\r\n\013\014]'; if ($code =~ m{^($s* nplurals$s*=$s*[0-9]+ $s*;$s* plural$s*=$s*(?:$s|[-\?\|\&=!<>+*/\%:;a-zA-Z0-9_\(\)])+ )}xms) { return $1; } return ''; } sub __compile_plural_function { my ($code) = @_; # The leading and trailing space is necessary to be able to match # against word boundaries. my $plural_func; if (length $code) { my $code = ' ' . $code . ' '; $code =~ s/(?<=[^_a-zA-Z0-9])[_a-z][_A-Za-z0-9]*(?=[^_a-zA-Z0-9])/\$$&/gs; $code = "sub { my \$n = shift || 0; my (\$plural, \$nplurals); $code; return (\$nplurals, \$plural ? \$plural : 0); }"; # Now try to evaluate the code. There is no need to run the code in # a Safe compartment. The above substitutions should have destroyed # all evil code. Corrections are welcome! #warn $code; $plural_func = eval $code; #warn $@ if $@; undef $plural_func if $@; } # Default is Germanic plural (which is incorrect for French). $plural_func = eval "sub { (2, 1 != shift || 0) }" unless $plural_func; return $plural_func; } 1; __END__ =head1 NAME Locale::gettext_pp - Pure Perl Implementation of Uniforum Message Translation =head1 SYNOPSIS use Locale::gettext_pp qw(:locale_h :libintl_h); gettext $msgid; dgettext $domainname, $msgid; dcgettext $domainname, $msgid, LC_MESSAGES; ngettext $msgid, $msgid_plural, $count; dngettext $domainname, $msgid, $msgid_plural, $count; dcngettext $domainname, $msgid, $msgid_plural, $count, LC_MESSAGES; pgettext $msgctxt, $msgid; dpgettext $domainname, $msgctxt, $msgid; dcpgettext $domainname, $msgctxt, $msgid, LC_MESSAGES; npgettext $msgctxt, $msgid, $msgid_plural, $count; dnpgettext $domainname, $msgctxt, $msgid, $msgid_plural, $count; dcnpgettext $domainname, $msgctxt, $msgid, $msgid_plural, $count, LC_MESSAGES; textdomain $domainname; bindtextdomain $domainname, $directory; bind_textdomain_codeset $domainname, $encoding; my $category = LC_CTYPE; my $category = LC_NUMERIC; my $category = LC_TIME; my $category = LC_COLLATE; my $category = LC_MONETARY; my $category = LC_MESSAGES; my $category = LC_ALL; =head1 DESCRIPTION The module B is the low-level interface to message translation according to the Uniforum approach that is for example used in GNU gettext and Sun's Solaris. Normally you should not use this module directly, but the high level interface Locale::TextDomain(3) that provides a much simpler interface. This description is therefore deliberately kept brief. Please refer to the GNU gettext documentation available at L for in-depth and background information on the topic. =head1 FUNCTIONS The module exports by default nothing. Every function has to be imported explicitly or via an export tag (L<"EXPORT TAGS">). =over 4 =item B See L. =item B See L. =item B See L. =item B See L. =item B See L. =item B See L. =item B See L. =item B See L. =item B See L. =item B See L. =item B See L. =item B See L. =item B See L. =item B See L. =item B =item B See L. =item B See L. =back =head1 CONSTANTS You can (maybe) get the same constants from POSIX(3); see there for a detailed description =over 4 =item B =item B =item B =item B =item B =item B =item B See L for more information. =back =head1 EXPORT TAGS This module does not export anything unless explicitly requested. You can import groups of functions via two tags: =over 4 =item B Imports the functions that are normally defined in the C include file F: =over 8 =item B =item B =item B =item B =item B =item B =item B Introduced with libintl-perl 1.17. =item B Introduced with libintl-perl 1.17. =item B Introduced with libintl-perl 1.17. =item B Introduced with libintl-perl 1.17. =item B Introduced with libintl-perl 1.17. =item B Introduced with libintl-perl 1.17. =item B =item B =item B =back =item B Imports the locale category constants: =over 8 =item B =item B =item B =item B =item B =item B =item B =back =back =head1 AUTHOR Copyright (C) 2002-2017 L (L), all rights reserved. See the source code for details!code for details! =head1 SEE ALSO Locale::TextDomain(3pm), Locale::Messages(3pm), Encode(3pm), perllocale(3pm), POSIX(3pm), perl(1), gettext(1), gettext(3) =cut Local Variables: mode: perl perl-indent-level: 4 perl-continued-statement-offset: 4 perl-continued-brace-offset: 0 perl-brace-offset: -4 perl-brace-imaginary-offset: 0 perl-label-offset: -4 tab-width: 4 End: PK].mA/A/libintlFAQ.podnu[#! /bin/false # vim: set autoindent shiftwidth=4 tabstop=4: # High-level interface to Perl i18n. # Copyright (C) 2002-2017 Guido Flohr , # all rights reserved. # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU Library General Public License as published # by the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Library General Public License for more details. # You should have received a copy of the GNU Library General Public # License along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, # USA. =head1 NAME Locale::TextDomain::FAQ - Frequently asked questions for libintl-perl =head1 DESCRIPTION This FAQ =head1 QUESTIONS AND ANSWERS =head2 Why is libintl-perl so big? Why don't you use Encode(3pm) for character set conversion instead of rolling your own version? Encode(3pm) requires at least Perl 5.7.x, whereas libintl-perl needs to be operational on Perl 5.004. Internally, libintl-perl uses Encode(3pm) if it is available. =head2 Why do the gettext functions always unset the utf-8 flag on the strings it returns? Because the gettext functions do not know whether the string is encoded in utf-8 or not. Instead of taking guesses, it rather unsets the flag. =head2 Can I set the utf-8 flag on strings returned by the gettext family of functions? Yes, but it is not recommended. If you absolutely want to do it, use the function bind_textdomain_filter in Locale::Messages for it. The strings returned by gettext and friends are by default encoded in the preferred charset for the user's locale, but there is no portable way to find out, whether this is utf-8 or not. That means, you either have to enforce utf-8 as the output character set (by means of bind_textdomain_codeset() and/or the environment variable OUTPUT_CHARSET) and override the user preference, or you run the risk of marking strings as utf-8 which really aren't utf-8. The whole concept behind that utf-8 flag introduced in Perl 5.6 is seriously broken, and the above described dilemma is a proof for that. The best thing you can do with that flag is get rid of it, and turn it off. Your code will benefit from it and become less error prone, more portable and faster. =head2 Why do non-ASCII characters in my Gtk2 application look messed up? The Perl binding of Gtk2 has a design flaw. It expects all UI messages to be in UTF-8 and it also expects messages to be flagged as utf-8. The only solution for you is to enforce all your po files to be encoded in utf-8 (convert them manually, if you need to), and also enforce that charset in your application, regardless of the user's locale settings. Assumed that your textdomain is "org.bar.foo", you have to code the following into your main module or script: BEGIN { bind_textdomain_filter 'org.bar.foo', \&turn_utf_8_on; bind_textdomain_codeset 'org.bar.foo', 'utf-8'; } See the File GTestRunner.pm of Test::Unit::GTestRunner(3pm) for details. =head2 How do I interface Glade2 UI definitions with libintl-perl? Gtk2::GladeXML(3pm) seems to ignore calls to bind_textdomain(). See the File GTestRunner.pm of Test::Unit::GTestRunner(3pm) for a possible solution. =head2 Why does Locale::TextDomain use a double underscore? I am used to a single underscore from C or other languages. Function names that consist of exactly one non-alphanumerical character make the function automatically global in Perl. Besides, in Perl 6 the concatenation operator will be the underscore instead of the dot. =head2 How do I switch languages or force a certain language independently from user settings read from the environment? The simple answer is: use POSIX qw (setlocale LC_ALL); my $language = 'fr'; my $country = 'FR'; my $charset = 'iso-8859-1'; setlocale LC_ALL, "${language}_$country.$charset"; Sadly enough, this will fail in many cases. The problem is that locale identifiers are not standardized and are completely system-dependent. Not only their overall format, but also other details like case-sensitivity. Some systems are very forgiving about the system - for example normalizing charset descriptions - others very strict. In order to be reasonably platform independent, you should try a list of possible locale identifiers for your desired settings. This is about what I would try for achieving the above: my @tries = qw ( fr_FR.iso-8859-1 fr_FR.iso8859-1 fr_FR.iso88591 fr_FR.ISO-8859-1 fr_FR.ISO8859-1 fr_FR.ISO88591 fr.iso-8859-1 fr.iso8859-1 fr.iso88591 fr.ISO-8859-1 fr.ISO8859-1 fr.ISO88591 fr_FR French_France.iso-8859-1 French_France.iso8859-1 French_France.iso88591 French_France.ISO-8859-1 French_France.ISO8859-1 French_France.ISO88591 French.iso-8859-1 French.iso8859-1 French.iso88591 French.ISO-8859-1 French.ISO8859-1 French.ISO88591 ); foreach my $try (@tries) { last if setlocale LC_ALL, $try; } Set Locale::Util(3pm) for functions that help you with this. Alternatively, you can force a certain language by setting the environment variables LANGUAGE, LANG and OUTPUT_CHARSET, but this is only guaranteed to work, if you use the pure Perl implementation of gettext (see the documentation for select_package() in Locale::Messages(3pm)). You would do the above like this: use Locale::Messages qw (nl_putenv); # LANGUAGE is a colon separated list of languages. nl_putenv("LANGUAGE=fr_FR"); # If LANGUAGE is set, LANG should be set to the primary language. # This is not needed for gettext, but for other parts of the system # it is. nl_putenv("LANG=fr_FR"); # Force an output charset like this: nl_putenv("OUTPUT_CHARSET=iso-8859-1"); setlocale (LC_MESSAGES, 'C'); These environment variables are GNU extensions, and they are also honored by libintl-perl. Still, you should always try to set the locale with setlocale for the catch-all category LC_ALL. If you miss to do so, your program's output maybe cluttered, mixing languages and charsets, if the system runs in a locale that is not compatible with your own language settings. Remember that these environment variables are not guaranteed to work, if you use an XS version of gettext. In order to force usage of the pure Perl implementation, do the following: Locale::Messages->select_package ('gettext_pp'); If you think, this is brain-damaged, you are right, but I cannot help you. Actually there should be a more flexible API than setlocale, but at the time of this writing there isn't. Until then, the recommentation goes like this: 1) Try setting LC_ALL with Locale::Util. 2) If that does not succeed, either give up or ... 3) Reset LC_MESSAGES to C/POSIX. 4) Switch to pure Perl for gettext. 5) Set the environment variables LANGUAGE, LANG, and OUTPUT_CHARSET to your desired values. =head2 What is the advantage of libintl-perl over Locale::Maketext? Of course, I can only give my personal opinion as an answer. Locale::Maketext claims to fix design flaws in gettext. These alleged design flaws, however, boil down to one pathological case which always has a workaround. But both programmers and translators pay this fix with an unnecessarily complicated interface. The paramount advantage of libintl-perl is that it uses an approved technology and concept. Except for Java(tm) programs, this is the state-of-the-art concept for localizing Un*x software. Programmers that have already localized software in C, C++, C#, Python, PHP, or a number of other languages will feel instantly at home, when localizing software written in Perl with libintl-perl. The same holds true for the translators, because the files they deal with have exactly the same format as those for other programming languages. They can use the same set of tools, and even the commands they have to execute are the same. With libintl-perl refactoring of the software is painless, even if you modify, add or delete translatable strings. The gettext tools are powerful enough to reduce the effort of the translators to the bare minimum. Maintaining the message catalogs of Locale::Maketext in larger scale projects, is IMHO unfeasible. Editing the message catalogs of Locale::Maketext - they are really Perl modules - asks too much from most translators, unless they are programmers. The portable object (po) files used by libintl-perl have a simple syntax, and there are a bunch of specialized GUI editors for these files, that facilitate the translation process and hide most complexity from the user. Furthermore, libintl-perl makes it possible to mix programming languages without a paradigm shift in localization. Without any special efforts, you can write a localized software that has modules written in C, modules in Perl, and builds a Gtk user interface with Glade. All translatable strings end up in one single message catalog. Last but not least, the interface used by libintl-perl is plain simple: Prepend translatable strings with a double underscore, and you are done in most cases. =head2 Why do single-quoted strings not work? You probably write something like this: print __'Hello'; And you get an error message like "Can't find string terminator "'" anywhere before EOF at ...", or even "Bareword found where operator expected at ... Might be a runaway multi-line '' string starting on". The above line is (really!) essentially the same as writing: print __::Hello'; A lesser know feature of Perl is that you can use a single quote ("'") as the separator in packages instead of the double colon (":"). What the Perl parser sees in the first example is a valid package name ("__") followed by the separator ("'"), then another valid package name ("Hello") followed by a lone single quote. It is therefore not a problem in libintl-perl but simple wrong Perl syntax. You have to correct alternatives: print __ 'Hello'; # Insert a space to disambiguate. Or use double-quotes: print __"Hello"; Thanks to Slavi Agafonkin for pointing me to the solution of this mystery. =head2 What options should be used with xgettext? More precise, the question should be which '--keyword' and '--flag' options for xgettext should be used. All other options are completely dependent on your use-case. If you are using L or L for localizing Perl code, the default keywords and default flags built into xgettext are correct. If you are using L you have to use a long plethora of command-line options for xgettext. Beginning with libintl-perl 1.28 you can use the library itself to produce these options: perl -MLocale::TextDomain -e 'print Locale::TextDomain->options' If you want to disable the use of the built-in default keywords, precede the output of the above command with '--keyword=""'. That will reset the keywords for xgettext. =head2 Why Isn't There A Function N__x(), N__nx(), or N__px()? The sole purpose of these functions would be to set proper flags in the output of B. You probably thought of something like this: xgettext --keyword=N__x --flag=N__x:1:perl-brace-format filename.pl First of all, xgettext(1) will I set the flag correctly if the argument to N__() I like a brace format string. Second, you can set any flag you want on the PO entry with a source code comment: # xgettext: no-perl-brace-format my $msg = N__("Placeholders are enclosed in {curly} braces."); When B extracts the string, it will appear like this in the F<.pot> file: #: filename.pl:2304 #, no-perl-brace-format msgid "Placeholders are enclosed in {curly} braces." msgstr "" No reason to pollute the namespace with N__x functions. PK]7^0^0gettext_dumb.pmnu[PK]aOyy 0Messages.pmnu[PK]\ΪUtil.pmnu[PK]tո00 4RecodeData.pmnu[PK]n^*^*VERecode/_Conversions.pmnu[PK]N]]oRecode/_Aliases.pmnu[PK]3o<'<' ,Recode.pmnu[PK]j gettext_xs.pmnu[PK]``h RecodeData/IBM874.pmnu[PK]aigig[jRecodeData/CP1257.pmnu[PK]Z(OORecodeData/EBCDIC_ES_A.pmnu[PK]="P"Ph!RecodeData/EBCDIC_ES.pmnu[PK]pےRhRhqRecodeData/IBM420.pmnu[PK]YiigRecodeData/MACUKRAINE.pmnu[PK]]k]kTDRecodeData/IBM866.pmnu[PK]dĨjjRecodeData/ECMA_CYRILLIC.pmnu[PK]ݧIIRecodeData/ISO_5427.pmnu[PK])gZPZPdRecodeData/EBCDIC_FR.pmnu[PK];%kkvRecodeData/SAMI_WS2.pmnu[PK]c RecodeData/_Encode.pmnu[PK]ǻݒjj*RecodeData/IBM278.pmnu[PK]8 }H}HFRecodeData/INIS_CYRILLIC.pmnu[PK]1}__RecodeData/ISO_8859_11.pmnu[PK]%V>l>l>RecodeData/IBM863.pmnu[PK]ßPPRecodeData/EBCDIC_DK_NO.pmnu[PK];ϢiiRecodeData/MACCYRILLIC.pmnu[PK];;ZeRecodeData/INIS_8.pmnu[PK]{jjRecodeData/IBM1047.pmnu[PK]A$PP RecodeData/EBCDIC_IT.pmnu[PK]jj] RecodeData/IBM297.pmnu[PK]|&q^^ RecodeData/MACHEBREW.pmnu[PK]6%akak' RecodeData/HP_ROMAN8.pmnu[PK]E$PP^ RecodeData/IBM275.pmnu[PK]+Zgg@ RecodeData/IEC_P27_1.pmnu[PK]QiQihL RecodeData/IBM905.pmnu[PK]Vk(H(H RecodeData/NATS_DANO.pmnu[PK] lll RecodeData/IBM861.pmnu[PK] -!bqqk RecodeData/VISCII.pmnu[PK]PP RecodeData/EBCDIC_AT_DE.pmnu[PK]o+dd. RecodeData/IBM868.pmnu[PK]Sw"ii RecodeData/MACTURKISH.pmnu[PK]zkk RecodeData/IBM037.pmnu[PK]HPyOO/hRecodeData/EBCDIC_FI_SE_A.pmnu[PK] eOsRecodeData/UTF_8.pmnu[PK]+\29G9G+RecodeData/IBM903.pmnu[PK]n(j(jRecodeData/CP1250.pmnu[PK].\S>%RecodeData/ISO_5427_EXT.pmnu[PK]$1PP`!&RecodeData/IBM038.pmnu[PK]Qjjq&RecodeData/IBM277.pmnu[PK]3/,fDfD&RecodeData/INIS.pmnu[PK]iiw!'RecodeData/ISO_8859_3.pmnu[PK]ii'RecodeData/CP1251.pmnu[PK]'{Dll'RecodeData/IBM860.pmnu[PK]vllb(RecodeData/ISO_8859_10.pmnu[PK]LzGG(RecodeData/IBM904.pmnu[PK]Ihh)RecodeData/ISO_8859_7.pmnu[PK]^=3hhA)RecodeData/CP1254.pmnu[PK]kI$jjQ)RecodeData/IBM256.pmnu[PK]sEEiU*RecodeData/ASMO_449.pmnu[PK]K)l)l*RecodeData/ISO_8859_2.pmnu[PK]O:#j#j+RecodeData/ISO_8859_15.pmnu[PK]QE9G9Gr+RecodeData/IBM891.pmnu[PK]Uii+RecodeData/MACICELAND.pmnu[PK]"GG#,RecodeData/LATIN_GREEK_1.pmnu[PK]]?jvGlGl(l,RecodeData/ISO_8859_14.pmnu[PK]\hh,RecodeData/CP10007.pmnu[PK]M-eeA-RecodeData/CP1253.pmnu[PK]3bb-RecodeData/IBM918.pmnu[PK]tǡmjj .RecodeData/ISO_8859_13.pmnu[PK]լqOqOt.RecodeData/EBCDIC_DK_NO_A.pmnu[PK])jjz.RecodeData/ISO_8859_9.pmnu[PK]-$=XX//RecodeData/ISO_10367_BOX.pmnu[PK]k\oioiLj/RecodeData/CP1252.pmnu[PK])b)bz/RecodeData/MACARABIC.pmnu[PK]SbiOOT0RecodeData/EBCDIC_PT.pmnu[PK]=kkʤ0RecodeData/IBM500.pmnu[PK]'Y.Ҝ]]1RecodeData/IBM424.pmnu[PK]jjm1RecodeData/ISO_8859_5.pmnu[PK]jj1RecodeData/IBM273.pmnu[PK]̕ l lD2RecodeData/KOI8_R.pmnu[PK]<5jjw2RecodeData/IBM862.pmnu[PK]>ݩ\\3RecodeData/ISO_8859_6.pmnu[PK]_l" j jx3RecodeData/MACGREEK.pmnu[PK]IVV3RecodeData/EBCDIC_CA_FR.pmnu[PK]ii1:4RecodeData/MACROMANIA.pmnu[PK]%\jjQ4RecodeData/IBM871.pmnu[PK]އ j5TextDomain.pmnu[PK]UFj n n 5gettext_pp.pmnu[PK].mA/A/ 6libintlFAQ.podnu[PK1N=6