オープンソースの販売サイト構築ソフト EC-CUBE についてのメモ。

クロネコ@ペイメント

連携で文字化けする

原因

  • 「クロネコ@ペイメント 購入者ホームページ入力方式 リンクボタンHTMLソース」ver1.8 によると、受け入れ可能な文字列は下記の通り。
    • テスト環境 … SJIS
    • 本番環境 … SJIS, EUC
  • EC-CUBE のフロント機能PCサイトは UTF-8 で送出される。
  • Firefox については、クロネコ@ペイメントさん謹製のソース (form 要素の accept-charset 属性指定) で対応できるが、IE は無視する。

回避策

送信ボタンのソースを下記の通り書き換える。

 <CENTER><FONT COLOR="#FF00FF" SIZE=-2>クレジットカードでお支払いされるお客様は<BR>
 下記ボタンを押して手続きを行ってください。</FONT><BR>
-<INPUT TYPE="submit" VALUE="クレジットカードお支払手続きへ"></CENTER>
+<INPUT TYPE="submit" VALUE="クレジットカードお支払手続きへ"
+    onclick="if (navigator.appName == 'Microsoft Internet Explorer') {originalCharset = document.charset; document.charset='shift_jis'; this.form.submit(); document.charset = originalCharset; return false;}"
+></CENTER>
 </FORM>

検証環境

  • Firefox 3.5
  • IE6(WinXP), 7

参考

  • 巷では「Unicode 固有の文字列を付加することで、回避しようとする手法」があるが、成否は送出先のシステムに依存する。クロネコ@ペイメントでは、NG のようだ。
<!-- 典型的なコードの例 -->
<input type="hidden" name="dummy" value="&#65533;">
  • input 属性の value 属性値を HTML エンコードしておけば・・・などと(私のように)考えてはいけない。それではブラウザが解釈するので、無駄足だ。(URLエンコードとは、訳が違う。)
tips/クロネコ_ペイメント.txt · 最終更新: 2010/02/20 19:20 by seasoft
© 2008-2021 Seasoft.