Root Zanli
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
thread-self
/
root
/
usr
/
share
/
perl5
/
vendor_perl
/
MIME
/
Charset
/
Filename :
UTF.pm
back
Copy
#-*- perl -*- #-*- encoding: utf-8 -*- package MIME::Charset::UTF; use strict; use Carp qw(croak); use Encode::Encoding; use vars qw(@ISA $VERSION); @ISA = qw(Encode::Encoding); $VERSION = '1.010'; __PACKAGE__->Define('x-utf16auto'); __PACKAGE__->Define('x-utf32auto'); sub perlio_ok { 0 } sub decode { my ($self, $octets, $check) = @_; if ($self->name =~ /16/) { if ($octets =~ /\A\xFE\xFF/ or $octets =~ /\A\xFF\xFE/) { return Encode::find_encoding('UTF-16')->decode($_[1], $_[2]); } else { return Encode::find_encoding('UTF-16BE')->decode($_[1], $_[2]); } } elsif ($self->name =~ /32/) { if ($octets =~ /\A\0\0\xFE\xFF/ or $octets =~ /\A\xFF\xFE\0\0/) { return Encode::find_encoding('UTF-32')->decode($_[1], $_[2]); } else { return Encode::find_encoding('UTF-32BE')->decode($_[1], $_[2]); } } else { croak 'bug in logic. Ask developer'; } } sub encode { my $self = $_[0]; if ($self->name =~ /16/) { return Encode::find_encoding('UTF-16')->encode($_[1], $_[2]); } elsif ($self->name =~ /32/) { return Encode::find_encoding('UTF-32')->encode($_[1], $_[2]); } else { croak 'bug in logic. Ask developer'; } }