在本地瀏覽器中使用 JavaScript 完成轉換,源碼在下面:
function encodeBase64() {
const input = document.getElementById('base64-input').value;
const output = document.getElementById('base64-output');
if (!input) {
output.value = '';
return;
}
try {
// UTF-8 text → Base64
const bytes = new TextEncoder().encode(input);
let binary = '';
bytes.forEach(byte => {
binary += String.fromCharCode(byte);
});
output.value = btoa(binary);
} catch (error) {
output.value = 'Error: Unable to encode the text.';
}
}
function decodeBase64() {
const input = document.getElementById('base64-input').value.trim();
const output = document.getElementById('base64-output');
if (!input) {
output.value = '';
return;
}
try {
// Base64 → binary
const binary = atob(input);
// Binary → UTF-8 text
const bytes = Uint8Array.from(
binary,
char => char.charCodeAt(0)
);
output.value = new TextDecoder('utf-8').decode(bytes);
} catch (error) {
output.value = 'Error: Invalid Base64 data.';
}
}
function copyBase64() {
const output = document.getElementById('base64-output');
if (!output.value) {
return;
}
navigator.clipboard.writeText(output.value).then(() => {
alert('Result copied to clipboard.');
}).catch(() => {
output.select();
document.execCommand('copy');
alert('Result copied to clipboard.');
});
}
function clearBase64() {
document.getElementById('base64-input').value = '';
document.getElementById('base64-output').value = '';
}