Rumah >hujung hadapan web >tutorial js >Bagaimanakah saya boleh melaksanakan pengekodan dan penyahkodan Base64 dalam JavaScript, dengan mengambil kira sokongan penyemak imbas yang berbeza dan persekitaran sisi pelayan?
Pengekodan dan Penyahkodan Base64 dalam JavaScript Sisi Pelanggan
JavaScript menawarkan pelbagai pilihan untuk pengekodan dan penyahkodan base64:
Sokongan Pelayar Asli
Pelayar moden seperti Firefox, Chrome, Safari, Opera dan IE10 menyediakan sokongan asli untuk pengekodan base64. Anda boleh menggunakan fungsi btoa() untuk pengekodan dan atob() untuk penyahkodan.
JavaScript Sisi Pelayan
Untuk persekitaran JavaScript sisi pelayan seperti Node.js, anda boleh menggunakan Penampan untuk penyahkodan base64.
Pelayar Silang Perpustakaan
Jika anda memerlukan penyelesaian silang penyemak imbas, anda boleh memanfaatkan perpustakaan sedia ada seperti CryptoJS. Sebagai alternatif, anda boleh menggunakan kod seperti yang diberikan dalam jawapan:
// Base64 encoding function encodeBase64(str) { var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, enc = ''; while (i < str.length) { o1 = str.charCodeAt(i); i++; if (i < str.length) { o2 = str.charCodeAt(i); i++; if (i < str.length) { o3 = str.charCodeAt(i); i++; bits = o1 << 16 | o2 << 8 | o3; } else { bits = o1 << 16 | o2 << 8; } } else { bits = o1 << 16; } h1 = bits >> 18 & 0x3f; h2 = bits >> 12 & 0x3f; h3 = bits >> 6 & 0x3f; h4 = bits & 0x3f; enc += b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4); } if (ac >= 1) { enc += b64.charAt(h1) + b64.charAt(h2) + '='; } if (ac >= 2) { enc += b64.charAt(h1) + '='; } return enc; } // Base64 decoding function decodeBase64(str) { var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, dec = ''; while (i < str.length) { h1 = b64.indexOf(str.charAt(i)); i++; h2 = b64.indexOf(str.charAt(i)); i++; h3 = b64.indexOf(str.charAt(i)); i++; h4 = b64.indexOf(str.charAt(i)); i++; bits = h1 << 18 | h2 << 12 | h3 << 6 | h4; o1 = bits >> 16 & 0xff; o2 = bits >> 8 & 0xff; o3 = bits & 0xff; dec += String.fromCharCode(o1); if (ac >= 1) { dec += String.fromCharCode(o2); } if (ac >= 2) { dec += String.fromCharCode(o3); } } return dec; }
Perhatikan bahawa kod penyemak imbas yang disediakan mungkin memerlukan ujian tambahan untuk memastikan keserasian dengan penyemak imbas yang berbeza. Adalah dinasihatkan untuk menggunakan perpustakaan yang bereputasi untuk kefungsian merentas pelayar yang lebih andal.
Atas ialah kandungan terperinci Bagaimanakah saya boleh melaksanakan pengekodan dan penyahkodan Base64 dalam JavaScript, dengan mengambil kira sokongan penyemak imbas yang berbeza dan persekitaran sisi pelayan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!