Base64 Encoding

Base64 Encoding #

// Go သည် [base64 encoding/decoding](https://en.wikipedia.org/wiki/Base64) အတွက် built-in support ပေးပါသည်။

package main

// ဒီ syntax သည် `encoding/base64` package ကို ပုံမှန် `base64` အစား `b64` နာမည်နဲ့ import လုပ်ပါတယ်။
// ဒီလိုလုပ်ခြင်းဖြင့် အောက်မှာ နေရာ (space) ချွေတာနိုင်ပါတယ်။
import (
	b64 "encoding/base64"
	"fmt"
)

func main() {
	// ဒီမှာ encode/decode လုပ်မယ့် `string` ပါ။
	data := "abc123!?$*&()'-=@~"

	// Go သည် စံပြနှင့် URL-compatible base64 နှစ်မျိုးလုံးကို ထောက်ပံ့ပါတယ်။
	// ဒီမှာ စံပြ encoder ကိုသုံးပြီး encode လုပ်ပုံပြထားပါတယ်။
	// encoder သည် `[]byte` လိုအပ်သောကြောင့် ကျွန်ုပ်တို့၏ `string` ကို ထိုအမျိုးအစားသို့ ပြောင်းလဲပါသည်။
	sEnc := b64.StdEncoding.EncodeToString([]byte(data))
	fmt.Println(sEnc)

	// Decoding သည် error ပြန်နိုင်ပါတယ်။ input က ကောင်းမွန်စွာ ဖွဲ့စည်းထားကြောင်း သင်မသိသေးပါက
	// စစ်ဆေးနိုင်ပါသည်။
	sDec, _ := b64.StdEncoding.DecodeString(sEnc)
	fmt.Println(string(sDec))
	fmt.Println()

	// ဒီအပိုင်းသည် URL-compatible base64 format ကိုသုံးပြီး encode/decode လုပ်ပါတယ်။
	uEnc := b64.URLEncoding.EncodeToString([]byte(data))
	fmt.Println(uEnc)
	uDec, _ := b64.URLEncoding.DecodeString(uEnc)
	fmt.Println(string(uDec))
}
# စံပြ(standard)နှင့် URL base64 encoders 
# များသည် string ကို 
# အနည်းငယ်ကွဲပြားသော တန်ဖိုးများအဖြစ် 
# encode လုပ်ပါသည်
# (နောက်ဆုံးတွင် `+` နှင့် `-` အသုံးပြုခြင်း)
# သို့သော် ၎င်းတို့နှစ်ခုလုံးသည် မူရင်း string သို့ 
# လိုအပ်သလို ပြန်လည် decode လုပ်နိုင်ပါသည်။
$ go run base64-encoding.go
YWJjMTIzIT8kKiYoKSctPUB+
abc123!?$*&()'-=@~

YWJjMTIzIT8kKiYoKSctPUB-
abc123!?$*&()'-=@~