トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     Shift-JIS + onLoad で URLエンコードされた文字がデコードされない不具合
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ken462
Åê¹ÆNo.10877
投稿日時: 2004-9-17 12:15
半人前
居住地: TOKYO
投稿: 46
使用環境:
WinXP,Flash MX
Shift-JIS + onLoad で URLエンコードされた文字がデコードされない不具合
Shift-JIS + LoadVars() onLoadで
URLエンコードされた文字が正しく読めない不具合って
いまだどのバージョンのPlayerでも発生しますか?
解決にはいたってないのでしょうか?

そして、解決方としては、loadVariablesを使うか
Flash のエンコードを UTF-8にするか
それしかないのでしょうか?

LoadVars() onLoadでつくっており
途中でこの問題にあたってしまい、作り変えるのが
非常にめんどくさくてこまっております
森 なおき
Åê¹ÆNo.10883
投稿日時: 2004-9-17 14:00
モデレータ
居住地: 福岡(心は大阪)
投稿: 527
使用環境:
:MacOSX10.6.8
:FlashCS5.5
Re: Shift-JIS + onLoad で URLエンコードされた文字がデコードされない不具合
なおきです。
ML時代から問題になっていますが
解決はされていないようです。

で、その頃に編み出された解決方法ですが

System.useCodePage = true;
LoadVars.prototype.onData = function(src){
if (src == undefined) {
this.onLoad(false);
} else {
var s = unescape(src);
var arr = s.split('&');
for(var i=0;i<arr.length;i++){
var items = arr[i].split('=');
this[items[0]] = items[1];
}  
//this.decode(src);
this.loaded = true;
this.onLoad(true);
}
};

という処理を追加してやることで回避できます。
昔のことなのではっきり覚えていないのですが
youichさんが書かれたコードだったような。


----------------
な お き
Dev.:MacOSX+FlashCS5.5
View:---

ken462
Åê¹ÆNo.10892
投稿日時: 2004-9-17 15:44
半人前
居住地: TOKYO
投稿: 46
使用環境:
WinXP,Flash MX
Re: Shift-JIS + onLoad で URLエンコードされた文字がデコードされない不具合
お!スゲー!
なるほどっ!
そんな手があったとはっ

で、思ったんですが、
一番はじめに unescape しちゃうと
ロードするデータの「 変数=値 」の値に、
&(%26)や=(%3d)が入っていた場合問題が発生しちゃうので
最後に unescape する

System.useCodePage = true;
LoadVars.prototype.onData = function(src) {
	if (src == undefined) {
		this.onLoad(false);
	} else {
		var s = src;
		var arr = src.split('&');
		for (var i = 0; i<arr.length; i++) {
			var items = arr[i].split('=');
			this[items[0]] =unescape(items[1]);
		}
		this.loaded = true;
		this.onLoad(true);
	}
};


これのほうがいいのでは?
こうすることで、なんか他に問題がでたりせんかなぁ...
youich
Åê¹ÆNo.10893
投稿日時: 2004-9-17 15:47
職人
居住地: kobe
投稿: 349
使用環境:
Tiger
Re: Shift-JIS + onLoad で URLエンコードされた文字がデコードされない不具合
引用:

で、その頃に編み出された解決方法ですが

System.useCodePage = true;
LoadVars.prototype.onData = function(src){
if (src == undefined) {
this.onLoad(false);
} else {
var s = unescape(src);
var arr = s.split('&');
for(var i=0;i<arr.length;i++){
var items = arr[i].split('=');
this[items[0]] = items[1];
}  
//this.decode(src);
this.loaded = true;
this.onLoad(true);
}
};

という処理を追加してやることで回避できます。
昔のことなのではっきり覚えていないのですが
youichさんが書かれたコードだったような。

たぶん、そんな記憶があります。。。
最初上のコード中にthis.loaded = true;が抜けててtommyさんに
”ぬけとるぞ、ゴルア”とつっこまれたような。。


----------------
- yo

ken462
Åê¹ÆNo.10894
投稿日時: 2004-9-17 15:49
半人前
居住地: TOKYO
投稿: 46
使用環境:
WinXP,Flash MX
Re: Shift-JIS + onLoad で URLエンコードされた文字がデコードされない不具合
   var s = src;

↑これいらんかった。。。
ken462
Åê¹ÆNo.10895
投稿日時: 2004-9-17 15:58
半人前
居住地: TOKYO
投稿: 46
使用環境:
WinXP,Flash MX
Re: Shift-JIS + onLoad で URLエンコードされた文字がデコードされない不具合
マジ助かりました!

それと、あんまよくわかんなかった prototype が
ほんのちょっと理解できたきがします!!!

ありがとうございます!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops