• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:loadVariablesで読み込んだら文字化けします)

loadVariablesで読み込んだら文字化けします

このQ&Aのポイント
  • loadVariablesで読み込んだテキストファイルの内容が文字化けする問題が発生しています。
  • 具体的な例として、dat.datファイルからloadVariablesで読み込むと、文字化けせずに表示されるはずのデータが正しく表示されません。
  • また、flashでデータを変更して保存した後に再度読み込むと、正しく表示されるべきデータが意図しない文字列で表示されます。

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

  • ベストアンサー
  • mach999
  • ベストアンサー率75% (36/48)
回答No.2

Jcode::convert(\$buffer, "EUC"); この"EUC"というのは、EUCという(UTF-8やShift_JISとはまた別の)文字コードを指定する、と言う意味です。 別の文字コードを使っているために、今度はまた違う化け方をしているわけです。 というわけで、ここでEUCやUTF-8ではなくShift_JISを指定("EUC"→"sjis"かな)してdat.datを保存し、Flashでの読み込み処理  System.useCodepage=true  _root.loadVariables("./dat.dat"); とすれば化けなくなるんじゃないでしょうか? ちなみに今は動作確認できる場所にいないので、細かい所でミスってたら申し訳ない。

mmmmmm00
質問者

お礼

最初にお答えいただいた UTF-8というコードの文字をShift_JISで読み込んだものです。 を参考に いろいろとためしていたら 文字化けが起こらなくなりました 原因を究明していただいたと 感謝感激です

その他の回答 (1)

  • mach999
  • ベストアンサー率75% (36/48)
回答No.1

途中で文字コードが変わってます。 縺溘m縺・縺倥m縺・縺・■繧阪≧というのは、UTF-8というコードの文字をShift_JISで読み込んだものです。ちなみに長ったらしいのは、縺溘m縺・縺倥m縺・縺・■繧阪≧が「たろう」だけでなく、「たろう,じろう,さぶろう」まで含んでいるためです。 データ読み込み前に、Flashのスクリプト内で  System.useCodepage=true(Shift_JISで読み込み)  System.useCodepage=false(UTF-8で読み込み) などを実行しておくと読み込み文字コードが変えられます。 ちなみに、具体的にどこを修正すれば正しく動作するかは現在の質問内容だけからでは断言できません(CGI側の問題である可能性もある)。 同じ要領ということですが、dat.datの読み込みは1回目、2回目ともloadVariables("./dat.dat", _root);なんですかね?

mmmmmm00
質問者

補足

早速の回答ありがとうございます dat.datの読み込みは1回目、2回目とも _root.loadVariables("./dat.dat"); で読み込んでいます 開くと 最初に読み込んで 変更を加え 保存をしています そして F5キーで 更新すると 2回目には おかしなことになっているのです 保存する際に おかしなことになっている可能性もあり CGIの処理に問題があるのかもしれません 別サイトなどで見てみると  保存の際に Jcode.pm をつかわないといけない ようなことが書かれてありましたので 試しましたが 今度は 別の字が出てきてしまいます ちなみに 一部は省略していますが use lib "lib"; use Jcode; if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); } else { $buffer = $ENV{'QUERY_STRING'}; } $buffer =~ tr/+/ /; $buffer =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; Jcode::convert(\$buffer, "EUC"); $nm=$buffer; open(BOY,">dat.dat"); print BOY "$nm"; close(BOY); と しました

関連するQ&A