X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Futf8.pm;h=0b57d6d968600bade89c6eadf384a396ed006157;hb=78ea37eb92d97de2362f1599aa0c3f43c5e70866;hp=486a4faa88b63fb5fd1f3609f37024a06159ac42;hpb=e2736246f9096d0e04a2974deaf51d6950e0ac3f;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/utf8.pm b/lib/utf8.pm index 486a4fa..0b57d6d 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 form. Returns the number of octets necessary to -represent the string as I. Can be used to make sure that the -UTF-8 flag is on, so that C<\w> or C 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. +I<$string> already encoded as characters does no harm. +Returns the number of octets necessary to represent the string as I. +Can be used to make sure that the UTF-8 flag is on, +so that C<\w> or C work as Unicode on strings +containing characters in the range 0x80-0xFF (on ASCII and +derivatives). + +B +Therefore I 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 affected by the encoding -pragma. +Converts in-place the character sequence in I +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 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 +Therefore I is recommended for the general purposes. + +B affected by the encoding pragma. + +B 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 encoding. Returns nothing. B 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. The UTF-8 flag is turned off. Returns nothing. + +B +Therefore I is recommended for the general purposes. =item * utf8::decode($string) -Attempts to convert I<$string> in-place from Perl's I encoding -into octets. Returns nothing. B 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 +to the corresponding character sequence. The UTF-8 flag is turned on +only if the source string contains multiple-byte I characters. +If I<$string> is invalid as I, returns false; otherwise returns true. + +B +Therefore I is recommended for the general purposes. + +B this function is experimental and may change +or be removed without notice. =item * $flag = utf8::is_utf8(STRING)