http://www.perlmonks.org?node_id=1090614


in reply to Re: Default encoding rules leave me puzzled...
in thread Default encoding rules leave me puzzled...

char(231) is LATIN SMALL LETTER C WITH CEDILLA

char() takes codepoints, not UTF-8.

  • Comment on Re^2: Default encoding rules leave me puzzled...

Replies are listed 'Best First'.
Re^3: Default encoding rules leave me puzzled...
by Anonymous Monk on Jun 20, 2014 at 13:41 UTC
    What do you mean? I'm pretty sure pack's C* takes C chars, that is, octets, bytes. At least that's what the documentation says. And 231:97 is not a valid utf-8 sequence. So in binary mode Perl encodes codepoints < 256 as Latin-1, otherwise it just spits out utf-8 as is. That's pretty crazy.
    perl -CO -wE 'use utf8; say q(Français)' | perl -lnwE 'print join q(:) +, unpack q(C*), $_' 70:114:97:110:195:167:97:105:115