分類
程序

一個簡單的 base64 轉換

在本地瀏覽器中使用 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 = '';
}