Webの世界では、情報の表現と伝達がキーとなります。しかし、文字や記号がデジタル環境でどのように扱われ、理解されるかは、初心者にとっては少々複雑に感じるかもしれません。そこで重要となるのが、エンコードとデコードのプロセスです。
この記事では、HTML、URL、そしてUnicodeといった基本的ながら重要なエンコーディング手法に焦点を当て、それらがどのように機能し、なぜ重要なのかを解説します。また、それぞれのエンコード/デコード方法について、初心者でも簡単にコピペで試せるJavaScriptのサンプルコードを提供します。
Web開発の最初の一歩を踏み出すあなたにとって、このガイドが役立つことを願っています。では、一緒にエンコードとデコードの世界を探究していきましょう!
HTMLエンコード、デコードとは
HTMLエンコードは、HTMLにおいて特別な意味を持つ文字(例えば<や&)を、その文字自体ではなく特別なコード(例えば&lt;や&amp;)に変換することです。これは、ブラウザがこれらの文字をHTMLタグやエンティティとして解釈するのを防ぐために行われます。デコードはその逆の過程です。
HTMLエンコード、デコード変換:HTML・JavaScriptコード
以下のコードをコピペすればHTMLエンコード、デコード変換後の文字を出力する処理が実装できます。
HTMLコード
<h2>HTMLエンコードまたはデコード変換</h2>
<textarea type="text" id="input" placeholder="HTMLエンコード・デコードする文字を入力" rows="6" cols="36"></textarea>
<br>
<button onclick="document.getElementById('output').textContent = htmlEncode(document.getElementById('input').value)">HTMLエンコード↓</button>
<button onclick="document.getElementById('output').textContent = htmlDecode(document.getElementById('input').value)">HTMLデコード↓</button>
<br>
<textarea id="output" placeholder="HTMLエンコード・デコード結果" rows="6" cols="36"></textarea>
JavaScriptコード
<script>
//HTMLエンコード
function htmlEncode(str) {
var div = document.createElement('div');
div.appendChild(document.createTextNode(str));
return div.innerHTML;
}
//HTMLデコード
function htmlDecode(str) {
var div = document.createElement('div');
div.innerHTML = str;
return div.innerText;
}
</script>
URLエンコード、デコードとは
URLエンコードは、URLに含まれる特定の文字をパーセントエンコーディング(例:空白は%20)に変換することです。これにより、URL内で安全に文字を伝送できます。デコードはこのエンコードされた文字を元に戻すプロセスです。
URLエンコード、デコード変換:HTML・JavaScriptコード
以下のコードをコピペすればURLエンコード、デコード変換後の文字を出力する処理が実装できます。
HTMLコード
<h2>URLエンコードまたはデコード変換</h2>
<textarea type="text" id="urlInput" placeholder="URLエンコード・デコードする文字を入力" rows="6" cols="36"></textarea>
<br>
<button onclick="document.getElementById('urlOutput').textContent = urlEncode(document.getElementById('urlInput').value)">URLエンコード↓</button>
<button onclick="document.getElementById('urlOutput').textContent = urlDecode(document.getElementById('urlInput').value)">URLデコード↓</button>
<br>
<textarea id="urlOutput" placeholder="URLエンコード・デコード結果" rows="6" cols="36"></textarea>
JavaScriptコード
<script>
//URLエンコード
function urlEncode(str) {
return encodeURIComponent(str);
}
//URLデコード
function urlDecode(str) {
return decodeURIComponent(str);
}
</script>
Unicodeエンコード、デコードとは
Unicodeエンコードは、テキスト文字列をUnicode表現に変換するプロセスです。これにより、さまざまな言語や記号を統一的な形式で表現できます。デコードは、Unicode表現を元の文字列に戻す過程です。
Unicodeエンコード、デコード変換:HTML・JavaScriptコード
以下のコードをコピペすればUnicodeエンコード、デコード変換後の文字を出力する処理が実装できます。
HTMLコード
<h2>Unicodeエンコードまたはデコード変換</h2>
<textarea type="text" id="unicodeInput" placeholder="Unicodeエンコード・デコードする文字を入力" rows="6" cols="36"></textarea>
<br>
<button onclick="document.getElementById('unicodeOutput').textContent = unicodeEncode(document.getElementById('unicodeInput').value)">Unicodeエンコード↓</button>
<button onclick="document.getElementById('unicodeOutput').textContent = unicodeDecode(document.getElementById('unicodeInput').value)">Unicodeデコード↓</button>
<br>
<textarea id="unicodeOutput" placeholder="Unicodeエンコード・デコード結果" rows="6" cols="36"></textarea>
JavaScriptコード
<script>
//unicodeエンコード
function unicodeEncode(str) {
return escape(encodeURIComponent(str));
}
//unicodeLデコード
function unicodeDecode(str) {
return decodeURIComponent(unescape(str));
}
</script>
JavaScriptを使ってHTML、URL、Unicodeエンコード・デコード変換デモページ
上記を実装したHTML、URL、Unicodeエンコード・デコード変換処理が以下のデモページから確認できます。
JavaScriptを使ってHTML、URL、Unicodeエンコード・デコード変換デモページ
注意点
- エンコードとデコードは、それぞれのコンテキストに適した方法を選ぶ必要があります。間違った方法を選ぶと、データが正しく伝送されない可能性があります。
- セキュリティ上の理由から、ユーザー入力をそのまま処理する際には特に注意が必要です。XSS(クロスサイトスクリプティング)のような脆弱性を防ぐため、適切なエンコーディングを行うことが重要です。
まとめ
この記事では、HTML、URL、Unicodeのエンコードとデコードについて説明しました。これらの技術は、ウェブ開発において非常に重要であり、データを正しく安全に扱うために必要な知識です。上記のサンプルコードを参考に、実際のプロジェクトで活用してみてください。
※参考にする場合は自己責任でお願いします。
デモページheadタグ内のGoogleアナリティクスタグは流用しないで下さい。