SSブログ

ツイート→RSSフィード→ThunderbirdのHTMLソース→ThunderbirdのSubjectのエンコードとデコード [メール投稿]



 このツイートのRSSフィードは次の通り。
<item>
<link>https://twitter.com/self7777/status/461175668827357184</link>
<guid isPermaLink="true">https://twitter.com/self7777/status/461175668827357184</guid>
<pubDate>Wed, 30 Apr 2014 01:10:22 +0900</pubDate>
<title>
&amp;lt;title&amp;gt;について ←ツイートのRSSフィードの&amp;lt;title&amp;gt;タブにhtmlspecialcharsを使ってみた場合のテスト
</title>
<description><![CDATA[
&lt;title&gt;について ←ツイートのRSSフィードの&lt;title&gt;タブにhtmlspecialcharsを使ってみた場合のテスト
]]></description>
</item>
<item>

 ThunderbirdのHTMLソースは次のように変わる。
From - Wed, 30 Apr 2014 01:10:22 +0900
X-Mozilla-Status: 0041
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:                                                                                
Date: Wed, 30 Apr 2014 01:10:22 +0900
Message-Id: <https://twitter.com/self7777/status/461175668827357184@localhost.localdomain>
From: RSS (@self7777)
MIME-Version: 1.0
Subject: <title>について ←ツイートのRSSフィードの<title>タブにhtmlspecialcharsを使ってみた場合のテスト
Content-Transfer-Encoding: 8bit
Content-Base: https://twitter.com/self7777/status/461175668827357184
Content-Type: text/html; charset=UTF-8

<html>
  <head>
    <title>&lt;title&gt;について ←ツイートのRSSフィードの&lt;title&gt;タブにhtmlspecialcharsを使ってみた場合のテスト</title>
    <base href="https://twitter.com/self7777/status/461175668827357184">
  </head>
  <body id="msgFeedSummaryBody" selected="false">
    &lt;title&gt;について ←ツイートのRSSフィードの&lt;title&gt;タブにhtmlspecialcharsを使ってみた場合のテスト
  </body>
</html>

 ツイートのRSSフィードを作成するプログラムで<title>の所にhtmlspecialcharsを利用した。
PHP: htmlspecialchars - Manual
(PHP 4, PHP 5)

htmlspecialchars ― 特殊文字を HTML エンティティに変換する

 ツイートのJSONは特殊文字がHTMLエンティティに変換して届けてくれる。JSONからRSSフィードを作る際に<title>部分だけさらにHTMLエンティティに変換する。具体的には&の所が&amp;になる。<>はJSONで&lt;&gt;となっているが、それをさらに&amp;lt;&amp;gt;にする。ThunderbirdはHTMLソースに変換する際に<title>部分だけデコードする。すると&amp;が&に戻る。&amp;lt;&amp;gt;は&lt;&gt;になる。その自分で<title>部分からThunderbirdはSubjectを作るのだが、その際にさらにデコードして&lt;&gt;が<>になる。
 htmlspecialcharsを利用しない場合、Thunderbirdが作ったHTMLソースの<title>部分がHTMLエンティティに変換されてない状態になり、<>が<>のまま表示されて、<title>内からSubjectにする部分を抽出する際にタグの区切りが分からなくって一部しか抽出されない問題が生じたみたい。

これは解決できたかもしれない。→【ThunderbirdのRSSリーダーはエンコードされた<>をデコードして<title>にしてSubject:が変になる:正己の異論・反論(雑感):So-netブログ】
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:moblog

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。