summaryrefslogtreecommitdiff
path: root/lib/utf8.pm
diff options
context:
space:
mode:
authorSADAHIRO Tomoyuki <BQW10602@nifty.com>2004-06-06 09:37:21 +0900
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2004-06-06 07:49:27 +0000
commit78ea37eb92d97de2362f1599aa0c3f43c5e70866 (patch)
tree0d0a05bdd7716d72c4368a8e833e553689f45ddb /lib/utf8.pm
parente2736246f9096d0e04a2974deaf51d6950e0ac3f (diff)
downloadperl-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.pm74
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)