__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
#! /bin/false
# vim: set autoindent shiftwidth=4 tabstop=4:
# Conversion routines for UTF-8 (perl < 5.8.0).
# Copyright (C) 2002-2017 Guido Flohr <guido.flohr@cantanea.com>,
# 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 <http://www.gnu.org/licenses/>.
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<lt>= 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<Guido Flohr|http://www.guido-flohr.net/>
(L<mailto:guido.flohr@cantanea.com>), 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:
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| ASMO_449.pm | File | 17.49 KB | 0644 |
|
| ATARI_ST.pm | File | 26.3 KB | 0644 |
|
| ATARI_ST_EURO.pm | File | 26.34 KB | 0644 |
|
| CP10007.pm | File | 26.17 KB | 0644 |
|
| CP1250.pm | File | 26.54 KB | 0644 |
|
| CP1251.pm | File | 26.48 KB | 0644 |
|
| CP1252.pm | File | 26.36 KB | 0644 |
|
| CP1253.pm | File | 25.28 KB | 0644 |
|
| CP1254.pm | File | 26.2 KB | 0644 |
|
| CP1256.pm | File | 25.89 KB | 0644 |
|
| CP1257.pm | File | 25.85 KB | 0644 |
|
| CSN_369103.pm | File | 27 KB | 0644 |
|
| CWI.pm | File | 27.16 KB | 0644 |
|
| DEC_MCS.pm | File | 25.79 KB | 0644 |
|
| EBCDIC_AT_DE.pm | File | 20.17 KB | 0644 |
|
| EBCDIC_AT_DE_A.pm | File | 19.92 KB | 0644 |
|
| EBCDIC_CA_FR.pm | File | 21.71 KB | 0644 |
|
| EBCDIC_DK_NO.pm | File | 20.17 KB | 0644 |
|
| EBCDIC_DK_NO_A.pm | File | 19.86 KB | 0644 |
|
| EBCDIC_ES.pm | File | 20.03 KB | 0644 |
|
| EBCDIC_ES_A.pm | File | 19.77 KB | 0644 |
|
| EBCDIC_ES_S.pm | File | 20.04 KB | 0644 |
|
| EBCDIC_FI_SE.pm | File | 20.23 KB | 0644 |
|
| EBCDIC_FI_SE_A.pm | File | 19.89 KB | 0644 |
|
| EBCDIC_FR.pm | File | 20.09 KB | 0644 |
|
| EBCDIC_IS_FRISS.pm | File | 19.21 KB | 0644 |
|
| EBCDIC_IT.pm | File | 20.13 KB | 0644 |
|
| EBCDIC_PT.pm | File | 19.9 KB | 0644 |
|
| EBCDIC_UK.pm | File | 19.98 KB | 0644 |
|
| EBCDIC_US.pm | File | 19.97 KB | 0644 |
|
| ECMA_CYRILLIC.pm | File | 26.66 KB | 0644 |
|
| GEORGIAN_ACADEMY.pm | File | 26.09 KB | 0644 |
|
| GEORGIAN_PS.pm | File | 26.07 KB | 0644 |
|
| GOST_19768_74.pm | File | 24.61 KB | 0644 |
|
| GREEK7.pm | File | 18 KB | 0644 |
|
| GREEK7_OLD.pm | File | 18.15 KB | 0644 |
|
| GREEK_CCITT.pm | File | 17.96 KB | 0644 |
|
| HP_ROMAN8.pm | File | 26.84 KB | 0644 |
|
| IBM037.pm | File | 26.77 KB | 0644 |
|
| IBM038.pm | File | 20 KB | 0644 |
|
| IBM1004.pm | File | 26.09 KB | 0644 |
|
| IBM1026.pm | File | 26.7 KB | 0644 |
|
| IBM1047.pm | File | 26.74 KB | 0644 |
|
| IBM256.pm | File | 26.71 KB | 0644 |
|
| IBM273.pm | File | 26.69 KB | 0644 |
|
| IBM274.pm | File | 20.11 KB | 0644 |
|
| IBM275.pm | File | 20.15 KB | 0644 |
|
| IBM277.pm | File | 26.72 KB | 0644 |
|
| IBM278.pm | File | 26.73 KB | 0644 |
|
| IBM280.pm | File | 26.71 KB | 0644 |
|
| IBM281.pm | File | 20 KB | 0644 |
|
| IBM284.pm | File | 26.71 KB | 0644 |
|
| IBM285.pm | File | 26.71 KB | 0644 |
|
| IBM290.pm | File | 22.53 KB | 0644 |
|
| IBM297.pm | File | 26.71 KB | 0644 |
|
| IBM420.pm | File | 26.08 KB | 0644 |
|
| IBM423.pm | File | 26.14 KB | 0644 |
|
| IBM424.pm | File | 23.4 KB | 0644 |
|
| IBM437.pm | File | 27.14 KB | 0644 |
|
| IBM500.pm | File | 26.75 KB | 0644 |
|
| IBM850.pm | File | 26.94 KB | 0644 |
|
| IBM851.pm | File | 26.88 KB | 0644 |
|
| IBM852.pm | File | 27.22 KB | 0644 |
|
| IBM855.pm | File | 26.88 KB | 0644 |
|
| IBM857.pm | File | 26.7 KB | 0644 |
|
| IBM860.pm | File | 27.18 KB | 0644 |
|
| IBM861.pm | File | 27.22 KB | 0644 |
|
| IBM862.pm | File | 26.75 KB | 0644 |
|
| IBM863.pm | File | 27.06 KB | 0644 |
|
| IBM864.pm | File | 26.66 KB | 0644 |
|
| IBM865.pm | File | 27.17 KB | 0644 |
|
| IBM866.pm | File | 26.84 KB | 0644 |
|
| IBM868.pm | File | 25.01 KB | 0644 |
|
| IBM869.pm | File | 26.17 KB | 0644 |
|
| IBM870.pm | File | 26.12 KB | 0644 |
|
| IBM871.pm | File | 26.71 KB | 0644 |
|
| IBM874.pm | File | 24.17 KB | 0644 |
|
| IBM875.pm | File | 26.06 KB | 0644 |
|
| IBM880.pm | File | 26.03 KB | 0644 |
|
| IBM891.pm | File | 17.81 KB | 0644 |
|
| IBM903.pm | File | 17.81 KB | 0644 |
|
| IBM904.pm | File | 17.97 KB | 0644 |
|
| IBM905.pm | File | 26.33 KB | 0644 |
|
| IBM918.pm | File | 24.65 KB | 0644 |
|
| IEC_P27_1.pm | File | 25.97 KB | 0644 |
|
| INIS.pm | File | 17.1 KB | 0644 |
|
| INIS_8.pm | File | 14.98 KB | 0644 |
|
| INIS_CYRILLIC.pm | File | 18.12 KB | 0644 |
|
| ISO_10367_BOX.pm | File | 22.19 KB | 0644 |
|
| ISO_2033_1983.pm | File | 13.39 KB | 0644 |
|
| ISO_5427.pm | File | 18.41 KB | 0644 |
|
| ISO_5427_EXT.pm | File | 15.58 KB | 0644 |
|
| ISO_5428.pm | File | 17.93 KB | 0644 |
|
| ISO_8859_1.pm | File | 16.84 KB | 0644 |
|
| ISO_8859_10.pm | File | 27.19 KB | 0644 |
|
| ISO_8859_11.pm | File | 23.94 KB | 0644 |
|
| ISO_8859_13.pm | File | 26.64 KB | 0644 |
|
| ISO_8859_14.pm | File | 27.07 KB | 0644 |
|
| ISO_8859_15.pm | File | 26.53 KB | 0644 |
|
| ISO_8859_16.pm | File | 26.92 KB | 0644 |
|
| ISO_8859_2.pm | File | 27.04 KB | 0644 |
|
| ISO_8859_3.pm | File | 26.5 KB | 0644 |
|
| ISO_8859_4.pm | File | 27.04 KB | 0644 |
|
| ISO_8859_5.pm | File | 26.7 KB | 0644 |
|
| ISO_8859_6.pm | File | 23.17 KB | 0644 |
|
| ISO_8859_7.pm | File | 26.22 KB | 0644 |
|
| ISO_8859_8.pm | File | 23.61 KB | 0644 |
|
| ISO_8859_9.pm | File | 26.74 KB | 0644 |
|
| KOI8_R.pm | File | 27.03 KB | 0644 |
|
| KOI8_RU.pm | File | 26.88 KB | 0644 |
|
| KOI8_T.pm | File | 25.07 KB | 0644 |
|
| KOI8_U.pm | File | 26.91 KB | 0644 |
|
| KOI_8.pm | File | 22.08 KB | 0644 |
|
| LATIN_GREEK.pm | File | 17.97 KB | 0644 |
|
| LATIN_GREEK_1.pm | File | 17.98 KB | 0644 |
|
| MACARABIC.pm | File | 24.54 KB | 0644 |
|
| MACCROATIAN.pm | File | 26.56 KB | 0644 |
|
| MACCYRILLIC.pm | File | 26.37 KB | 0644 |
|
| MACGREEK.pm | File | 26.53 KB | 0644 |
|
| MACHEBREW.pm | File | 23.68 KB | 0644 |
|
| MACICELAND.pm | File | 26.41 KB | 0644 |
|
| MACINTOSH.pm | File | 26.6 KB | 0644 |
|
| MACROMANIA.pm | File | 26.46 KB | 0644 |
|
| MACTHAI.pm | File | 25.9 KB | 0644 |
|
| MACTURKISH.pm | File | 26.38 KB | 0644 |
|
| MACUKRAINE.pm | File | 26.41 KB | 0644 |
|
| MAC_IS.pm | File | 26.38 KB | 0644 |
|
| MAC_SAMI.pm | File | 26.8 KB | 0644 |
|
| MAC_UK.pm | File | 26.17 KB | 0644 |
|
| NATS_DANO.pm | File | 18.04 KB | 0644 |
|
| NATS_SEFI.pm | File | 18.01 KB | 0644 |
|
| NEXTSTEP.pm | File | 26.44 KB | 0644 |
|
| SAMI_WS2.pm | File | 26.77 KB | 0644 |
|
| TIS_620.pm | File | 23.84 KB | 0644 |
|
| US_ASCII.pm | File | 7.35 KB | 0644 |
|
| UTF_8.pm | File | 4.96 KB | 0644 |
|
| VISCII.pm | File | 28.48 KB | 0644 |
|
| _Encode.pm | File | 2.24 KB | 0644 |
|