[Pipes] Yahoo! Pipes講座05受講 - 腑に落ちない些細な点

このエントリーをはてなブックマークに追加 Pocket
[Pipes] Yahoo! Pipes講座05(ItemBuilder) | 普通のサラリーマンのiPhone日記

受講しました。04まではすんなりいったのですが、以下の部分で腑に落ちない点があるのです。

上記がiTunesリンク。ここに以下の変換を噛ませてみる。

「% → %25」「 → %20」「” → %22」「& → %26」「’ → %27」「/ → %2F」「? → %3F」「\ → %5C」「: → %3A」「= → %3D」

そして更にもう一回。

「% → %25」「 → %20」「” → %22」「& → %26」「’ → %27」「/ → %2F」「? → %3F」「\ → %5C」「: → %3A」「= → %3D」

すると…。さっきの赤字の部分になります(゚Д゚ )!

iTunes Link Maker で ' はエンコードされない

以下のように入力して確認しましたが、エンコードされないんですよね。

ITMS Link Maker.jpg

エンコードについては encodeURIComponent() と挙動は同じなのではないかなと。

デコード時は %27 が ' にデコードされるようなので動作上の問題はありませんが、iTunes Link Maker と結果が異なるのは気持ちが悪いのです。

2 回目の変換は冗長では?

1回目の変換で % 以外の置換対象文字は存在しなくなっているので、2回目の変換は % のみを置換すればよいのではないかなと。

ということで私はエンコード処理を 1 つの Regex モジュールにまとめて、以下のようにしてみました。

Pipes_ editing _LinkShareLink_.jpg

まあ、処理結果は変わらないのですが。

hiro45jp さんのオリジナルのパイプは 2 回の encodeURIComponent() を実行しているイメージなのかと推測します。

LinkShare 側は decodeURIComponent() を 2 回実行しているイメージのようですが、なぜ 2 回なのかその理由がわからないんですよね。。。