本番環境で(さくらインターネット上)上でActionScript3.0からCSVファイルが読めない。

ローカル環境上(Windows)では問題なし。

原因は、CSVファイルの改行コード。

Windowsでは、CR+LF(\r\n)であるが、Unix(Linux)では、LF(\n)が改行コードになっている。
Windows環境上では、CR,LFとも改行コードと見なされるが、
Unix環境上では、LFのみである。

この結果、本番サーバ上では、改行位置がおかしくなり、
その結果、読み込みが出来なくなった。

今回、APミスで、CR+LFをCRに変換していた。
CR+LFをLFに変換するようにする。

[修正前]
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");

//csv形式のファイルを改行コードで区切って配列に格納(CSVの分割はサブルーチン側で行う)
var pht_name:Array = src.split("\r");

[修正後]
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, "\n");(この部分を修正)

//csv形式のファイルを改行コードで区切って配列に格納(CSVの分割はサブルーチン側で行う)
var pht_name:Array = src.split("\n");(この部分を修正)

スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

e.swan

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

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

この人とブロともになる

QRコード
QR