クライアント側 JavaScript での Base64 エンコードとデコード
JavaScript では、Base64 エンコードとデコードのためのさまざまなオプションが提供されます。
ネイティブブラウザサポート
Firefox、Chrome、Safari、Opera、IE10 などの最新のブラウザは、base64 エンコードのネイティブ サポートを提供します。エンコードには btoa() 関数を、デコードには atob() 関数を使用できます。
サーバーサイド JavaScript
Node.js のようなサーバーサイド JavaScript 環境の場合、 Base64 デコードにバッファを利用できます。
クロスブラウザライブラリ
クロスブラウザー ソリューションが必要な場合は、CryptoJS などの既存のライブラリを活用できます。あるいは、回答で提供されているようなコードを使用することもできます。
// 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; }
提供されたクロスブラウザー コードでは、さまざまなブラウザーとの互換性を確保するために追加のテストが必要になる場合があることに注意してください。より信頼性の高いクロスブラウザ機能を実現するには、信頼できるライブラリを使用することをお勧めします。
以上がさまざまなブラウザーのサポートとサーバー側の環境を考慮して、JavaScript で Base64 エンコードとデコードを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。