<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>base64 on cubatic's blog</title><link>https://blog.121306.xyz/tags/base64/</link><description>Recent content in base64 on cubatic's blog</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Mon, 07 Apr 2025 16:30:25 +0800</lastBuildDate><atom:link href="https://blog.121306.xyz/tags/base64/index.xml" rel="self" type="application/rss+xml"/><item><title>Base64</title><link>https://blog.121306.xyz/posts/golang/base64/</link><pubDate>Mon, 07 Apr 2025 16:30:25 +0800</pubDate><guid>https://blog.121306.xyz/posts/golang/base64/</guid><description>什么是 Base64 Base64 是一种基于 64 个可打印字符来表示二进制数据的表示方法。
HTTP 的全称是 HyperText Transfer Protocol（超文本传输协议），最初设计的目的确实是：
传输 超文本（HTML） 但实际上作为应用层协议，HTTP 可以传输任意类型的数据。
HTTP Header 不能直接放图片字节进去，只能用 ASCII 字符（Base64 就是 ASCII-safe） Email 内容（MIME 协议）SMTP 协议历史原因只支持 7-bit ASCII，不能发图片，怎么办？Base64！ JSON / XML 这些格式都是文本格式，不能放二进制文件进去，必须转 Base64 编码后作为字符串存放 Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24)，然后把6Bit再添两位高位0，组成四个8Bit的字节，也就是说，转换后的字符串理论上将要比原来的长1/3。
例如：
11111111,11111111,11111111 -&amp;gt; 00111111,00111111,00111111,00111111 知道了 byte 的表示，但是还需要一张表，作为 base64 的编码表。
base64 中的 64 表示 64 个字符：
// StdEncoding is the standard base64 encoding, as defined in RFC 4648. var StdEncoding = NewEncoding(&amp;#34;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&amp;#34;) // URLEncoding is the alternate base64 encoding defined in RFC 4648.</description></item></channel></rss>