| base64を使った文字列のエンコード・デコード |
| btoaとatob関数を使用します。(Unicode文字を扱う場合は、事前処理が必要です) |
const b1 = document.getElementById("btn1");
const b2 = document.getElementById("btn2");
b1.addEventListener("click", () =>
{
const objIn = document.getElementById("encode");
const objOut = document.getElementById("encode2");
let data = objIn.innerText;
data = base64Encode(data);
objOut.innerText = data;
});
b2.addEventListener("click", () =>
{
const objIn = document.getElementById("decode");
const objOut = document.getElementById("decode2");
let data = objIn.innerText;
data = base64Decode(data);
objOut.innerText = data;
});
function base64Encode(data)
{
//Unicode文字列をUint8Arrayに変換
const utf8Encode = new TextEncoder();
const uint8Array = utf8Encode.encode(data);
//Uint8ArrayをLatin-1文字列に変換
let latin1String = '';
for (let i = 0; i < uint8Array.length; i++)
{
latin1String += String.fromCharCode(uint8Array[i]);
}
//Latin-1文字列をbase64エンコード
return btoa(latin1String);
}
function base64Decode(data)
{
try
{
//base64文字列をLatin-1文字列にデコード
const latin1String = atob(data);
//Latin-1文字列をUint8Arrayに変換
const uint8Array = new Uint8Array(latin1String.length);
for (let i = 0; i < latin1String.length; i++)
{
uint8Array[i] = latin1String.charCodeAt(i);
}
//Uint8ArrayをUTF-8文字列にデコード
const utf8Decode = new TextDecoder();
return utf8Decode.decode(uint8Array);
}
catch (error)
{
console.error("base64デコードエラー:", error);
return null;
}
}
| btoa関数 | バイナリデータをbase64エンコードされたASCII文字列に変換する関数です。 |
| atob関数 | base64エンコードされたASCII文字列を元のバイナリデータにデコードする関数です。 |
| Encoding and decoding strings using base64 |
| Use the btoa and atob functions.(pre-process them if you are dealing with Unicode characters) |
const b1 = document.getElementById("btn1");
const b2 = document.getElementById("btn2");
b1.addEventListener("click", () =>
{
const objIn = document.getElementById("encode");
const objOut = document.getElementById("encode2");
let data = objIn.innerText;
data = base64Encode(data);
objOut.innerText = data;
});
b2.addEventListener("click", () =>
{
const objIn = document.getElementById("decode");
const objOut = document.getElementById("decode2");
let data = objIn.innerText;
data = base64Decode(data);
objOut.innerText = data;
});
function base64Encode(data)
{
//Convert Unicode String to Uint8Array
const utf8Encode = new TextEncoder();
const uint8Array = utf8Encode.encode(data);
//Uint8ArrayをLatin-1 Convert to String
let latin1String = '';
for (let i = 0; i < uint8Array.length; i++)
{
latin1String += String.fromCharCode(uint8Array[i]);
}
//Base64 encode a Latin-1 string
return btoa(latin1String);
}
function base64Decode(data)
{
try
{
//Decode a base64 string to a Latin-1 string
const latin1String = atob(data);
//Decode a base64 string to a Latin-1 string
const uint8Array = new Uint8Array(latin1String.length);
for (let i = 0; i < latin1String.length; i++)
{
uint8Array[i] = latin1String.charCodeAt(i);
}
//Decode a Uint8Array into a UTF-8 string
const utf8Decode = new TextDecoder();
return utf8Decode.decode(uint8Array);
}
catch (error)
{
console.error("Base64 Decoding Error:", error);
return null;
}
}
| btoa function | This function converts binary data into a Base64-encoded ASCII string. |
| atob function | This function decodes a Base64-encoded ASCII string back to its original binary data. |
| ホームページおよプリ等に掲載されている情報等については、いかなる保障もいたしません。 ホームページおよびアプリ等を通じて入手したいかなる情報も複製、販売、出版または使用させたり、 または公開したりすることはできません。 当方は、ホームペーよびアプリ利用したいかなる理由によっての障害等が発生しても、 その結果ホームページおよびアプリ等を利用された本人または他の第三者が被った損害について 一切の責任を負わないものとします。 |