🔄 功能介绍
编码转换工具提供Unicode编码/解码和BASE64编码/解码功能。Unicode编码可以将文本转换为Unicode转义序列或码点表示;BASE64编码可以将文本转换为BASE64字符串,常用于数据传输和存储。
📖 技术原理
Unicode编码: Unicode是一个统一的字符编码标准,为每种字符分配唯一的数字码点。编码时可以将文本中的每个字符转换为对应的Unicode码点表示。
BASE64编码: BASE64是一种基于64个可打印字符来表示二进制数据的编码方法。它将3个字节的数据编码为4个字符,常用于在文本环境中传输或存储二进制数据。
✨ 主要特性
- Unicode编码支持: 支持转义序列(\uXXXX)、十六进制(U+XXXX)和十进制码点格式
- Unicode解码支持: 自动识别多种Unicode格式并转换为文本
- BASE64编码/解码: 支持文本和BASE64字符串的双向转换
- 实时转换: 输入文本后自动进行编码转换
- 格式选择: Unicode编码支持多种输出格式
- 本地处理: 所有转换都在浏览器本地完成,保护隐私安全
- 一键复制: 转换结果可一键复制到剪贴板
💡 使用步骤
Unicode编码/解码:
- 在"原文"框中输入需要编码的文本
- 选择Unicode输出格式(转义序列/十六进制/十进制)
- 点击"编码 →"按钮或输入文本后自动编码
- 在"Unicode编码"框中查看编码结果
- 点击"复制结果"按钮复制编码后的文本
- 要解码,在"Unicode编码"框中输入编码文本,点击"← 解码"按钮
BASE64编码/解码:
- 在"原文"框中输入需要编码的文本
- 点击"编码 →"按钮或输入文本后自动编码
- 在"BASE64编码"框中查看编码结果
- 点击"复制结果"按钮复制编码后的文本
- 要解码,在"BASE64编码"框中输入BASE64字符串,点击"← 解码"按钮
📋 格式说明
- Unicode转义序列: 使用\uXXXX格式,如\u4f60\u597d表示"你好"
- Unicode十六进制: 使用U+XXXX格式,如U+4F60 U+597D表示"你好"
- Unicode十进制: 使用十进制数字,如20320 22909表示"你好"
- BASE64编码: 使用A-Z、a-z、0-9、+、/共64个字符,末尾可能包含=填充字符
🎯 适用场景
- JavaScript代码中的Unicode转义序列处理
- URL参数或JSON数据中的特殊字符编码
- 数据传输中的BASE64编码/解码
- 图片或文件的BASE64编码
- 调试字符编码相关问题
- 跨平台数据传输的编码转换
- API接口中的编码需求
💻 使用示例
JavaScript中使用Unicode:
// Unicode转义序列
const text1 = '\u4f60\u597d'; // "你好"
// 获取字符的Unicode码点
const codePoint = '你'.codePointAt(0); // 20320
const hex = codePoint.toString(16); // "4f60"
// 从码点创建字符
const char = String.fromCodePoint(0x4f60); // "你"
JavaScript中使用BASE64:
// BASE64编码
const text = 'Hello, 世界!';
const encoded = btoa(unescape(encodeURIComponent(text)));
// "SGVsbG8sIOS4lueVjCE="
// BASE64解码
const decoded = decodeURIComponent(escape(atob(encoded)));
// "Hello, 世界!"
Python中使用BASE64:
import base64
# BASE64编码
text = 'Hello, 世界!'
encoded = base64.b64encode(text.encode('utf-8')).decode('ascii')
# "SGVsbG8sIOS4lueVjCE="
# BASE64解码
decoded = base64.b64decode(encoded).decode('utf-8')
# "Hello, 世界!"
⚠️ 注意事项
- Unicode编码时,某些特殊字符可能需要使用代理对(surrogate pairs)表示
- BASE64编码会使数据大小增加约33%
- 在JavaScript中使用BASE64处理中文时,需要先进行UTF-8编码
- BASE64编码的字符串末尾可能包含=或==填充字符
- BASE64解码时会自动忽略所有非BASE64字符(空白、换行、标点等),提高容错性
- 所有处理都在本地进行,不会上传到服务器
- 大文本转换可能影响浏览器性能,建议分段处理
❓ 常见问题
- Q: Unicode编码和解码有什么区别?
A: 编码是将文本转换为Unicode码点表示,解码是将Unicode码点转换回文本。编码用于在代码中表示特殊字符,解码用于读取已编码的文本。 - Q: BASE64编码后的字符串可以用于URL吗?
A: 可以,但通常需要使用URL安全的BASE64变体,将+替换为-,/替换为_,并去掉=填充字符。 - Q: 为什么BASE64编码后的字符串末尾有=号?
A: =号是BASE64编码的填充字符。当原始数据不是3字节的倍数时,会添加=或==来补齐。 - Q: Unicode转义序列中的字母是大写还是小写?
A: 通常使用小写字母,如\u4f60,但大写\u4F60也是有效的。本工具统一使用小写格式。 - Q: 可以处理emoji表情吗?
A: 可以,emoji字符会被正确编码为Unicode码点,某些emoji可能需要使用代理对表示。