みなさんはWorkflowでレシピを作ってますか?
私はよくURLスキームを使うレシピを作ってます。
この時URLスキームに渡すURLはエンコードしますが、WorkflowのURL EncodeアクションはjavascriptのencodeURIComponentとは挙動が違うのをご存知でしたか?
かと言ってencodeURIとも違うんですよ。
エンコードを比較するレシピを作ったので、インポートして確認してみて下さい。
▼レシピを実行すると各エンコード結果が表示されます。
- origin:エンコード前のテキスト
- WorkflowEncode:Workflowのエンコードアクション結果
- encodeURI:javascriptのencodeURI結果
- encodeURIComponent:javascriptのencodeURIComponent結果
尚、encodeURIやencodeURIComponentはMyScriptsで出力した結果です。
結果を見て頂ければわかりますが、WorkflowのアクションはencodeURIともencodeURIComponentとも違う結果になってます。その2つの中間のような挙動です。(^^;
謎な挙動のアクションより確実にencodeURIComponentでエンコードしたい時もあると思うので、今回encodeURIComponentレシピを作ってみました。
エンコード
デコード
encodeURIComponentとdecodeURIComponentをインポートした後に以下のレシピをインポートして実行してみて下さい。
▼本レシピのエンコードがjavascriptのencodeURIComponentと一致、デコードがoriginと一致してるのがわかります。
▼以下のように、エンコードしたい時はRunWorkflowでencodeURIComponentを、デコードしたい時はRunWorkflowでdecodeURIComponentを選択して下さい。
いかがでしょうか?
今までencodeURIComponentを使いたくても出来ずに困ってた方はお試し下さい。
happyChappy(@happyChappy1115)でした。
Sponsored Link
Posted from するぷろ for iOS.
ピンバック: 今聴いてる曲をツイートしたり、メールやLINEに送ったりブログに挿入できるSongTweetのプレビュー版を作ってみた。 | happyChappyBlog