テキストメソッド(text)で表示されたテキストが1行おきに表示されてしまう。

textメソッドで、表示させたテキストが、サーバ上(UNIX)では正常に表示されるのに、
ローカル上(Windows)では1行おきに表示されてしまう。



  AAAAAA
  BBBBBB   
  CCCCCC

  上記の内容が

  AAAAAA

  BBBBBB

  CCCCCC

  と表示されてしまう。

原因は、テキストファイルの改行コード。

以下は推測。

今回は、メモ帳で文章を作成し、そのまま使用したが、
この場合、改行コードは、CR+LFとなる。
今回、作成した文章は、Shift-JISからUTF-8に変換し表示している。

UTF-8の改行コードは、LFとなっていて、CRが文字として見なされたため、
ローカルでは改行されてしまったと思われる。

今回は、以下のようなコーディングを行い、回避した。
これで、サーバ上、ローカル上での違いがなくなった。

-------------------------以下はソース---------------------------
// 外部テキストファイルはLoaderで読み込む
var loader:URLLoader=new URLLoader();
//バイナリー形式として受け取る。
loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.addEventListener(Event.COMPLETE, completeHandler);

loader.load(new URLRequest("../text/keyimage/dat.txt"));

function completeHandler(evt:Event):void {

     // 読み込んだデータは、loader.dataの変数として取り込まれる
    // shift-jisからUTF8に変換する。
    var byteData:ByteArray = new ByteArray(); 
    byteData = ByteArray(loader.data);
    var src:String = byteData.readMultiByte(byteData.length, "shift-jis");

    //正規表現を使用し、改行コード(CR+LF Windows,UNIX:LF,Mac:CR)をすべてLFに着替える。
    //これを行わないと、ローカル(Windows)上で、1行おきに表示されてしまう。
    var myPattern:RegExp = /\r\n|\r|\n/g;
    var result_str:String = src.replace(myPattern, "\r");
    text_mc.textfield.text = result_str;
}

スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

e.swan

Author:e.swan
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR