• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:FirefoxでのcharacterSet変更)

FirefoxでのcharacterSet変更

このQ&Aのポイント
  • FirefoxのJavaScriptにかぎって「document.characterSet」による取得以外の機能が見つかりません。
  • 某ホームページには「document.characterSet='EUC-JP'」ができると記述があるのですが実際やってみるとスクリプトの実行が停止してJavaScriptコンソールには「getter only(取得のみ)」とエラー表示されています。
  • Firefoxでこのような問題を解決した方がいらっしゃいましたらご教授お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

回答がないみたいなので… javascriptでやらなくても、別のcgiで受け取って文字コード変換してから渡してやるとか… (大抵ライブラリがあるでしょうから。) わざわざ別のcgiにしなくても、そのものを修正できるのならそれにこしたことはありませんが。 いずれにしろ、サーバ側で対処するのがまっとうな方法のような気がします。 どうしてもjavascriptでやるとしても、スクリプトがオフの場合はどうするとか問題は残るでしょう。 というのは置いておいて… (ちゃんと検証はしていませんので、確認してください) ◇ご質問とほぼ同様の方法  http://search.web-sun.com/zatu/charset.html ◇javascriptで文字コード変換を行う方法  http://felix-labo.jp/pukiwiki/?JavaScript%2F%E5%82%99%E5%BF%98%E9%8C%B2%2F%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89%E5%A4%89%E6%8F%9B  http://perl.g.hatena.ne.jp/tetsu23/20060228/p1

ralf124c
質問者

お礼

アドバイスありがとうございます。 たしかにおっしゃる通り、CGIを間にかますと簡単な話なんですが、そのCGI自体がページとしてカウントされるため、ブラウザの「戻る」ボタンがページ遷移的にどうしても気になってしまいます。 もしかしたらエンコードすればいけるんじゃないかとやってみたらサブミット時点で再エンコードされてPOSTされるデータがエンコード状態・・・やってみなくても当たり前のことなんですが一縷の望みとやってみました。 ecl.jsも実は試してみたのですが、処理がそのページで完結表示なら使えたんですが、別ページにPOSTするとなると化け化けになってしまいあきらめていました。ハテナの参考リンクをみたら別のやり方があったのですね。 「ご質問とほぼ同様の方法」もたいへん参考になります。後半部分は現状困っている部分ですが、前半部分は試していないのでこれから試してみます。 どうもありがとうございました。

ralf124c
質問者

補足

先にお礼を記入してしまいましたのでこちらで最終結果を記入させていただきます。 リンク先のヒントを参考に試行錯誤した結果、今回の問題に関して理想的な解決法が見つかりました。 後々のために記録として解決策のサンプルを入れておきます。 -----ここから if((navigator.userAgent.indexOf("Firefox",0) > -1)||(navigator.userAgent.indexOf("Netscape",0) > -1)){ document.f.acceptCharset = 'euc-jp'; document.f.submit(); }else{ document.charset='euc-jp'; document.f.submit(); document.charset='utf-8'; } -----ここまで FirefoxはNetscapeのJavaScriptエンジンをいまだ引きずっているようでNetscape7.1も同じ対策でOKでした。 Fijillinさんの的確なアドバイスのおかげでたいへん助かりました。