てもとツール
ガイド

「&」の意味と直し方|文章に<や が出る原因

「&」は、HTMLで「&」の記号を書くための書き方(文字参照)です。ブラウザは表示のときに記号へ戻すので、文章にそのまま見えるなら、2回変換されたか、HTMLとして読まない場所に出たかのどちらかです。よく見る6つの早見と、1段ずつ戻す直し方をまとめました。

公開読了目安 約3分

この記事の要点

  • 「&amp;」はHTMLで「&」を、「&lt;」は「<」を書くための書き方
  • ブラウザはHTMLを表示するときに、これらを記号に戻して見せる
  • 文章に「&amp;」が見えるのは、2回変換されたか、HTMLとして読まない場所に出たとき
  • 戻すときは1回で1段ずつ外し、本来の「&lt;」まで記号にしないよう気をつける
  • 「&nbsp;」は、そこで行が折り返されない空白を表す
目次

「&amp;」は、HTMLの中で「&」の記号を書くための書き方です。 「&lt;」は「<」、「&gt;」は「>」を表します。

ブラウザはページを表示するときに、これらを元の記号に戻して見せます。 それでも画面やメールに「&amp;」と見えるなら、どこかで2回変換されたか、HTMLとして読まない場所に出たかのどちらかです。

この記事では、よく見る書き方の意味と、文章に出てしまったときの直し方を順に整理します。 表示はChrome(Chromium 141)で確かめました。

&amp;は「&」を書くための書き方

HTMLでは、「<」がタグの始まり、「&」がこの書き方の始まりという決まった役目を持っています。 そのため、記号そのものを文字として見せたいときは、別の書き方に置き換えます。

この書き方を、文字参照と呼びます。 書き方は3つあり、どれも「&」で始まって「;」で終わります。

  • 名前で書く: &lt;(less than の略)
  • 10進数の番号で書く: &#60;
  • 16進数の番号で書く: &#x3C;

番号は、その文字がUnicodeで持つ番号です。 「<」はU+003Cなので、10進数で60、16進数で3Cになります。

日本語の文字も番号で書けます。 「あ」はU+3042なので、&#12354; でも &#x3042; でも「あ」と表示されます。

よく見る6つの早見

書き方表す文字
&amp;&
&lt;<
&gt;>
&quot;"(二重引用符)
&#39; / &apos;'(一重引用符)
&nbsp;折り返さない空白

上の5つは、HTMLの中で記号の役目とぶつかりやすい文字です。 &nbsp; だけは記号ではなく、見た目は空白の文字を表します(後の節で説明します)。

文章に&amp;がそのまま見える3つの原因

2回変換された

「&」を &amp; に置き換える処理が、2回かかった形です。 1回目で & が &amp; になり、2回目でその先頭の & がまた置き換わって &amp;amp; になります。

ブラウザが戻すのは1段だけです。 &amp;amp; を表示すると、画面には「&amp;」と出ます。 &lt; が2回変換されたなら、画面には「&lt;」と出ます。

HTMLとして読まない場所に出た

HTML用に置き換えた文字列を、HTMLとして読まない場所に移した形です。 たとえば、ページ用に作った見出しをそのままテキストのメールや表計算ソフトに貼ると、&amp; はそのまま文字として残ります。

この場合、元のデータが2回変換されているわけではありません。 直すのは、HTMLでない場所へ渡す手前の処理です。

ページのソースからURLを写した

HTMLの中では、リンク先のURLの「&」も &amp; と書くのが正しい書き方です。 ブラウザは ?q=1&amp;page=2 と書かれたリンクを、?q=1&page=2 として開きます。

ところが、ソースの文字をそのままアドレス欄にコピーすると、&amp; が残ります。 すると、2つ目の項目の名前が「page」ではなく「amp;page」と読まれ、ページ番号が渡りません。 ソースから写したURLに &amp; があれば、& に直してから使ってください。

戻すときは1段ずつ外す

2回変換された文字列は、1回戻すと1段外れます。

  • &amp;amp; → 1回戻すと &amp; → もう1回で &
  • &amp;lt; → 1回戻すと &lt; → もう1回で <

文字列エスケープ・アンエスケープの「HTML」で「アンエスケープ」を選ぶと、貼った文字列を1段だけ戻します。 戻した結果にまだ &amp; が残っていれば、その結果をもう一度貼ります。

このツールが戻すのは、&amp; &lt; &gt; &quot; &apos; &#039; と、&#60; のような番号の書き方です。 &nbsp; や &copy; のような、ほかの名前の書き方はそのまま残します。

&nbsp;は折り返さない空白

&nbsp; は、見た目は空白で、そこでは行が折り返されない文字を表します。 番号はU+00A0で、ふつうの空白(U+0020)とは別の文字です。

幅の狭い枠で確かめると、ふつうの空白でつないだ語は空白の位置で折り返されました。 &nbsp; でつないだ語は折り返されず、1行のまま枠からはみ出しました。

別の文字なので、半角スペースを探す置換では見つからないことがあります。 Webページからコピーした文章で、空白の置換が一部だけ効かないときは、この文字が混ざっていないか疑ってください。 文字の番号は、文字コード調査に貼ると1文字ずつ確かめられます。

関連記事

参考・出典

本記事は上記の公的機関・公式情報源を参考にしています。最新の情報は各リンク先をご確認ください。

あわせて読みたい

同じテーマ・関連ツールの記事です。