view release on metacpan or search on metacpan
include/ppport.h view on Meta::CPAN
pad_sv|||
pad_swipe|||
pad_tidy|||
pad_undef|||
parse_body|||
parse_unicode_opts|||
path_is_absolute|||
peep|||
pending_ident|||
perl_alloc_using|||n
perl_alloc|||n
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Audio/TagLib/String.pm view on Meta::CPAN
=end stopwords
=head1 NAME
Audio::TagLib::String - A wide string class suitable for unicode
=head1 SYNOPSIS
use Audio::TagLib::String;
lib/Audio/TagLib/String.pm view on Meta::CPAN
=item I<DESTROY()>
Destroys this String instance.
=item I<PV to8Bit(BOOL $unicode = FALSE)>
If $unicode is false (the default) this will return a Latin1 encoded
string. If it is true the returned string will be UTF-8 encoded and
UTF8 flag on.
=item I<PV toCString(BOOL $unicode = FALSE)>
see I<to8Bit()>
B<WARNING> Differ from C/C++, the PV will contain a copy of the string
returned by C/C++ code.
view all matches for this distribution
view release on metacpan or search on metacpan
pad_sv|||
pad_swipe|||
pad_tidy|||
pad_undef|||
parse_body|||
parse_unicode_opts|||
path_is_absolute|||
peep|||
pending_ident|||
perl_alloc_using|||n
perl_alloc|||n
view all matches for this distribution
view release on metacpan or search on metacpan
session: "simple"
# when the charset is set to UTF-8 Dancer will handle for you
# all the magic of encoding and decoding. You should not care
# about unicode within your app when this setting is set (recommended).
charset: "UTF-8"
# template engine
# simple: default and very basic template engine
# template_toolkit: TT
view all matches for this distribution
view release on metacpan or search on metacpan
pad_sv||5.011000|
pad_swipe|||
pad_tidy|||
pad_undef|||
parse_body|||
parse_unicode_opts|||
parser_dup|||
parser_free|||
path_is_absolute|||n
peep|||
pending_Slabs_to_ro|||
#ifndef PERL_PV_PRETTY_REGPROP
# define PERL_PV_PRETTY_REGPROP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE
#endif
/* Hint: pv_escape
* Note that unicode functionality is only backported to
* those perl versions that support it. For older perl
* versions, the implementation will fall back to bytes.
*/
#ifndef pv_escape
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Authen/NTLM/HTTP.pm view on Meta::CPAN
use constant NTLMSSP_AUTH => 3;
use constant NTLMSSP_UNKNOWN => 4;
# NTLMSSP Flags
# Text strings are in unicode
use constant NTLMSSP_NEGOTIATE_UNICODE => 0x00000001;
# Text strings are in OEM
use constant NTLMSSP_NEGOTIATE_OEM => 0x00000002;
# Server should return its authentication realm
use constant NTLMSSP_REQUEST_TARGET => 0x00000004;
view all matches for this distribution
view release on metacpan or search on metacpan
parse_listexpr||5.013008|
parse_lparen_question_flags|||
parse_stmtseq||5.013006|
parse_subsignature|||
parse_termexpr||5.013008|
parse_unicode_opts|||
parser_dup|||
parser_free_nexttoke_ops|||
parser_free|||
path_is_searchable|||n
peep|||
#ifndef PERL_PV_PRETTY_REGPROP
# define PERL_PV_PRETTY_REGPROP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE
#endif
/* Hint: pv_escape
* Note that unicode functionality is only backported to
* those perl versions that support it. For older perl
* versions, the implementation will fall back to bytes.
*/
#ifndef pv_escape
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Authen/Perl/NTLM.pm view on Meta::CPAN
use constant NTLMSSP_AUTH => 3;
use constant NTLMSSP_UNKNOWN => 4;
# NTLMSSP Flags
# Text strings are in unicode
use constant NTLMSSP_NEGOTIATE_UNICODE => 0x00000001;
# Text strings are in OEM
use constant NTLMSSP_NEGOTIATE_OEM => 0x00000002;
# Server should return its authentication realm
use constant NTLMSSP_REQUEST_TARGET => 0x00000004;
lib/Authen/Perl/NTLM.pm view on Meta::CPAN
}
return $cipher1->encrypt($nonce) . $cipher2->encrypt($nonce) . $cipher3->encrypt($nonce);
}
#########################################################################
# un_unicodify takes a unicode string and turns it into an ASCII string.
# CAUTION: This function is intended to be used with unicodified ASCII
# strings.
#########################################################################
sub un_unicodify
{
lib/Authen/Perl/NTLM.pm view on Meta::CPAN
}
return $newstr;
}
#########################################################################
# unicodify takes an ASCII string and turns it into a unicode string.
#########################################################################
sub unicodify($)
{
my ($str) = @_;
my $newstr = "";
view all matches for this distribution
view release on metacpan or search on metacpan
smbval/smbencrypt.c view on Meta::CPAN
/* Password cannot be longer than 128 characters */
len = strlen((char *)passwd);
if(len > 128)
len = 128;
/* Password must be converted to NT unicode */
_my_mbstowcs(wpwd, passwd, len);
wpwd[len] = 0; /* Ensure string is null terminated */
/* Calculate length in bytes */
len = _my_wcslen(wpwd) * sizeof(int16);
view all matches for this distribution
view release on metacpan or search on metacpan
pad_sv||5.009005|
pad_swipe|||
pad_tidy|||
pad_undef|||
parse_body|||
parse_unicode_opts|||
parser_dup|||
parser_free|||
path_is_absolute|||n
peep|||
pending_Slabs_to_ro|||
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Automate/Animate/FFmpeg.pm view on Meta::CPAN
use File::Temp;
use File::Find::Rule;
use IPC::Run;
use Text::ParseWords;
use Encode;
use Data::Roundtrip qw/perl2dump no-unicode-escape-permanently/;
use Cwd::utf8 qw/abs_path cwd/;
sub new {
my $class = $_[0];
my $params = $_[1];
lib/Automate/Animate/FFmpeg.pm view on Meta::CPAN
$pattern = qr/(?${mo})${pa}/;
} else { $pattern = $_pattern }
if( $verbos > 1 ){ print "${whoami} (via $parent), line ".__LINE__." : searching under dir '$indir' with pattern '".$pattern."' ...\n" }
if( ! defined $self->input_images([
# this little piglet does not support unicode
# or, rather, readdir() needs some patching
# additionally, it fails in M$ as the unicoded
# filenames get doubly encoded, let's see if this will fix it:
($^O eq 'MSWin32')
?
File::Find::Rule
->file()
lib/Automate/Animate/FFmpeg.pm view on Meta::CPAN
my $verbos = $self->verbosity();
if( $verbos > 0 ){
if( $verbos > 1 ){ print STDOUT perl2dump($m)."${whoami} (via $parent), line ".__LINE__." : called with input images as shown above ...\n" }
else { print STDOUT "${whoami} (via $parent), line ".__LINE__." : called ...\n" }
}
# NOTE: Cwd::abs_path() messes up on unicode filenames and requires Encode::decode_utf8()
# but there is also Cwd::utf8 to consider sometime...
my $rf = ref $m;
if( $rf eq 'ARRAY' ){
for my $af (@$m){
if( ! -e $af ){ print STDERR "${whoami} (via $parent), line ".__LINE__." : warning/1, input image '$af' does not exist on disk and will be ignored.\n"; next }
lib/Automate/Animate/FFmpeg.pm view on Meta::CPAN
}
sub _my_cwd {
return cwd()
}
# NOTE: unicode filenames may not be canonicalised
# e.g. iota-including-accent and iota with separate accent.
# the OS will not care but if you do comparisons you will fail
# So, consider canonicalising the filenames if you are doing comparison
# e.g. in the tests
# see https://perlmonks.org/?node_id=11156629
lib/Automate/Animate/FFmpeg.pm view on Meta::CPAN
B<Caveat>: the regex is parsed, compiled and passed on to L<File::Find::Rule>.
Escaping of special characters (e.g. the backslash) may be required.
B<Caveat>: the order of the matched input images is entirely up
to L<File::Find::Rule>. There may be unexpected results
when filenames contain unicode characters. Consider
these orderings for example:
=over 2
=item * C<blue.png, κίÏÏινο.png, red.png>,
view all matches for this distribution
view release on metacpan or search on metacpan
bin/PerlDemo.adl view on Meta::CPAN
date dt;
int i;
long l;
short sh;
string s;
unicode_char uc;
unicode_string us;
struct {
boolean b;
char c;
byte by;
double d;
bin/PerlDemo.adl view on Meta::CPAN
date dt;
int i;
long l;
short sh;
string s;
unicode_char uc;
unicode_string us;
boolean b_array[];
byte by_array[];
char c_array[];
double d_array[];
date dt_array[];
int i_array[];
float f_array[];
long l_array[];
string s_array[];
short sh_array[];
unicode_char uc_array[];
unicode_string us_array[];
struct {
boolean b;
char c;
byte by;
double d;
bin/PerlDemo.adl view on Meta::CPAN
date dt;
int i;
long l;
short sh;
string s;
unicode_char uc;
unicode_string us;
boolean b_array[];
byte by_array[];
char c_array[];
double d_array[];
date dt_array[];
int i_array[];
float f_array[];
long l_array[];
string s_array[];
short sh_array[];
unicode_char uc_array[];
unicode_string us_array[];
} st;
} st;
struct {
struct {
boolean b;
bin/PerlDemo.adl view on Meta::CPAN
date dt;
int i;
long l;
short sh;
string s;
unicode_char uc;
unicode_string us;
boolean b_array[];
byte by_array[];
char c_array[];
double d_array[];
date dt_array[];
int i_array[];
float f_array[];
long l_array[];
string s_array[];
short sh_array[];
unicode_char uc_array[];
unicode_string us_array[];
struct {
boolean b;
char c;
byte by;
double d;
bin/PerlDemo.adl view on Meta::CPAN
date dt;
int i;
long l;
short sh;
string s;
unicode_char uc;
unicode_string us;
boolean b_array[];
byte by_array[];
char c_array[];
double d_array[];
date dt_array[];
int i_array[];
float f_array[];
long l_array[];
string s_array[];
short sh_array[];
unicode_char uc_array[];
unicode_string us_array[];
} st;
} st;
boolean b;
char c;
byte by;
bin/PerlDemo.adl view on Meta::CPAN
date dt;
int i;
long l;
short sh;
string s;
unicode_char uc;
unicode_string us;
boolean b_array[];
byte by_array[];
char c_array[];
double d_array[];
date dt_array[];
int i_array[];
float f_array[];
long l_array[];
string s_array[];
short sh_array[];
unicode_char uc_array[];
unicode_string us_array[];
} st_array[];
boolean b_array[];
byte by_array[];
char c_array[];
double d_array[];
bin/PerlDemo.adl view on Meta::CPAN
int i_array[];
float f_array[];
long l_array[];
string s_array[];
short sh_array[];
unicode_char uc_array[];
unicode_string us_array[];
}
eventtype PerlDevKit::PerlDemo {
storageType = Guaranteed;
timeToLive = 0;
description = "Demonstration Event for Perl";
view all matches for this distribution
view release on metacpan or search on metacpan
lib/AxKit2/Transformer/XSP.pm view on Meta::CPAN
A warning about character sets: All string values are passed in and
expected back as UTF-8 encoded strings. So you cannot use national characters
in a different encoding, like the widespread ISO-8859-1. This applies to
Taglib source code only. The XSP XML-source is of course interpreted according
to the XML rules. Your taglib module may want to 'use utf8;' as well, see
L<perlunicode> and L<utf8> for more information.
=head1 Design Patterns
These patterns represent the things you may want to achieve when
view all matches for this distribution
view release on metacpan or search on metacpan
# if REGCOMP can be called in init or deferred in init1
sub re_does_swash {
my ($qstr, $pmflags) = @_;
# SWASHNEW, now needing a multideref GV. 0x5000000 is just a hack. can be more
if (($] >= 5.021006 and ($pmflags & 0x5000000 == 0x5000000))
# or any unicode property (#253). Note: \p{} breaks #242
or ($qstr =~ /\\P\{/)
)
{
return 1;
} else {
print qq{ sv_setpv_mg(get_svs("0", GV_ADD|GV_NOTQUAL), argv[0]);\n};
print qq{ CopFILE_set(&PL_compiling, argv[0]);\n};
}
# more global vars
print " PL_hints = $^H;\n" if $^H;
print " PL_unicode = ${^UNICODE};\n" if ${^UNICODE};
# system-specific needs to be skipped: is set during init_i18nl10n if PerlIO
# is compiled in and on a utf8 locale.
#print " PL_utf8locale = ${^UTF8LOCALE};\n" if ${^UTF8LOCALE};
#print " PL_utf8cache = ${^UTF8CACHE};\n" if ${^UTF8CACHE};
# nomg
view all matches for this distribution
view release on metacpan or search on metacpan
t/roundtrip/test.pl view on Meta::CPAN
$key =~ s/^d_//;
skip_all("no $key");
}
}
sub skip_all_without_unicode_tables { # (but only under miniperl)
if (is_miniperl()) {
skip_all_if_miniperl("Unicode tables not built yet")
unless eval 'require "unicore/Heavy.pl"';
}
}
view all matches for this distribution
view release on metacpan or search on metacpan
parser_free|5.009005||Viu
parser_free_nexttoke_ops|5.017006||Viu
parse_stmtseq|5.013006|5.013006|x
parse_subsignature|5.031003|5.031003|x
parse_termexpr|5.013008|5.013008|x
parse_unicode_opts|5.008001||Viu
parse_uniprop_string|5.027011||Viu
PATCHLEVEL|5.003007||Viu
path_is_searchable|5.019001||Vniu
Pause|5.003007||Viu
pause|5.005000||Viu
PL_tokenbuf||5.003007|ponu
PL_top_env|5.005000||Viu
PL_toptarget|5.005000||Viu
PL_TR_SPECIAL_HANDLING_UTF8|5.031006||Viu
PL_underlying_numeric_obj|5.027009||Viu
PL_unicode|5.008001||Viu
PL_unitcheckav|5.009005||Viu
PL_unitcheckav_save|5.009005||Viu
PL_unlockhook|5.007003||Viu
PL_unsafe|5.005000||Viu
PL_UpperLatin1|5.019005||Viu
#ifndef PERL_PV_PRETTY_REGPROP
# define PERL_PV_PRETTY_REGPROP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE
#endif
/* Hint: pv_escape
* Note that unicode functionality is only backported to
* those perl versions that support it. For older perl
* versions, the implementation will fall back to bytes.
*/
#ifndef pv_escape
view all matches for this distribution
view release on metacpan or search on metacpan
pad_sv||5.011000|
pad_swipe|||
pad_tidy|||
pad_undef|||
parse_body|||
parse_unicode_opts|||
parser_dup|||
parser_free|||
path_is_absolute|||n
peep|||
pending_Slabs_to_ro|||
#ifndef PERL_PV_PRETTY_REGPROP
# define PERL_PV_PRETTY_REGPROP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE
#endif
/* Hint: pv_escape
* Note that unicode functionality is only backported to
* those perl versions that support it. For older perl
* versions, the implementation will fall back to bytes.
*/
#ifndef pv_escape
view all matches for this distribution
view release on metacpan or search on metacpan
padnamelist_free|||
parse_body|||
parse_gv_stash_name|||
parse_ident|||
parse_lparen_question_flags|||
parse_unicode_opts|||
parse_uniprop_string|||
parser_dup|||
parser_free_nexttoke_ops|||
parser_free|||
path_is_searchable|||n
#ifndef PERL_PV_PRETTY_REGPROP
# define PERL_PV_PRETTY_REGPROP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE
#endif
/* Hint: pv_escape
* Note that unicode functionality is only backported to
* those perl versions that support it. For older perl
* versions, the implementation will fall back to bytes.
*/
#ifndef pv_escape
view all matches for this distribution
view release on metacpan or search on metacpan
pad_sv||5.011000|
pad_swipe|||
pad_tidy|||
pad_undef|||
parse_body|||
parse_unicode_opts|||
parser_dup|||
parser_free|||
path_is_absolute|||n
peep|||
pending_Slabs_to_ro|||
#ifndef PERL_PV_PRETTY_REGPROP
# define PERL_PV_PRETTY_REGPROP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE
#endif
/* Hint: pv_escape
* Note that unicode functionality is only backported to
* those perl versions that support it. For older perl
* versions, the implementation will fall back to bytes.
*/
#ifndef pv_escape
view all matches for this distribution
view release on metacpan or search on metacpan
parse_listexpr||5.013008|
parse_lparen_question_flags|||
parse_stmtseq||5.013006|
parse_subsignature|||
parse_termexpr||5.013008|
parse_unicode_opts|||
parser_dup|||
parser_free_nexttoke_ops|||
parser_free|||
path_is_searchable|||n
peep|||
#ifndef PERL_PV_PRETTY_REGPROP
# define PERL_PV_PRETTY_REGPROP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE
#endif
/* Hint: pv_escape
* Note that unicode functionality is only backported to
* those perl versions that support it. For older perl
* versions, the implementation will fall back to bytes.
*/
#ifndef pv_escape
view all matches for this distribution
view release on metacpan or search on metacpan
parse_listexpr||5.013008|
parse_lparen_question_flags|||
parse_stmtseq||5.013006|
parse_subsignature|||
parse_termexpr||5.013008|
parse_unicode_opts|||
parser_dup|||
parser_free_nexttoke_ops|||
parser_free|||
path_is_searchable|||n
peep|||
#ifndef PERL_PV_PRETTY_REGPROP
# define PERL_PV_PRETTY_REGPROP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE
#endif
/* Hint: pv_escape
* Note that unicode functionality is only backported to
* those perl versions that support it. For older perl
* versions, the implementation will fall back to bytes.
*/
#ifndef pv_escape
view all matches for this distribution
view release on metacpan or search on metacpan
parse_body|||
parse_gv_stash_name|||
parse_ident|||
parse_lparen_question_flags|||
parse_subsignature|||
parse_unicode_opts|||
parser_dup|||
parser_free_nexttoke_ops|||
parser_free|||
path_is_searchable|||n
peep|||
#ifndef PERL_PV_PRETTY_REGPROP
# define PERL_PV_PRETTY_REGPROP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE
#endif
/* Hint: pv_escape
* Note that unicode functionality is only backported to
* those perl versions that support it. For older perl
* versions, the implementation will fall back to bytes.
*/
#ifndef pv_escape
view all matches for this distribution
view release on metacpan or search on metacpan
pad_sv||5.011000|
pad_swipe|||
pad_tidy|||
pad_undef|||
parse_body|||
parse_unicode_opts|||
parser_dup|||
parser_free|||
path_is_absolute|||n
peep|||
pending_Slabs_to_ro|||
#ifndef PERL_PV_PRETTY_REGPROP
# define PERL_PV_PRETTY_REGPROP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE
#endif
/* Hint: pv_escape
* Note that unicode functionality is only backported to
* those perl versions that support it. For older perl
* versions, the implementation will fall back to bytes.
*/
#ifndef pv_escape
view all matches for this distribution
view release on metacpan or search on metacpan
parse_listexpr||5.013008|
parse_lparen_question_flags|||
parse_stmtseq||5.013006|
parse_subsignature|||
parse_termexpr||5.013008|
parse_unicode_opts|||
parser_dup|||
parser_free_nexttoke_ops|||
parser_free|||
path_is_searchable|||n
peep|||
#ifndef PERL_PV_PRETTY_REGPROP
# define PERL_PV_PRETTY_REGPROP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE
#endif
/* Hint: pv_escape
* Note that unicode functionality is only backported to
* those perl versions that support it. For older perl
* versions, the implementation will fall back to bytes.
*/
#ifndef pv_escape
view all matches for this distribution
view release on metacpan or search on metacpan
This requires XSLoader and also includes the huge B, at least when compiled.
The biggest hit is the Carp warning when AUTOLOAD a XS module fails. Then Carp is dynaloaded to print the callstack. Printing the callstack in case of dynaloader errors should seriously not be dependent on DynaLoader, it should be provided by the sta...
3) swash_init utf8
utf8_heavy is autoloaded whenever perl needs upper-case/lower-case folding tables. These tables include all unicode tables because we are not ASCII anymore, which are loaded as fat perl tables, not as fast c arrays as e.g. Encode or icu does. Perl mi...
There is no heuristic to check the string for possible non-ascii strings, there is no ascii pragma (no utf8 would be the correct name) to prevent from loading these tables.
With B::C I introduced -fno-fold for 5.13.9 to save 1.6MB executable size on 32-bit
when utf8 folding is not required.
Anyway, I'm now measuring the size of the optree at certain stages with my new module B::Stats. It unfortunately requires B, which itself includes 14 files, 3821 lines and ca. 4883 ops. I have to subtract this constant overhead, similar to a profiler...
view all matches for this distribution
view release on metacpan or search on metacpan
lib/B/ppport.h view on Meta::CPAN
parser_free|5.009005||Viu
parser_free_nexttoke_ops|5.017006||Viu
parse_stmtseq|5.013006|5.013006|x
parse_subsignature|5.031003|5.031003|x
parse_termexpr|5.013008|5.013008|x
parse_unicode_opts|5.008001||Viu
parse_uniprop_string|5.027011||cViu
path_is_searchable|5.019001||nViu
peep|5.003007||Viu
pending_ident|5.017004||Viu
PERL_ABS|5.008001|5.003007|p
lib/B/ppport.h view on Meta::CPAN
#ifndef PERL_PV_PRETTY_REGPROP
# define PERL_PV_PRETTY_REGPROP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE
#endif
/* Hint: pv_escape
* Note that unicode functionality is only backported to
* those perl versions that support it. For older perl
* versions, the implementation will fall back to bytes.
*/
#ifndef pv_escape
view all matches for this distribution
view release on metacpan or search on metacpan
pad_sv||5.011000|
pad_swipe|||
pad_tidy|||
pad_undef|||
parse_body|||
parse_unicode_opts|||
parser_dup|||
parser_free|||
path_is_absolute|||n
peep|||
pending_Slabs_to_ro|||
#ifndef PERL_PV_PRETTY_REGPROP
# define PERL_PV_PRETTY_REGPROP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE
#endif
/* Hint: pv_escape
* Note that unicode functionality is only backported to
* those perl versions that support it. For older perl
* versions, the implementation will fall back to bytes.
*/
#ifndef pv_escape
view all matches for this distribution
view release on metacpan or search on metacpan
parse_listexpr||5.013008|
parse_lparen_question_flags|||
parse_stmtseq||5.013006|
parse_subsignature|||
parse_termexpr||5.013008|
parse_unicode_opts|||
parser_dup|||
parser_free_nexttoke_ops|||
parser_free|||
path_is_searchable|||n
peep|||
#ifndef PERL_PV_PRETTY_REGPROP
# define PERL_PV_PRETTY_REGPROP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE
#endif
/* Hint: pv_escape
* Note that unicode functionality is only backported to
* those perl versions that support it. For older perl
* versions, the implementation will fall back to bytes.
*/
#ifndef pv_escape
view all matches for this distribution
view release on metacpan or search on metacpan
Perl on Win32 supports only ASCII filenames (the reason is that it abuses
an internal flag to store wether a filename is Unicode or ANSI, but that
flag is used for somethign else in the perl core, so there is no way to
detect wether a filename is ANSI or Unicode-encoded). The BDB module
tries to work around this issue by assuming that the filename is an ANSI
filename and BDB was built for unicode support.
=head1 KNOWN BUGS
Known bugs will be fixed in the next release, except:
view all matches for this distribution
view release on metacpan or search on metacpan
t/02-perl.t view on Meta::CPAN
use warnings;
use Test::More tests => 18;
use BERT;
# unicode string
my $perl = 'fooåäöÃ
ÃÃbar';
my $bert = encode_bert($perl);
is_deeply([ unpack 'C*', $bert ],
[
131, 109, 0, 0, 0, 18, 102, 111, 111, 195, 165, 195, 164, 195, 182,
195, 133, 195, 132, 195, 150, 98, 97, 114
], 'unicode string encode');
is(decode_bert($bert), $perl, 'unicode string decode');
# empty string
$perl = '';
$bert = encode_bert($perl);
is_deeply([ unpack 'C*', $bert ],
view all matches for this distribution