クロネコ@ペイメント
連携で文字化けする
原因
- 「クロネコ@ペイメント 購入者ホームページ入力方式 リンクボタン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="�">
- input 属性の value 属性値を HTML エンコードしておけば・・・などと(私のように)考えてはいけない。それではブラウザが解釈するので、無駄足だ。(URLエンコードとは、訳が違う。)