Jump to content

UTF-8 encode and decode: Difference between revisions

m
→‎{{header|Perl 6}}: Added a multibyte emoji character to example.
m (→‎{{header|Perl 6}}: Added a multibyte emoji character to example.)
Line 731:
{{works with|Rakudo|2017.02}}
Pretty much all built in to the language.
<lang perl6>say sprintf("%-18s %-34s36s|%8s| %7s |%7s\t%s14s | %s\n", 'Character|', 'Name', 'Ordinal', 'Unicode', 'UTF-8 encoded', 'decoded'), '-' x 94100;
 
for < A ö Ж € 𝄞 😜 👨‍👩‍👧‍👦> -> $char {
printf " %-7s5s | %-43s | %6s U+| %04s\t-7s | %12s |%4s\n", $char, $char.uninameuninames.join(','), $char.ordords.join(' '),
('U+' X~ $char.ordords».base(16)).join(' '), $char.encode('UTF8').list».base(16).Str, $char.encode('UTF8').decode;
}</lang>
{{out}}
<pre>Character | Name | Ordinal| Unicode | UTF-8 encoded | decoded
----------------------------------------------------------------------------------------------------
A | LATIN CAPITAL LETTER A | 65 | U+0041 41 | 41 | A
ö | LATIN SMALL LETTER O WITH DIAERESIS | 246 | U+00F6 F6 | C3 B6 | ö
Ж | CYRILLIC CAPITAL LETTER ZHE | 1046 | U+0416 416 | D0 96 | Ж
| EURO SIGN | 8364 | U+20AC | E2 82 AC |
𝄞 | MUSICAL SYMBOL G CLEF | 119070 | U+1D11E | F0 9D 84 9E | 𝄞
😜 | FACE WITH STUCK-OUT TONGUE AND WINKING EYE | 128540 | U+1F61C | F0 9F 98 9C | 😜</pre>
👨‍👩‍👧‍👦 | MAN,ZERO WIDTH JOINER,WOMAN,ZERO WIDTH JOINER,GIRL,ZERO WIDTH JOINER,BOY | 128104 8205 128105 8205 128103 8205 128102 | U+1F468 U+200D U+1F469 U+200D U+1F467 U+200D U+1F466 | F0 9F 91 A8 E2 80 8D F0 9F 91 A9 E2 80 8D F0 9F 91 A7 E2 80 8D F0 9F 91 A6 | 👨‍👩‍👧‍👦
</pre>
 
=={{header|Phix}}==
10,333

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.