🔄 功能介紹
編碼轉換工具提供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可能需要使用代理對表示。