2016-03-28 4 views
0

Ich versuche, den Inhalt aus einer CSV-Datei mit Hilfe von ReadAsText ngCordova-Plugins zu lesen.Wie setze ich die Kodierung bei der Verwendung von readAsText in ngCordova Datei-Plugin

Ich kann es nur tun, wenn die Kodierung der Datei unicode ist, aber die meisten CSV-Dateien sind Shift-JIS. Und ich kann nichts aus der Datei lesen, wenn es Shift-JIS ist

Mein Code unten mag:

$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 
    }); 

Gibt es ein wissen, wie man damit umgehen?

Vielen Dank.

Antwort

1

Nach einem ganzen Tag zu diesem Thema, finde ich endlich die Antwort.

Leider ist die Antwort NEIN. Wir können es nicht erreichen, indem wir readAsText verwenden.

Nach der docs of ngCordova, unterstützt die API nicht die Codierung Parameter in readAsText Funktion als Cordova-Datei-Plugin hat.

Außerdem, nachdem ich die document of codova-file-plugin lesen, erkannte ich, dass die readAsText Funktion in Cordova-file-Plugin nicht die Kodierung Parameter nicht unterstützt, wenn es in ios läuft.

SOLUTION

Als readAsText dies nicht tun können, habe ich versucht, die anderen in ngCordova bereitgestellten Funktionen. Und ich fand readAsBinaryString. Diese Funktion scheint nur den Inhalt der Datei zu lesen, unabhängig von der Codierung. So kann ich den Inhalt lesen und in Unicode von encoding.js kodieren.

Codes:

$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  
    }); 

Hoffnung kann meine Lösung helfen.