[DOC PATCH] perldebtut
[p5sagit/p5-mst-13.2.git] / pod / perldelta.pod
index 4b739dd..4d704f5 100644 (file)
@@ -332,7 +332,26 @@ Note for EBCDIC users: the pseudo layer ":utf8" is erroneously named
 for you since it's not UTF-8 what you will be getting but instead
 UTF-EBCDIC.  See L<perlunicode>, L<utf8>, and
 http://www.unicode.org/unicode/reports/tr16/ for more information.
-In future releases this naming may change.
+In future releases this naming may change.  See L<perluniintro>
+for more information about UTF-8.
+
+=item *
+
+If your environment variables (LC_ALL, LC_CTYPE, LANG, LANGUAGE) look
+like you want to use UTF-8 (any of the the variables match C</utf-?8/i>),
+your STDIN, STDOUT, STDERR handles and the default open discipline
+(see L<open>) are marked as UTF-8.
+
+Note that after this Perl really does assume that everything is UTF-8:
+for example if some input handle is not, Perl will probably very soon
+complain about the input data like this "Malformed UTF-8 ..." since
+any old eight-bit data is not legal UTF-8.
+
+Note for code authors: if you want to enable your users to use UTF-8
+as their default encoding  but in your code still have eight-bit I/O streams
+(such as images or zip files), you need to explicitly open() or binmode()
+with C<:bytes> (see L<perlfunc/open> and L<perlfunc/binmode>), or you
+can just use C<binmode(FH)> (nice for pre-5.8.0 backward compatibility).
 
 =item *