Base64 decode data: Difference between revisions

m
Automated syntax highlighting fixup (second round - minor fixes)
m (Automated syntax highlighting fixup (second round - minor fixes))
Line 8:
 
=={{header|Action!}}==
<syntaxhighlight lang=Action"action!">BYTE FUNC FindIndex(BYTE b)
IF b>='A AND b<='Z THEN
RETURN (b-'A)
Line 95:
=={{header|Ada}}==
{{libheader|AWS}}
<syntaxhighlight lang=Ada"ada">with Ada.Text_IO;
 
with AWS.Translator;
Line 118:
=={{header|Arturo}}==
 
<syntaxhighlight lang="rebol">text: "VG8gZXJyIGlzIGh1bWFuLCBidXQgdG8gcmVhbGx5IGZvdWwgdGhpbmdzIHVwIHlvdSBuZWVkIGEgY29tcHV0ZXIuCiAgICAtLSBQYXVsIFIuIEVocmxpY2g="
 
print decode text</syntaxhighlight>
Line 129:
=={{header|BaCon}}==
Using the result from the [[Base64 encode data]] task as requested, but the result is abbreviated in the code below.
<syntaxhighlight lang="bacon">data$ = "AAABAAIAEBAAAAAAAABoBQAAJgAAACAgAAAAAAAAqAgAAI4FAAAoAAAAE.......QAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAE="
ico$ = B64DEC$(data$)
BSAVE ico$ TO "favicon.ico" SIZE LEN(ico$)</syntaxhighlight>
Line 135:
=={{header|Bash}}==
{{trans|Bash}}
<syntaxhighlight lang="bash">#! /bin/bash
declare -a encodeTable=(
# + , - . / 0 1 2 3 4 5 6 7 8 9 :
Line 193:
=={{header|C}}==
{{trans|C++}}
<syntaxhighlight lang="c">#include <stdio.h>
#include <stdlib.h>
 
Line 280:
=={{header|C sharp|C#}}==
{{trans|Visual Basic .NET}}
<syntaxhighlight lang="csharp">using System;
using System.Text;
 
Line 303:
=={{header|C++}}==
{{Works with|C++14}}
<syntaxhighlight lang="cpp">#include <algorithm>
#include <iostream>
#include <string>
Line 435:
=={{header|Clojure}}==
 
<syntaxhighlight lang="clojure">(defn decode [str]
(String. (.decode (java.util.Base64/getDecoder) str)))
 
Line 449:
Similar to the [http://rosettacode.org/wiki/Base64_encode_data#Common_Lisp BASE64 encoding task] I am using the [http://quickdocs.org/cl-base64/ cl-base64] library.
 
<syntaxhighlight lang="lisp">(eval-when (:load-toplevel :compile-toplevel :execute)
(ql:quickload "cl-base64"))
 
Line 477:
 
=={{header|Crystal}}==
<syntaxhighlight lang="ruby">require "base64"
 
encoded_string = "VG8gZXJyIGlzIGh1bWFuLCBidXQgdG8gcmVhbGx5IGZvdWwgdGhpbmdzIHVwIHlvdSBuZWVkIGEgY29tcHV0ZXIuCiAgICAtLSBQYXVsIFIuIEVocmxpY2g="
Line 491:
=={{header|D}}==
{{trans|Raku}}
<syntaxhighlight lang="d">import std.base64;
import std.stdio;
 
Line 509:
 
=={{header|Dart}}==
<syntaxhighlight lang="dart">import 'dart:convert';
 
void main() {
Line 524:
 
=={{header|Delphi}}==
<syntaxhighlight lang="delphi">program Base64Decoder;
 
{$APPTYPE CONSOLE}
Line 549:
=={{header|F_Sharp|F#}}==
===Standard Library===
<syntaxhighlight lang="fsharp">
open System
open System.IO
Line 563:
 
===Manual Implementation===
<syntaxhighlight lang="fsharp">
open System
open System.IO
Line 595:
 
=={{header|Factor}}==
<syntaxhighlight lang="factor">USING: base64 io strings ;
 
"VG8gZXJyIGlzIGh1bWFuLCBidXQgdG8gcmVhbGx5IGZvdWwgdGhpbmdzIHVwIHlvdSBuZWVkIGEgY29tcHV0ZXIuCiAgICAtLVBhdWwgUi5FaHJsaWNo"
Line 613:
Inspired from Wikipedia. Use of a buffer.
May be also of interest : github.com/lietho/base64-forth
<syntaxhighlight lang="forth">variable bitsbuff
 
: char>6bits ( c -- u )
Line 670:
 
=={{header|FreeBASIC}}==
<syntaxhighlight lang="freebasic">Dim Shared As String B64
B64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" & _
"abcdefghijklmnopqrstuvwxyz" & _
Line 714:
=={{header|Go}}==
As images can no longer be uploaded to RC, I've encoded and decoded a string rather than the Rosetta Code icon.
<syntaxhighlight lang="go">package main
 
import (
Line 745:
=={{header|Groovy}}==
{{trans|Java}}
<syntaxhighlight lang="groovy">import java.nio.charset.StandardCharsets
 
class Decode {
Line 762:
=={{header|Haskell}}==
Simple implementation that decodes an ASCII string.
<syntaxhighlight lang="haskell">--Decodes Base64 to ASCII
import qualified Data.Map.Strict as Map (Map, lookup, fromList)
import Data.Maybe (fromJust, listToMaybe, mapMaybe)
Line 810:
or in terms of Data.ByteString.Base64:
 
<syntaxhighlight lang="haskell">{-# LANGUAGE OverloadedStrings #-}
 
import qualified Data.ByteString.Base64 as Base64 (decode, encode)
Line 833:
 
=={{header|Haxe}}==
<syntaxhighlight lang="haxe">class Main {
static function main() {
var data = "VG8gZXJyIGlzIGh1bWFuLCBidXQgdG8gcmVhbGx5IGZvdWwgdGhpbmdzIHVw" +
Line 850:
using J's [https://github.com/jsoftware/convert_misc/blob/master/base64.ijs convert/misc/base64] script:
 
<syntaxhighlight lang=J"j"> require'convert/misc/base64'
frombase64 'VG8gZXJyIGlzIGh1bWFuLCBidXQgdG8gcmVhbGx5IGZvdWwgdGhpbmdzIHVwIHlvdSBuZWVkIGEgY29tcHV0ZXIuCiAgICAtLSBQYXVsIFIuIEVocmxpY2g='
To err is human, but to really foul things up you need a computer.
Line 857:
Alternative implementation based on that script:
 
<syntaxhighlight lang=J"j">
BASE64=: (a.{~ ,(a.i.'Aa') +/i.26),'0123456789+/'
 
Line 868:
=={{header|Java}}==
{{trans|Kotlin}}
<syntaxhighlight lang="java">import java.nio.charset.StandardCharsets;
import java.util.Base64;
 
Line 886:
=={{header|JavaScript}}==
=== Browser ===
<syntaxhighlight lang="javascript">// define base64 data; in this case the data is the string: "Hello, world!"
const base64 = 'SGVsbG8sIHdvcmxkIQ==';
// atob is a built-in function.
console.log(atob(base64));</syntaxhighlight>
=== Node.js ===
<syntaxhighlight lang="javascript">// define base64 data; in this case the data is the string: "Hello, world!"
const base64 = Buffer.from('SGVsbG8sIHdvcmxkIQ==', 'base64');
// <Buffer>.toString() is a built-in method.
Line 907:
See [[Base64_encode_data#Jsish]] for ''base64.jsi''.
 
<syntaxhighlight lang="javascript">/* Base64 decode, in Jsish */
var data = exec('jsish base64.jsi', {retAll:true}).data; // or use File.read('stdin');
var icon = Util.base64(data, true);
Line 914:
=={{header|Julia}}==
Using an IOBuffer here, though not really needed to decode a string, shows how we could pipe a network stream or file though Julia's builtin Base64 decoder.
<syntaxhighlight lang="julia">using Base64
 
io = IOBuffer()
Line 933:
=={{header|Kotlin}}==
{{trans|D}}
<syntaxhighlight lang="scala">import java.util.Base64
 
fun main() {
Line 948:
 
=={{header|Lua}}==
<syntaxhighlight lang="lua">-- Start taken from https://stackoverflow.com/a/35303321
local b='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' -- You will need this for encoding/decoding
 
Line 981:
 
=={{header|Mathematica}}/{{header|Wolfram Language}}==
<syntaxhighlight lang=Mathematica"mathematica">ImportString[
"VG8gZXJyIGlzIGh1bWFuLCBidXQgdG8gcmVhbGx5IGZvdWwgdGhpbmdzIHVwIHlvdSBuZWVkIGEgY29tcHV0ZXIuCiAgICAtLVBhdWwgUi5FaHJsaWNo",
"Base64"
Line 990:
 
=={{header|Nim}}==
<syntaxhighlight lang=Nim"nim">import base64
 
const Source = "VG8gZXJyIGlzIGh1bWFuLCBidXQgdG8gcmVhbGx5IGZvdWwgdGhpbmdzIHVwIHlvdSBuZWVkIGEgY29tcHV0ZXIuCiAgICAtLSBQYXVsIFIuIEVocmxpY2g="
Line 1,009:
 
=={{header|Ol}}==
<syntaxhighlight lang="scheme">
(define base64-codes "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")
(define kernel (alist->ff (map cons (string->bytes base64-codes) (iota (string-length base64-codes)))))
Line 1,059:
=={{header|Perl}}==
The MIME::Base64 module is to be preferred, but this works too.
<syntaxhighlight lang="perl">sub decode_base64 {
my($d) = @_;
$d =~ tr!A-Za-z0-9+/!!cd;
Line 1,086:
 
=={{header|Phix}}==
<!--<syntaxhighlight lang=Phix"phix">(phixonline)-->
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #008080;">include</span> <span style="color: #000000;">builtins</span><span style="color: #0000FF;">\</span><span style="color: #000000;">base64</span><span style="color: #0000FF;">.</span><span style="color: #000000;">e</span>
Line 1,101:
 
=={{header|PHP}}==
<syntaxhighlight lang=PHP"php">$encoded = 'VG8gZXJyIGlzIGh1bWFuLCBidXQgdG8gcmVhbGx5IGZvdWwgdGhpbmdzIHVw' .
'IHlvdSBuZWVkIGEgY29tcHV0ZXIuCiAgICAtLSBQYXVsIFIuIEVocmxpY2g=';
echo
Line 1,112:
 
=={{header|PicoLisp}}==
<syntaxhighlight lang=PicoLisp"picolisp">(setq *Char64
`'(chop
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" ) )
Line 1,145:
By necessity this also implements all of the Base64 encode task to
avoid a humongous amount of icon data hardcoded in the program.
<syntaxhighlight lang=Pike"pike">
string icon = Protocols.HTTP.get_url_data("http://rosettacode.org/favicon.ico");
string encoded = MIME.encode_base64(icon);
Line 1,164:
 
=={{header|PureBasic}}==
<syntaxhighlight lang=PureBasic"purebasic">b64cd$ = "VG8gZXJyIGlzIGh1bWFuLCBidXQgdG8gcmVhbGx5IGZvdWwgdGhpbmdzIHVw" +
"IHlvdSBuZWVkIGEgY29tcHV0ZXIuCiAgICAtLSBQYXVsIFIuIEVocmxpY2g="
 
Line 1,176:
 
=={{header|Python}}==
<syntaxhighlight lang=Python"python">
import base64
data = 'VG8gZXJyIGlzIGh1bWFuLCBidXQgdG8gcmVhbGx5IGZvdWwgdGhpbmdzIHVwIHlvdSBuZWVkIGEgY29tcHV0ZXIuCiAgICAtLSBQYXVsIFIuIEVocmxpY2g='
Line 1,187:
</pre>
=={{header|QB64}}==
<syntaxhighlight lang="vb">Option _Explicit
 
Dim As String udata, decoded
Line 1,309:
{{works with|R|4.1.0}}
{{libheader|base64enc}}
<syntaxhighlight lang="rsplus">
"VG8gZXJyIGlzIGh1bWFuLCBidXQgdG8gcmVhbGx5IGZvdWwgdGhpbmdzIHVwIHlvdSBuZWVkIGEgY29tcHV0ZXIuCiAgICAtLVBhdWwgUi5FaHJsaWNo" |>
base64enc::base64decode() |>
Line 1,324:
{{works with|Rakudo|2018.11}}
 
<syntaxhighlight lang="raku" line>my $e64 = '
VG8gZXJyIGlzIGh1bWFuLCBidXQgdG8gcmVhbGx5IGZvdWwgdGhpbmdzIHVwIHlvdSBuZWVkIGEgY2
9tcHV0ZXIuCiAgICAtLSBQYXVsIFIuIEVocmxpY2g=
Line 1,360:
 
=={{header|Red}}==
<syntaxhighlight lang="red">Red [Source: https://github.com/vazub/rosetta-red]
 
print to-string debase "VG8gZXJyIGlzIGh1bWFuLCBidXQgdG8gcmVhbGx5IGZvdWwgdGhpbmdzIHVwIHlvdSBuZWVkIGEgY29tcHV0ZXIuCiAgICAtLVBhdWwgUi5FaHJsaWNo"
Line 1,371:
 
=={{header|Ring}}==
<syntaxhighlight lang="ring">
#======================================#
# Sample: Base64 decode data
Line 1,395:
 
=={{header|Ruby}}==
<syntaxhighlight lang="ruby">require 'base64'
 
raku_example ='
Line 1,409:
 
=={{header|Rust}}==
<syntaxhighlight lang="rust">use std::str;
 
const INPUT: &str = "VG8gZXJyIGlzIGh1bWFuLCBidXQgdG8gcmVhbGx5IGZvdWwgdGhpbmdzIHVwIHlvdSBuZWVkIGEgY29tcHV0ZXIuCiAgICAtLVBhdWwgUi5FaHJsaWNo";
Line 1,456:
=={{header|Scala}}==
{{Out}}Best seen in running your browser either by [https://scalafiddle.io/sf/mjgxJDp/0 ScalaFiddle (ES aka JavaScript, non JVM)] or [https://scastie.scala-lang.org/P4RfGhRQSkaKWEmdBi1gaw Scastie (remote JVM)].
<syntaxhighlight lang=Scala"scala">import java.util.Base64
 
object Base64Decode extends App {
Line 1,476:
[http://seed7.sourceforge.net/libraries/encoding.htm#fromBase64(in_string) fromBase64].
 
<syntaxhighlight lang="seed7">$ include "seed7_05.s7i";
include "gethttp.s7i";
include "encoding.s7i";
Line 1,495:
 
=={{header|SenseTalk}}==
<syntaxhighlight lang="sensetalk">
 
put base64Decode ("VG8gZXJyIGlzIGh1bWFuLCBidXQgdG8gcmVhbGx5IGZvdWwgdGhpbmdzIHVwIHlvdSBuZWVkIGEgY29tcHV0ZXIuIC0tUGF1bCBSLkVocmxpY2g=")
Line 1,502:
 
Output:
<syntaxhighlight lang="sensetalk">To err is human, but to really foul things up you need a computer. --Paul R.Ehrlich</syntaxhighlight>
 
=={{header|Sidef}}==
<syntaxhighlight lang="ruby">var data = <<'EOT'
VG8gZXJyIGlzIGh1bWFuLCBidXQgdG8gcmVhbGx5IGZvdWwgdGhpbmdzIHVwIHlvdSBuZWVkIGEgY2
9tcHV0ZXIuCiAgICAtLSBQYXVsIFIuIEVocmxpY2g=
Line 1,519:
=={{header|Smalltalk}}==
{{works with|Smalltalk/X}}
<syntaxhighlight lang="smalltalk">data := '
VG8gZXJyIGlzIGh1bWFuLCBidXQgdG8gcmVhbGx5IGZvdWwgdGhpbmdzIHVwIHlvdSBuZWVkIGEgY2
9tcHV0ZXIuCiAgICAtLSBQYXVsIFIuIEVocmxpY2g=
Line 1,530:
 
=={{header|Standard ML}}==
<syntaxhighlight lang=Standard"standard MLml">val debase64 = fn input =>
let
 
Line 1,569:
-- Paul R. Ehrlich </pre>
=={{header|Tcl}}==
<syntaxhighlight lang="tcl">package require tcl 8.6
set data VG8gZXJyIGlzIGh1bWFuLCBidXQgdG8gcmVhbGx5IGZvdWwgdGhpbmdzIHVwIHlvdSBuZWVkIGEgY29tcHV0ZXIuCiAgICAtLSBQYXVsIFIuIEVocmxpY2g=
 
Line 1,581:
=={{header|Visual Basic .NET}}==
{{trans|D}}
<syntaxhighlight lang="vbnet">Module Module1
 
Sub Main()
Line 1,600:
 
=={{header|Vlang}}==
<syntaxhighlight lang="vlang">import encoding.base64
 
fn main() {
Line 1,624:
{{libheader|Wren-str}}
From first principles using string manipulation. Quick enough here.
<syntaxhighlight lang="ecmascript">import "io" for Stdout
import "/fmt" for Conv, Fmt
import "/str" for Str
Line 1,663:
=={{header|zkl}}==
Using shared libraries for cURL and message hashing:
<syntaxhighlight lang="zkl">var [const] MsgHash=Import("zklMsgHash"), Curl=Import("zklCurl");
icon:=Curl().get("http://rosettacode.org/favicon.ico"); //-->(Data(4,331),693,0)
Line 1,677:
</pre>
{{out|Text based test}}
<syntaxhighlight lang="zkl">msg,b64 := "Rosetta Code Base64 decode data task", MsgHash.base64encode(msg);
println("Original: %s\nEncoded: %s\nBytes: %s\nDecoded: %s"
.fmt(msg, b64.text, b64.bytes().apply("toString",16).concat(","),
10,327

edits