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

ThunderbirdのRSSリーダーはエンコードされた<>をデコードして<title>にしてSubject:が変になる [メール投稿]

Twitter / self7777: RSSフィードでは > ...
RSSフィードでは > も < もエンコードされてる。ThunderbirdがHTML形式のメールに変換する時に<title>の所はデコードしちゃってる。<body>の方はエンコードされたまま。それで、<title>をSubject:にするから < がタブの一部とみなされて…。

このツイートのRSSフィードからThunderbirdが作ったHTMLソースは次の通り。
From - Tue, 29 Apr 2014 18:32:04 +0900
X-Mozilla-Status: 0041
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:                                                                                
Date: Tue, 29 Apr 2014 18:32:04 +0900
Message-Id: <https://twitter.com/self7777/status/461075435502047232@localhost.localdomain>
From: RSS (@self7777)
MIME-Version: 1.0
Subject: RSSフィードでは > も < もエンコードされてる。ThunderbirdがHTML形式のメールに変換する時にの所はデコードしちゃってる。<body>の方はエンコードされたまま。それで、<title>をSubject:にするから < がタブの一部とみなされて…。
Content-Transfer-Encoding: 8bit
Content-Base: https://twitter.com/self7777/status/461075435502047232
Content-Type: text/html; charset=UTF-8

<html>
  <head>
    <title>RSSフィードでは > も < もエンコードされてる。ThunderbirdがHTML形式のメールに変換する時に<title>の所はデコードしちゃってる。<body>の方はエンコードされたまま。それで、<title>をSubject:にするから < がタブの一部とみなされて…。</title>
    <base href="https://twitter.com/self7777/status/461075435502047232">
  </head>
  <body id="msgFeedSummaryBody" selected="false">
    RSSフィードでは &gt; も &lt; もエンコードされてる。ThunderbirdがHTML形式のメールに変換する時に&lt;title&gt;の所はデコードしちゃってる。&lt;body&gt;の方はエンコードされたまま。それで、&lt;title&gt;をSubject:にするから &lt; がタブの一部とみなされて…。
  </body>
</html>

元になったRSSフィードは次の通り。
<item>
<link>https://twitter.com/self7777/status/461075435502047232</link>
<guid isPermaLink="true">https://twitter.com/self7777/status/461075435502047232</guid>
<pubDate>Tue, 29 Apr 2014 18:32:04 +0900</pubDate>
<title>
RSSフィードでは &gt; も &lt; もエンコードされてる。ThunderbirdがHTML形式のメールに変換する時に&lt;title&gt;の所はデコードしちゃってる。&lt;body&gt;の方はエンコードされたまま。それで、&lt;title&gt;をSubject:にするから &lt; がタブの一部とみなされて…。
</title>
<description><![CDATA[
RSSフィードでは &gt; も &lt; もエンコードされてる。ThunderbirdがHTML形式のメールに変換する時に&lt;title&gt;の所はデコードしちゃってる。&lt;body&gt;の方はエンコードされたまま。それで、&lt;title&gt;をSubject:にするから &lt; がタブの一部とみなされて…。
]]></description>
</item>

ThunderbirdがツイートのRSSフィードをメール形式に変換する時に、Subject: を次のように変換すれば問題が生じない。
Subject: =?ISO-2022-JP?B?UlNTGyRCJVUlIyE8JUkkRyRPGyhCID4gGyRCJGIbKEIgPCAbJEIkYiUo?= =?ISO-2022-JP?B?JXMlMyE8JUkkNSRsJEYkayEjGyhCVGh1bmRlcmJpcmQbJEIkLBsoQkhU?= =?ISO-2022-JP?B?TUwbJEI3QTwwJE4lYSE8JWskS0pRNDkkOSRrO34kSxsoQjx0aXRsZT4b?= =?ISO-2022-JP?B?JEIkTj1qJE8lRyUzITwlSSQ3JEEkYyRDJEYkayEjGyhCPGJvZHk+GyRC?= =?ISO-2022-JP?B?JE5KfSRPJSglcyUzITwlSSQ1JGwkPyReJF4hIyQ9JGwkRyEiGyhCPHRp?= =?ISO-2022-JP?B?dGxlPhskQiRyGyhCU3ViamVjdDobJEIkSyQ5JGskKyRpGyhCIDwgGyRC?= =?ISO-2022-JP?B?JCwlPyVWJE4wbEl0JEgkXyRKJDUkbCRGIUQhIxsoQg==?=

