diff options
author | SADAHIRO Tomoyuki <BQW10602@nifty.com> | 2004-06-06 09:37:21 +0900 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2004-06-06 07:49:27 +0000 |
commit | 78ea37eb92d97de2362f1599aa0c3f43c5e70866 (patch) | |
tree | 0d0a05bdd7716d72c4368a8e833e553689f45ddb /lib/utf8.pm | |
parent | e2736246f9096d0e04a2974deaf51d6950e0ac3f (diff) | |
download | perl-78ea37eb92d97de2362f1599aa0c3f43c5e70866.tar.gz |
Re: [PATCH] [perl #29841] utf8::decode doesn't work under -T
Message-Id: <20040606003344.57B2.BQW10602@nifty.com>
p4raw-id: //depot/perl@22902
Diffstat (limited to 'lib/utf8.pm')
-rw-r--r-- | lib/utf8.pm | 74 |
1 files changed, 44 insertions, 30 deletions
diff --git a/lib/utf8.pm b/lib/utf8.pm index 486a4faa88..0b57d6d968 100644 --- a/lib/utf8.pm +++ b/lib/utf8.pm @@ -113,45 +113,59 @@ you should not say that unless you really want to have UTF-8 source code. =item * $num_octets = utf8::upgrade($string) -Converts (in-place) internal representation of string to Perl's -internal I<UTF-X> form. Returns the number of octets necessary to -represent the string as I<UTF-X>. Can be used to make sure that the -UTF-8 flag is on, so that C<\w> or C<lc()> work as expected on strings -containing characters in the range 0x80-0xFF (oon ASCII and -derivatives). Note that this should not be used to convert a legacy -byte encoding to Unicode: use Encode for that. Affected by the -encoding pragma. +Converts in-place the octet sequence in the native encoding +(Latin-1 or EBCDIC) to the equivalent character sequence in I<UTF-X>. +I<$string> already encoded as characters does no harm. +Returns the number of octets necessary to represent the string as I<UTF-X>. +Can be used to make sure that the UTF-8 flag is on, +so that C<\w> or C<lc()> work as Unicode on strings +containing characters in the range 0x80-0xFF (on ASCII and +derivatives). + +B<Note that this function does not handle arbitrary encodings.> +Therefore I<Encode.pm> is recommended for the general purposes. + +Affected by the encoding pragma. =item * $success = utf8::downgrade($string[, FAIL_OK]) -Converts (in-place) internal representation of string to be un-encoded -bytes. Returns true on success. On failure dies or, if the value of -FAIL_OK is true, returns false. Can be used to make sure that the -UTF-8 flag is off, e.g. when you want to make sure that the substr() -or length() function works with the usually faster byte algorithm. -Note that this should not be used to convert Unicode back to a legacy -byte encoding: use Encode for that. B<Not> affected by the encoding -pragma. +Converts in-place the character sequence in I<UTF-X> +to the equivalent octet sequence in the native encoding (Latin-1 or EBCDIC). +I<$string> already encoded as octets does no harm. +Returns true on success. On failure dies or, if the value of +C<FAIL_OK> is true, returns false. +Can be used to make sure that the UTF-8 flag is off, +e.g. when you want to make sure that the substr() or length() function +works with the usually faster byte algorithm. + +B<Note that this function does not handle arbitrary encodings.> +Therefore I<Encode.pm> is recommended for the general purposes. + +B<Not> affected by the encoding pragma. + +B<NOTE:> this function is experimental and may change +or be removed without notice. =item * utf8::encode($string) -Converts in-place the octets of the I<$string> to the octet sequence -in Perl's I<UTF-X> encoding. Returns nothing. B<Note that this does -not change the "type" of I<$string> to UTF-8>, and that this handles -only ISO 8859-1 (or EBCDIC) as the source character set. Therefore -this should not be used to convert a legacy 8-bit encoding to Unicode: -use Encode::decode() for that. In the very limited case of wanting to -handle just ISO 8859-1 (or EBCDIC), you could use utf8::upgrade(). +Converts in-place the character sequence to the corresponding octet sequence +in I<UTF-X>. The UTF-8 flag is turned off. Returns nothing. + +B<Note that this function does not handle arbitrary encodings.> +Therefore I<Encode.pm> is recommended for the general purposes. =item * utf8::decode($string) -Attempts to convert I<$string> in-place from Perl's I<UTF-X> encoding -into octets. Returns nothing. B<Note that this does not change the -"type" of <$string> from UTF-8>, and that this handles only ISO 8859-1 -(or EBCDIC) as the destination character set. Therefore this should -not be used to convert Unicode back to a legacy 8-bit encoding: -use Encode::encode() for that. In the very limited case of wanting -to handle just ISO 8859-1 (or EBCDIC), you could use utf8::downgrade(). +Attempts to convert in-place the octet sequence in I<UTF-X> +to the corresponding character sequence. The UTF-8 flag is turned on +only if the source string contains multiple-byte I<UTF-X> characters. +If I<$string> is invalid as I<UTF-X>, returns false; otherwise returns true. + +B<Note that this function does not handle arbitrary encodings.> +Therefore I<Encode.pm> is recommended for the general purposes. + +B<NOTE:> this function is experimental and may change +or be removed without notice. =item * $flag = utf8::is_utf8(STRING) |