前提
- HTMLとJavaScript
- OutlookカレンダーのURLリンクを設置し、ユーザーがクリックするとに予定登録画面に遷移
- URLリンクのパラメータに値をセットしておくと、予定登録画面に遷移した際にパラメータの値が初期値になる
例えば、下記のようなURLリンクがあります。
https://outlook.live.com/owa/?path=/calendar/action/compose&subject=hoge&body=fugafuga
URLリンクをクリックすると、下記の画面に遷移します。タイトルにhoge、内容にfugafugaが初期値になります。
発生している問題
パラメータのbodyの値に日本語や改行など様々な値が入る可能性があります。そのため、JavaScriptのencodeURIメソッドを使用し、エンコードしています。エンコードの際に下記のような問題が発生します。
【問題1】
改行をエンコードし、Outlookカレンダーに遷移すると500エラーが発生します。エラー原因は、改行をエンコードした%0A
です。なぜ、%0A
が含まれるとエラーになるのか理由がわかりません。
https://outlook.live.com/owa/?path=/calendar/action/compose&subject=hoge&body=fuga%0Afuga
【問題2】
半角をエンコードし、Outlookカレンダーに遷移するとが半角の代わりに+
が表示されます。
https://outlook.live.com/owa/?path=/calendar/action/compose&subject=hoge&body=fuga%20fuga
【問題3】
全角をエンコードし、Outlookカレンダーに遷移するとが全角の代わりに半角
が挿入され表示されます。
https://outlook.live.com/owa/?path=/calendar/action/compose&subject=hoge&body=fuga%E3%80%80fuga
これらの理由がわかる方がいましたら教えていただけるとありがたいです。
試したこと
同様の仕様でGoogleカレンダーは実装できました。内容はfuga
+ 改行
+ fuga
です。
https://www.google.com/calendar/render?action=TEMPLATE&text=hoge&details=fuga%0Afuga
Googleで実現できて、Outlookで実現できないので、Outlook特有の仕様の影響だと考えています。
改行は<br>
で置換したら改行されるのが確認できました。ただし、全ての特殊な文字コードをHTMLで置換するのは抜け漏れが発生しそうなのと、問題が発生する理由を理解した上で対応したいと考えています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。