テスト用ブログで確認したら、Subject: はエンコードされてなくてもThunderbirdは正常に表示するかもしれない。Subject:の生成時に問題が生じ、その前の<title>タグの生成時にデコードしてしまうことが問題なのかもれしない。例えば次のようなソースは問題なかった。
Subject: <title>について
(中略)
<html>
  <head>
    <title>&lt;title&gt;について</title>
(中略)
  </head>
  <body id="msgFeedSummaryBody" selected="false">
(中略)
  </body>
</html>

nice!(0)  コメント(0)  トラックバック(1) 
共通テーマ:moblog

消費税率が上がったことにより3月までに前払いしたNHK受信料との差額が4月以降に請求される理由 [メール投稿]

消費税法
   附 則 (平成二四年八月二二日法律第六八号) 抄

(施行期日)
第一条  この法律は、平成二十六年四月一日から施行する。ただし、次の各号に掲げる規定は、当該各号に定める日から施行する。
一  第一条及び第七条の規定並びに附則第十八条、第二十条及び第二十一条の規定 公布の日
二  第三条の規定並びに附則第十五条及び第十六条の規定 平成二十七年十月一日

(消費税法の一部改正に伴う経過措置の原則)
第二条  この附則に別段の定めがあるものを除き、第二条の規定による改正後の消費税法(以下附則第十四条までにおいて「新消費税法」という。)の規定は、この法律の施行の日(以下附則第十五条までにおいて「施行日」という。)以後に国内において事業者(消費税法第二条第一項第四号に規定する事業者をいう。以下附則第十六条までにおいて同じ。)が行う資産の譲渡等(同項第八号に規定する資産の譲渡等をいう。以下この条及び附則第十五条において同じ。)及び施行日以後に国内において事業者が行う課税仕入れ(同項第十二号に規定する課税仕入れをいう。以下附則第十六条までにおいて同じ。)並びに施行日以後に保税地域(同項第二号に規定する保税地域をいう。以下附則第十六条までにおいて同じ。)から引き取られる課税貨物(同項第十一号に規定する課税貨物をいう。以下附則第十六条までにおいて同じ。)に係る消費税について適用し、施行日前に国内において事業者が行った資産の譲渡等及び施行日前に国内において事業者が行った課税仕入れ並びに施行日前に保税地域から引き取った課税貨物に係る消費税については、なお従前の例による。

 「消費税法の一部改正に伴う経過措置の原則」の第二条は()が多いので読みにくいから、()を抜くと次のようになる。
第二条  この附則に別段の定めがあるものを除き、第二条の規定による改正後の消費税法()の規定は、この法律の施行の日()以後に国内において事業者()が行う資産の譲渡等()及び施行日以後に国内において事業者が行う課税仕入れ()並びに施行日以後に保税地域()から引き取られる課税貨物()に係る消費税について適用し、施行日前に国内において事業者が行った資産の譲渡等及び施行日前に国内において事業者が行った課税仕入れ並びに施行日前に保税地域から引き取った課税貨物に係る消費税については、なお従前の例による。

 要するに、4月以降に譲渡される資産については、その料金を前払いしていても4月以降の消費税率が適用されるということだろう。だからNHKの受信料は、4月以降に受信する分については消費税率8%が適用されるから、3月までに消費税率5%を前提に前払いしていたら、差額が請求されるということなのだろう。
 3月までの駆け込み需要のニュースで、生産が追い付かないということで、4月以降に商品が渡される場合は消費税率8%が適用される場合があるから注意するようにみたいな情報があった気がする。詳細は忘れたが、NHKの受信料の前払い(結果的に駆け込み需要と同じ形)も例外ではないということだろう。
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:moblog

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