[Air/Flex]数値文字参照の変換
洗濯物のポケットにレシートが入っているのに気づかずに洗ってしまったとです。
ヒロシです。(あえて)
URLLoaderで取得したデータに数値文字参照が含まれていました。
表示するだけなら、LabelやTextAreaのhtmlTextプロパティにセットしてやればOKなのですが、htmlTextプロパティの無いコンポーネントへの表示や、データの編集・保存などのために直接文字に変換したいという場合のための手段としては使えませんし、Flexにもそういうメソッドは用意されていないようです。(見つけられてないだけかも?)
ということで、Unicode・16進数表記の数値文字参照限定ですが、自前の変換処理を作成して対応しました。
var str:String = "秘密結社ぎゅう☆ぎゅう倶楽部";
var result:String = str.replace(/([0-9a-fA-F]+);/g,function():String{return String.fromCharCode(Number("0x" + arguments[1]));});
変換処理といってもたいしたものじゃなくて、数値文字参照(●●●●;)から文字コード部分(●●●●)を抜き出して、String.fromCharCodeで文字に変換する処理を繰り返しているだけです。
洗う前にはポケットの中身をしっかり確認。(でもまたやる)
トラックバック(0)
このブログ記事を参照しているブログ一覧: [Air/Flex]数値文字参照の変換
このブログ記事に対するトラックバックURL: http://ushi.donburi.net/mt/mt-tb.cgi/14



コメントする