2009年07月21日
クリエモン、URLエンコード周りのバグを修正しました
クリエモンにバグが発見されました( ̄□  ̄ ||
バグの内容は、配布場所一覧ページから、名前にスペースを含むSimのURLを開いてもテレポートできないというものです。
プログラムをやる人なら、原因はなんとなく分かると思いますが、URLエンコード方法のミスです。インワールドからWebサーバへポーリングの最後の方で書いたように、URLエンコードは、C#の、HttpUtility.UrlEncodeメソッドを使っていました。これは、名前の通りURLエンコードを行うクラスで、これ使っとけば問題ないだろうと思っていたのですが、本来スペースは「%20」に変換されて欲しいところが、「+」に変換されていました。
WikipediaのURLエンコードのページをみると、JavascriptとCGIではスペースのエンコードが異なり、CGI側では「+」に変換されるのが普通だそうです。これってひょっとして常識なんでしょうか( ̄□  ̄ ||
で、なんとかC#でJavascript方式の変換が出来ないかと調べたところ、Uri.EscapeDataStringメソッドを使えばいいことが分かりました。現在は、このメソッドに修正してありますので、問題なくテレポートできるはずです。以前に、なぜか配布場所一覧からテレポートに失敗したことがある方は、お試しください。
今回の件は、クリエモンのユーザ様から報告頂いたのですが、バグの早期発見に繋がって大変助かりました(^^) 皆様もおかしな挙動を発見したら気軽に、Sabro Boucherまでご連絡ください m(_ _)m
バグの内容は、配布場所一覧ページから、名前にスペースを含むSimのURLを開いてもテレポートできないというものです。
プログラムをやる人なら、原因はなんとなく分かると思いますが、URLエンコード方法のミスです。インワールドからWebサーバへポーリングの最後の方で書いたように、URLエンコードは、C#の、HttpUtility.UrlEncodeメソッドを使っていました。これは、名前の通りURLエンコードを行うクラスで、これ使っとけば問題ないだろうと思っていたのですが、本来スペースは「%20」に変換されて欲しいところが、「+」に変換されていました。
WikipediaのURLエンコードのページをみると、JavascriptとCGIではスペースのエンコードが異なり、CGI側では「+」に変換されるのが普通だそうです。これってひょっとして常識なんでしょうか( ̄□  ̄ ||
で、なんとかC#でJavascript方式の変換が出来ないかと調べたところ、Uri.EscapeDataStringメソッドを使えばいいことが分かりました。現在は、このメソッドに修正してありますので、問題なくテレポートできるはずです。以前に、なぜか配布場所一覧からテレポートに失敗したことがある方は、お試しください。
今回の件は、クリエモンのユーザ様から報告頂いたのですが、バグの早期発見に繋がって大変助かりました(^^) 皆様もおかしな挙動を発見したら気軽に、Sabro Boucherまでご連絡ください m(_ _)m
Webコミック「クソエモン」連載開始!
クリエモン - 萌えおこし本格始動版の新機能
ネタ満載!クリエモンPV公開
SL24でクリエモン新バージョン発表します
限定版クリエモンのラッキーボードと新ちびクリ
いますぐ手に入るクリエモンアバター達
クリエモン - 萌えおこし本格始動版の新機能
ネタ満載!クリエモンPV公開
SL24でクリエモン新バージョン発表します
限定版クリエモンのラッキーボードと新ちびクリ
いますぐ手に入るクリエモンアバター達
Posted by sabro at 01:55│Comments(0)
│クリエモン