[salesforce]Web to leadの送信時に文字コード指定

By |8月 20, 2009|salesforce, |


Web to leadのHTMLコードを取得すると、送信先のSalesforceのURLは以下のような形式で取得できます。

[php]
https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8
[/php]

ここで注目するポイントは、

  1. プロトコルはHTTPS
  2. URL末尾の文字コード指定らしき部分がUTF-8

[プロトコルはHTTPS]

プロトコルとしてHTTPSのURLになっていますが、ここをHTTPにしてもWeb to Leadはちゃんと実行されてリードに情報は取り込まれます。

こんな感じ。

[php]
http://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8
[/php]

わざわざセキュリティを落としてHTTPにする理由はありませんが、場合によってはこのWeb to Leadの実行をPHPなどのスクリプト内からPOST送信することで実行しているときに
そのサーバのPHPがSSL未対応環境だった、なんてな時にHTTPにして送信することで急場しのぎできたりします。もちろんセキュリティが落ちることはクライアント様には報告した上で、ですね。

[URL末尾の文字コード指定らしき部分がUTF-8]

URLの末尾がUTF-8と書かれています。これはSalesforceのデフォルトの文字コードがUTF-8であることに起因してるのでしょうが、
この末尾で指定されている文字コードは、送信される情報の文字コードが何であるか、を指定することができます。
たとえば送信するフォームのHTMLやPHPスクリプトなどがEUC-JP環境のときは

[php]
https://www.salesforce.com/servlet/servlet.WebToLead?encoding=EUC-JP
[/php]

と書いてやるときちんと文字化けせずにSalesforceに保存されます。
EUC-JPの環境からUTF-8という指定をしてWeb to Lead送信をすると文字化けした情報が保存されたりします。
どこまでの文字コードが対応しているかは不明ですが、とりあえずEUC-JPとShift-JISは確認済みです。