Base64 encode data: Difference between revisions

Content added Content deleted
m (Solution in Red programming language)
(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