Guide 12 Jun 2026 7 分で読めます

プレーンテキストをHTMLに変換する完全ガイド:何が変わるのか、なぜ重要なのか

変換せずにプレーンテキストをHTMLに貼り付けることは、ページを壊したりセキュリティの穴を開けたりする最も一般的な方法の一つです。テキスト→HTML変換ツールが何をするのか、いつ必要なのかを詳しく解説します。

Text to HTML Conversion Guide

テキストをHTMLに変換するとき何が変わるのか

プレーンテキストとHTMLは見た目が似ていますが、ブラウザの解釈はまったく異なります。正しく変換すると、5つの主要な変換が行われます:

  • &&:アンパサンドはすべてのHTMLエンティティの開始文字なので、最初にエスケープする必要があります
  • <&lt;:これがないと、テキスト内のすべての山括弧がHTMLタグとして解釈されます
  • >&gt;:同じ理由で、タグの解釈を閉じます
  • 改行 → <br>タグ または <p>要素:HTMLでは生の改行は表示されません
  • プレーンURL → <a href="...">リンク:オプションですが、ほぼ常に便利です

この5つの変換で、テキスト→HTML変換の95%がカバーされます。順序も重要です。他のエンコードより前にアンパサンドをエスケープしないと、自分のエンティティを二重エンコードしてしまいます。

HTMLエンティティエンコード:なぜ重要なのか

これは単なる出力のきれいさの問題ではありません。セキュリティの問題です。

ユーザーが <script>alert(1)</script> を含むコメントを送信したとします。エンコードせずにそのままHTMLページに貼り付けると、ブラウザはそれをJavaScriptとして実行します。これがXSS(クロスサイトスクリプティング)攻撃です。Webアプリケーションの脆弱性の中で最も多い攻撃の一つです。

対策はシンプルです:出力する前にエンコードすること。PHPでは htmlspecialchars() が4つの重要な文字を処理します。Pythonでは html.escape() で対応できます。JavaScriptでは手動または専用ライブラリを使います。

エンコード前(危険):
<b>太字</b> & 友達 <script>盗む()</script>

エンコード後(安全):
&lt;b&gt;太字&lt;/b&gt; &amp; 友達 &lt;script&gt;盗む()&lt;/script&gt;

セキュリティ以外にも、エンコードされていないアンパサンドはHTML検証を壊します。page?a=1&b=2 のようなURLをテキストに埋め込むと、クエリパラメータ間の &amp; を期待するパーサーが混乱します。

段落(p)と改行(br):正しい構造の選び方

ここで多くの人が間違えます。HTMLで改行を処理する方法は2つあり、それぞれ異なる目的があります。

<p>タグはブロックコンテンツに使います。段落タグには意味的な意味があり、ブラウザ・スクリーンリーダー・検索エンジンに「これは独立したテキスト単位だ」と伝えます。段落にはデフォルトで上下のマージンがあるため、追加のCSSなしでテキストに余裕が生まれます。

<br>はブロック内の意図的な改行に使います。詩、郵便住所、歌詞などは視覚的な改行が必要ですが、まだ一つの論理単位です。各行を <p>でラップすると、不要な余白と誤った意味構造が加わってしまいます。

ブログ記事の本文 — <p>を使う:
<p>最初の段落。</p><p>2番目の段落。</p>

郵便住所 — <br>を使う:
東京都渋谷区1-1-1<br>代々木ビル 3F

ほとんどのテキスト→HTML変換ツールでは選択できます。ブログ記事や文章を変換するときは段落モードを選びましょう。短い行構造のコンテンツを変換するときは改行モードを選びましょう。

基本を超えた特殊文字の処理

4つの主要なエンティティをカバーしたら、実際のコンテンツで定期的に登場する文字がいくつかあります:

文字エンティティ使う場面
"&quot;HTML属性値の内側
'&apos;シングルクォート属性内(HTML5)
ノーブレークスペース&nbsp;「10 kg」のような語間の改行を防ぐ
EMダッシュ&mdash;文章中のタイポグラフィックなダッシュ
ENダッシュ&ndash;「2020〜2025」のような範囲表記
著作権記号&copy;フッターの著作権表示
登録商標&reg;ブランド名

実際には、ページがUTF-8エンコーディングを使用していれば(そうすべきですが)、エンティティ参照なしでほとんどの文字を直接含めることができます。エンティティを使う主な理由は、ソーステキストがXMLやXHTMLに埋め込まれる可能性がある場合や、JavaScriptの文字列内でHTMLを記述する場合です。

実際のユースケース

理論を知ることも重要ですが、実際に時間を節約できる場所を知ることがより実用的です。

CMSへのコンテンツの貼り付けが最も一般的なケースです。WordPress・Drupal等のシステムには通常独自のサニタイザーがありますが、生のHTMLブロックやHTMLを直接受け入れるヘッドレスCMSを使用している場合、エンコードされていないテキストは問題を引き起こします。WordやNotionからテキストブロックをコピーすると、スマートクォート・エンダッシュ・ノーブレークスペースが混入することがよくあります。

メールHTMLテンプレートはさらに厳しい環境です。メールクライアントはレンダリングエンジンを共有しておらず、多くはCSSを無視します。OutlookとApple Mailで同時に正しく表示するには、エンティティエンコードを正確に行うことは必須です。

READMEファイルの変換は開発者特有のケースです。コード例に山括弧を含むプレーンテキストのREADMEは、変換せずにHTMLページにドロップすると壊れた表示になります。比較演算子やジェネリクス構文を使用するドキュメントも同様です。

WordやGoogle Docsからブログ記事を移行するのは最も面倒なシナリオです。これらのアプリケーションはスマートクォート・カーリーアポストロフィ・非標準のダッシュを挿入し、独自のマークアップが含まれることもあります。適切なテキスト→HTML変換ツールは非標準文字を削除し、正しいHTMLエンティティまたはUTF-8の同等物に置き換えます。

テキスト→HTML変換ツールが通常提供する機能

良い変換ツールは一律の変換を適用するのではなく、変換をコントロールできます。通常見られるオプション:

  • <p>タグで囲む:二重改行が段落区切りになる
  • URLをリンクに変換:http://とhttps://文字列を検出し、target="_blank" rel="noopener"付きのアンカータグにラップ
  • 空白を保持:整形済みコンテンツに便利、出力を<pre>で囲む
  • nl2brを追加:すべての改行を<br>に変換、詩やアドレスブロックに便利
  • HTMLを削除:入力に既にタグが含まれている場合、変換前にそれらを削除
  • 完全なHTMLドキュメントとして出力:結果をdoctype・head・bodyを含む完全なHTML5ボイラープレートにラップ
MoreOnlineToolsのテキスト→HTML変換ツールをお試しください。テキストを貼り付け、オプションを選んで、ワンクリックできれいなHTMLを取得できます。サインアップ不要、サーバーへのデータ送信なし。
プレーンテキストをHTMLに即座に変換

テキストを貼り付けるだけで、段落ラップ・URLリンク化・エンティティエンコード・空白保持のオプション付きで、きれいで安全なHTML出力が得られます。