ActionScript

JSONをURLLoaderで受け取るときはTEXTとして受け取ってしまうと日本語にdecodeできなくなる

苦労しましたが、TEXTとして受け取ってはいけないということがわかりました。 \をマルチバイトの\に自動的に変換されてしまい、 日本語がパースされずにハマります。 BINARYとして受け取り、それをUS-ASCIIとして 文字列に変換してから、JSONパーサーでパー…

まさかとは思ったが、URLLoaderの仕様だったらしく、Responseの中身を書き換えていた

HTTPのリクエストを出して、その時に {"message":"\u30ed\u30b0\u30a4\u30f3\u3057\u307e\u3057\u305f","status":"succeed"}を出していたとすると、URLLoaderが \(バックスラッシュ)を勝手に [34]から[194,165]のコードに書き換えてしまうらしいです。 ち…

JSONパーサが悪いんだろうけど、どこが悪いのかわからなくなってきた

テストした文字列に問題があったみたいで、 '{"message":"\u30ed\u30b0\u30a4\u30f3\u3057\u307e\u3057\u305f","status":"succeed"}'この\をちゃんとバックスラッシュにしたらうまくいった。 けど、結局何が悪いのかわかってない。 元の文字列が問題ではない…

XMLパーサーだと日本語をデコードしてくれる

上のJSONパーサーだと日本語を作ってくれないのですが、 XMLだとどうかと思って実験してみました。 <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" width="385" height="108"> <fx:Script> </fx:script></s:windowedapplication>

JSONパーサーがUNICODE文字列をデコードしてくれない

Rubyだと、 > str='{"message":"\u30ed\u30b0\u30a4\u30f3\u3057\u307e\u3057\u305f","status":"succeed"}' => "{"message":"\\u30ed\\u30b0\\u30a4\\u30f3\\u3057\\u307e\\u3057\\u305f","status":"succeed"}" > JSON.parse(str) => {"message"=>"ログイン…

ActionScript3で配列の引き算をしたい

Ruby的には > ["a","b","c"]-["b","e"] => ["a", "c"] となるのですが、AS3で同じことをやろうと思ったら、 該当するメソッドがない。 仕方が無いので作ってみましたが、もっといい方法はないものか。 private function arraySub(a:Array,b:Array):Array{ re…

FlashBuilder4にJSONDecoderのドキュメントがないぞ。

FlashBuilder4にはHTTPサービスを叩いてデータに展開する ウィザードがついていて、とっても便利なんですが、 かゆい所に手がとどかないので、全部手でやってみることにしました。 やりたいことは、HTTPを叩いてBasic認証をし、 返ってきたJSONを展開してHas…

カスタマイズしたListに番号を振りたいけどやり方がわからない

http://www.atmarkit.co.jp/fwcr/rensai/flexjissen04/flexjissen04_03.html のソースを引用。 <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"> <mx:Script> </mx:script></mx:windowedapplication>

ActionScript3のSQLiteにはエスケープ機能がないっぽい

仕方ないので自作。 package jp.rabbix { public class SQLUtility { public static function escape(str:String):String{ return str.replace(/([\0\n\r\032\'\"\\])/g,"\\$1"); } public static function h(str:String):String{ return escape(str); } } }…