Base64 encode data: Difference between revisions
Content added Content deleted
m (Solution in Red programming language) |
Thundergnat (talk | contribs) (Rename Perl 6 -> Raku, alphabetize, minor clean-up) |
||
Line 3: | Line 3: | ||
See also [[Base64 decode data]]. |
See also [[Base64 decode data]]. |
||
=={{header|Ada}}== |
|||
{{libheader|AWS}} |
|||
<lang Ada>with Ada.Text_IO; |
|||
with AWS.Response; |
|||
with AWS.Client; |
|||
with AWS.Translator; |
|||
procedure Encode_AWS is |
|||
URL : constant String := "http://rosettacode.org/favicon.ico"; |
|||
Page : constant AWS.Response.Data := AWS.Client.Get (URL); |
|||
Payload : constant String := AWS.Response.Message_Body (Page); |
|||
Icon_64 : constant String := AWS.Translator.Base64_Encode (Payload); |
|||
begin |
|||
Ada.Text_IO.Put_Line (Icon_64); |
|||
end Encode_AWS;</lang> |
|||
{{out}} |
|||
<pre> |
|||
AAABAAIAEBAAAAAAAABoBQAAJgAAACAgAAAAAAAAqAgAAI4FAAAoAAAAEAAAACAAAAABAAgAAAAAAEABAAAAAAAAAAAAAAAAAAAA |
|||
... |
|||
AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAE= |
|||
</pre> |
|||
=={{header|ABAP}}== |
=={{header|ABAP}}== |
||
Line 57: | Line 33: | ||
WRITE: / lv_encoded. |
WRITE: / lv_encoded. |
||
</lang> |
</lang> |
||
{{out}} |
|||
<pre> |
|||
AAABAAIAEBAAAAAAAABoBQAAJgAAACAgAAAAAAAAqAgAAI4FAAAoAAAAEAAAACAAAAABAAgAAAAAAEABAAAAAAAAAAAAAAAAAAAA |
|||
... |
|||
AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAE= |
|||
</pre> |
|||
=={{header|Ada}}== |
|||
{{libheader|AWS}} |
|||
<lang Ada>with Ada.Text_IO; |
|||
with AWS.Response; |
|||
with AWS.Client; |
|||
with AWS.Translator; |
|||
procedure Encode_AWS is |
|||
URL : constant String := "http://rosettacode.org/favicon.ico"; |
|||
Page : constant AWS.Response.Data := AWS.Client.Get (URL); |
|||
Payload : constant String := AWS.Response.Message_Body (Page); |
|||
Icon_64 : constant String := AWS.Translator.Base64_Encode (Payload); |
|||
begin |
|||
Ada.Text_IO.Put_Line (Icon_64); |
|||
end Encode_AWS;</lang> |
|||
{{out}} |
{{out}} |
||
Line 139: | Line 139: | ||
AAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAE= |
AAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAE= |
||
</pre> |
</pre> |
||
=={{header|ARM Assembly}}== |
=={{header|ARM Assembly}}== |
||
<lang ARM Assembly> |
<lang ARM Assembly> |
||
Line 387: | Line 388: | ||
return 0; |
return 0; |
||
}</lang> |
}</lang> |
||
=={{header|C sharp|C#}}== |
|||
<lang csharp>namespace RosettaCode.Base64EncodeData |
|||
{ |
|||
using System; |
|||
using System.Net; |
|||
internal static class Program |
|||
{ |
|||
private static void Main() |
|||
{ |
|||
const string path = "http://rosettacode.org/favicon.ico"; |
|||
byte[] input; |
|||
using (var client = new WebClient()) |
|||
{ |
|||
input = client.DownloadData(path); |
|||
} |
|||
var output = Convert.ToBase64String(input); |
|||
Console.WriteLine(output); |
|||
} |
|||
} |
|||
}</lang> |
|||
Output: |
|||
<pre>AAABAAIAEBAAAAAAAABoBQAAJgAAACAg...AAABAAAAAQAAAAEAAAABAAAAAQAAAAE=</pre> |
|||
=={{header|C++}}== |
=={{header|C++}}== |
||
Line 455: | Line 482: | ||
AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAE= |
AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAE= |
||
</pre> |
</pre> |
||
=={{header|C sharp|C#}}== |
|||
<lang csharp>namespace RosettaCode.Base64EncodeData |
|||
{ |
|||
using System; |
|||
using System.Net; |
|||
internal static class Program |
|||
{ |
|||
private static void Main() |
|||
{ |
|||
const string path = "http://rosettacode.org/favicon.ico"; |
|||
byte[] input; |
|||
using (var client = new WebClient()) |
|||
{ |
|||
input = client.DownloadData(path); |
|||
} |
|||
var output = Convert.ToBase64String(input); |
|||
Console.WriteLine(output); |
|||
} |
|||
} |
|||
}</lang> |
|||
Output: |
|||
<pre>AAABAAIAEBAAAAAAAABoBQAAJgAAACAg...AAABAAAAAQAAAAEAAAABAAAAAQAAAAE=</pre> |
|||
=={{header|D}}== |
=={{header|D}}== |
||
Line 538: | Line 539: | ||
{{out}} |
{{out}} |
||
<pre>AAABAAIAEBAAAAAAAABoBQAAJgAAACAgAAAAAAAAqAgAAI4F...AAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAE=</pre> |
<pre>AAABAAIAEBAAAAAAAABoBQAAJgAAACAgAAAAAAAAqAgAAI4F...AAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAE=</pre> |
||
=={{header|Factor}}== |
|||
<lang factor>USING: base64 http.client io kernel strings ; |
|||
"http://rosettacode.org/favicon.ico" http-get nip |
|||
>base64-lines >string print</lang> |
|||
{{out}} |
|||
<pre> |
|||
AAABAAIAEBAAAAAAAABoBQAAJgAAACAg...AAABAAAAAQAAAAEAAAABAAAAAQAAAAE= |
|||
</pre> |
|||
=={{header|F#}}== |
=={{header|F#}}== |
||
Line 605: | Line 596: | ||
{{out}} |
{{out}} |
||
<pre>AAABAAIAEBAAAAAAAABoBQAAJgAAACAgAAAAAAAAqAgAAI4FAAAoAAAAEAAAACAAAAABAAgAAAAAAEABAAAA ...</pre> |
<pre>AAABAAIAEBAAAAAAAABoBQAAJgAAACAgAAAAAAAAqAgAAI4FAAAoAAAAEAAAACAAAAABAAgAAAAAAEABAAAA ...</pre> |
||
=={{header|Factor}}== |
|||
<lang factor>USING: base64 http.client io kernel strings ; |
|||
"http://rosettacode.org/favicon.ico" http-get nip |
|||
>base64-lines >string print</lang> |
|||
{{out}} |
|||
<pre> |
|||
AAABAAIAEBAAAAAAAABoBQAAJgAAACAg...AAABAAAAAQAAAAEAAAABAAAAAQAAAAE= |
|||
</pre> |
|||
=={{header|Go}}== |
=={{header|Go}}== |
||
Line 1,150: | Line 1,151: | ||
return 0; |
return 0; |
||
}</lang> |
}</lang> |
||
=={{header|OCaml}}== |
=={{header|OCaml}}== |
||
Line 1,194: | Line 1,194: | ||
<pre>AAABAAIAEBAAAAAAAABoBQAAJgAAACAgAAAAAAAAqAgAAI4FAAAoAAAAEAAAACAAAAABAAgAAAAA</pre> |
<pre>AAABAAIAEBAAAAAAAABoBQAAJgAAACAgAAAAAAAAqAgAAI4FAAAoAAAAEAAAACAAAAABAAgAAAAA</pre> |
||
<pre>AAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAE=</pre> |
<pre>AAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAE=</pre> |
||
=={{header|Perl 6}}== |
|||
<lang perl6>sub MAIN { |
|||
my $buf = slurp("./favicon.ico", :bin); |
|||
say buf-to-Base64($buf); |
|||
} |
|||
my @base64map = flat 'A' .. 'Z', 'a' .. 'z', ^10, '+', '/'; |
|||
sub buf-to-Base64($buf) { |
|||
join '', gather for $buf.list -> $a, $b = [], $c = [] { |
|||
my $triplet = ($a +< 16) +| ($b +< 8) +| $c; |
|||
take @base64map[($triplet +> (6 * 3)) +& 0x3F]; |
|||
take @base64map[($triplet +> (6 * 2)) +& 0x3F]; |
|||
if $c.elems { |
|||
take @base64map[($triplet +> (6 * 1)) +& 0x3F]; |
|||
take @base64map[($triplet +> (6 * 0)) +& 0x3F]; |
|||
} |
|||
elsif $b.elems { |
|||
take @base64map[($triplet +> (6 * 1)) +& 0x3F]; |
|||
take '='; |
|||
} |
|||
else { take '==' } |
|||
} |
|||
}</lang> |
|||
{{out}} |
|||
<pre>AAABAAIAEBAAAAAAAABoBQAAJgAAACAgAA...QAAAAEAAAABAAAAAQAAAAE=</pre> |
|||
=={{header|Phix}}== |
=={{header|Phix}}== |
||
Line 1,348: | Line 1,321: | ||
#"AAABAAIAEBAAAAAAAABoBQAA...AQAAAAE=\r\n" |
#"AAABAAIAEBAAAAAAAABoBQAA...AQAAAAE=\r\n" |
||
</lang> |
</lang> |
||
=={{header|Raku}}== |
|||
(formerly Perl 6) |
|||
<lang perl6>sub MAIN { |
|||
my $buf = slurp("./favicon.ico", :bin); |
|||
say buf-to-Base64($buf); |
|||
} |
|||
my @base64map = flat 'A' .. 'Z', 'a' .. 'z', ^10, '+', '/'; |
|||
sub buf-to-Base64($buf) { |
|||
join '', gather for $buf.list -> $a, $b = [], $c = [] { |
|||
my $triplet = ($a +< 16) +| ($b +< 8) +| $c; |
|||
take @base64map[($triplet +> (6 * 3)) +& 0x3F]; |
|||
take @base64map[($triplet +> (6 * 2)) +& 0x3F]; |
|||
if $c.elems { |
|||
take @base64map[($triplet +> (6 * 1)) +& 0x3F]; |
|||
take @base64map[($triplet +> (6 * 0)) +& 0x3F]; |
|||
} |
|||
elsif $b.elems { |
|||
take @base64map[($triplet +> (6 * 1)) +& 0x3F]; |
|||
take '='; |
|||
} |
|||
else { take '==' } |
|||
} |
|||
}</lang> |
|||
{{out}} |
|||
<pre>AAABAAIAEBAAAAAAAABoBQAAJgAAACAgAA...QAAAAEAAAABAAAAAQAAAAE=</pre> |
|||
=={{header|Red}}== |
=={{header|Red}}== |
||
Line 1,453: | Line 1,454: | ||
println(s"Successfully completed without errors. [total ${compat.Platform.currentTime - executionStart} ms]") |
println(s"Successfully completed without errors. [total ${compat.Platform.currentTime - executionStart} ms]") |
||
}</lang> |
}</lang> |
||
=={{header|Seed7}}== |
=={{header|Seed7}}== |
||
The Seed7 library [http://seed7.sourceforge.net/libraries/encoding.htm encoding.s7i] defines |
The Seed7 library [http://seed7.sourceforge.net/libraries/encoding.htm encoding.s7i] defines |