In IO::CatHandle§
See primary documentation in context for method encoding
multi method encoding(IO::CatHandle:)multi method encoding(IO::CatHandle: )
Sets the invocant's $.encoding
attribute to the provided value. Valid values are the same as those accepted by IO::Handle.encoding
(use value Nil
to switch to binary mode). All source handles, including the active one will use the provided $.encoding
value.
(my = 'foo'.IO).spurt: 'I ♥ Raku';(my = 'bar'.IO).spurt: 'meow';with IO::CatHandle.new: ,
In IO::Handle§
See primary documentation in context for method encoding
multi method encoding(IO::Handle: --> Str)multi method encoding(IO::Handle: --> Str)
Returns a Str
representing the encoding currently used by the handle, defaulting to "utf8"
. Nil
indicates the filehandle is currently in binary mode. Specifying an optional positional $enc
argument switches the encoding used by the handle; specify Nil
as encoding to put the handle into binary mode.
The accepted values for encoding are case-insensitive. The available encodings vary by implementation and backend. On Rakudo MoarVM the following are supported:
utf8 utf16 utf16le utf16be utf8-c8 iso-8859-1 windows-1251 windows-1252 windows-932 ascii
The default encoding is utf8, which undergoes normalization into Unicode NFC
(normalization form canonical). In some cases you may want to ensure no normalization is done; for this you can use utf8-c8
. Before using utf8-c8
please read Unicode: Filehandles and I/O for more information on utf8-c8
and NFC
.
As of Rakudo 2018.04 windows-932 is also supported which is a variant of ShiftJIS.
Implementation may choose to also provide support for aliases, e.g. Rakudo allows aliases latin-1
for iso-8859-1
encoding and dashed utf versions: utf-8
and utf-16
.