SunMonTueWedThuFriSat
Apr
2
1
3
5
0
3
4
May
5
2
1
1
3
1
2
1
1
0
1
1
1
2
2
0
2
4
2
0
0
3
0
1
2
2
8
3
Jun
2
8
2
1
0
4
2
3
0
3
3
0
1
2
6
3
4
1
6
2
2
4
2
0
4
2
1
1
2
3
6
2
6
0
0
Jul
6
1
1
0
0
1
2
1
2
1
2
1
1
2
1
0
0
0
1
0
0
2
0
0
1
5
2
3
Aug
6
4
0
1
1
1
2
6
3
0
1
0
0
3
3
8
1
1
3
1
1
0
2
1
1
3
0
2
3
3
2
0
4
1
2
Sep
0
1
3
3
1
0
3
0
1
1
0
3
1
0
3
6
14
1
0
0
0
8
2
3
1
0
0
2
Oct
6
1
0
0
1
0
3
0
0
1
0
2
0
1
0
0
0
3
5
0
0
0
0
0
0
2
1
0
Nov
0
1
0
1
0
5
0
1
4
1
0
0
0
0
2
0
1
2
2
0
0
0
0
0
0
2
1
1
1
0
5
3
7
0
2
Dec
4
2
0
2
1
0
0
1
2
1
0
0
0
0
0
0
1
0
3
2
4
1
7
4
1
3
11
2
Jan
3
2
2
9
2
1
11
3
3
3
5
6
3
3
13
6
2
1
1
3
8
4
4
5
1
3
1
5
Feb
5
4
2
2
2
3
0
0
5
2
2
0
0
0
1
0
1
0
2
1
3
0
4
4
3
3
0
3
Mar
4
0
5
1
0
1
1
0
0
1
3
1
1
2
1
1
1
4
0
1
2
1
1
1
0
1
2
0
3
1
3
4
0
2
3
Apr
1
1
0
1
0
4
5
7
3
2
1
2
1
1
2
0
0
1
0
2
2
2
1
3
1
2
0
9
May
4
4
ただし、賞味期限は2025年1月。┌(:3」└)┐ >>4991
🍬Re:5725◆URLの中に & 記号をそのままを書くと、それはパラメータの区切りであると認識されてしまいます。「&以降の文字がTwitter側で表示されない」という現象の原因はそれです。
▼背景:
例えば、Web上のシステムに何らかのパラメータを送る場合、
https://example.com/?url=AAA&title=BBB&text=CCC&name=DDD
のような感じで「パラメータ=値」のセットを「 & 」で連結しますよね。上記の場合は、
- urlパラメータの値がAAA
- titleパラメータの値がBBB
- textパラメータの値がCCC
- nameパラメータの値がDDD
……のように4つのパラメータがあると認識されます。もしここで、「BBB」の部分を「Baa&Bee」のように「 & 」記号を含む形で書いてしまうと、
https://example.com/?url=AAA&title=Baa&Bee&text=CCC&name=DDD
これは以下のように、
- urlパラメータの値がAAA
- titleパラメータの値がBaa (←&記号の直前まで)
- Beeパラメータ(値なし) (←&記号の直後から)
- textパラメータの値がCCC
- nameパラメータの値がDDD
……として、合計5つのパラメータがあると認識されてしまいます。半角の「 & 」記号があれば常にパラメータの区切りになるからです。
本当は「Baa&Bee」というタイトルなのに「&」がパラメータの区切りだと認識されるため、タイトルの認識範囲は「Baa」で終わってしまうわけですね。「&に続くその先の文字がTwitterでタイトルとして認識されない」のもこのためです。
(※ここでは & を文字実体参照にして Baa&Bee としていても同じことで、やはりこの & は区切りになります。)
▼対処方法:
URLの中に「 & 」記号そのものを文字として含めたい場合には、URLエンコードという規則に従って & 1文字を %26 という3文字に置き換える必要があります。
先の例だと、
https://example.com/?url=AAA&title=Baa%26Bee&text=CCC&name=DDD
……のようにします。そうすれば、「Baa%26Bee」が「Baa&Bee」にデコード(復元)されて、
- titleパラメータの値はBaa&Bee
だと正しく認識されます。このような変換はJavaScript側でするしかありませんから(JavaScriptにはそのための関数 encodeURIComponent が用意されています)、てがろぐ側の本文([[COMMENT:TITLE]]等)を取得してURLエンコードしてから「Twitterへ送るURL」を生成するようなJavaScriptを用意する必要があるでしょう。
※なお、<![CDATA[で始まり]]>で終わるCDATA(読みはたぶんシー・データ)はXMLでの特別な書き方なので、HTMLには無関係です。畳む