PerlIO::encoding(3pm) Perl Programmers Reference Guide PerlIO::encoding(3pm)

# [NAME](#NAME)

PerlIO::encoding - encoding layer

# [SYNOPSIS](#SYNOPSIS)

```
  use PerlIO::encoding;
  open($f, "<:encoding(foo)", "infoo");
  open($f, ">:encoding(bar)", "outbar");
  use Encode qw(:fallbacks);
  $PerlIO::encoding::fallback = FB_PERLQQ;
```

# [DESCRIPTION](#DESCRIPTION)

This PerlIO layer opens a filehandle with a transparent encoding filter.

On input, it converts the bytes expected to be in the specified character set and encoding to Perl string data (Unicode and Perl's internal Unicode encoding, UTF-8). On output, it converts Perl string data into the specified character set and encoding.

When the layer is pushed, the current value of $PerlIO::encoding::fallback is saved and used as the CHECK argument when calling the Encode methods **encode()** and **decode()**.

# [SEE ALSO](#SEE_ALSO)

open, Encode, "binmode" in perlfunc, perluniintro

2026-10-26 perl v5.44.0

---

Document: PerlIO::encoding(3pm) from perl 5.44.0-r3 (Chainguard OS)
Source: https://github.com/Perl/perl5.git
