2016-03-28 10 views
0

readAsText ngCordovaプラグインを使用してCSVファイルから内容を読み取ろうとしています。ngCordovaファイルプラグインでreadAsTextを使用する場合のエンコーディングの設定方法

ファイルのエンコーディングがunicodeの場合にのみ実行できますが、ほとんどのCSVファイルはShift-JISです。それはShift-JIS

私のコードは以下の好きされたとき、私は、ファイルから何を読むことができません:

$cordovaFile.readAsText(cordova.file.documentsDirectory + CSVS_DIR, fileName).then(
    function (success) { 
     console.log("reading csv"); 
     console.log("csv content: " + success); 
    }, 
    function (error) { 
     console.log(error); 
     // error 
    }); 

は、いずれかがそれに対処する方法を知っていますか?

ありがとうございます。

答えて

1

この問題で一日のうちに、私はついに答えを見つけました。

残念ながら、答えはNOです。 readAsTextを使用して達成できません。

docs of ngCordovaによれば、APIはreadAsTextのコード化パラメータをコードバスファイルプラグインの機能としてサポートしていません。

さらに、私はdocument of codova-file-pluginを読んだ後、Cordova-file-pluginのreadAsText関数がiosで実行されているときにエンコードパラメータをサポートしていないことに気付きました。 readAsTextとして

SOLUTION

これを行うことはできません、私はngCordovaで提供されている他の機能を試してみました。そして私はreadAsBinaryStringを見つけました。この関数は、エンコーディングが何であっても、ファイルの内容を読み取ったようです。ですから、私はコンテンツを読んで、encoding.jsによってUnicodeにエンコードすることができます。

コード:

$cordovaFile.readAsBinaryString(cordova.file.documentsDirectory + CSVS_DIR, fileName).then(
    function (success) { 
     console.log("reading csv"); 
     console.log("csv content: " + success); 
     var detected = Encoding.detect(success); 
     success = Encoding.convert(success, { 
      to: 'UNICODE', // to_encoding 
      from: detected // from_encoding 
     }); 

     console.log("csv content: " + success);   
    }, 
    function (error) { 
     console.log(error); 
     // error  
    }); 

私の解決に役立つことを願って。

関連する問題