gpt4 book ai didi

javascript - 在 ngCordova 文件插件中使用 readAsText 时如何设置编码

转载 作者:行者123 更新时间:2023-12-03 07:19:47 24 4
gpt4 key购买 nike

我正在尝试使用 readAsText ngCordova 插件读取 CSV 文件的内容。

只有当文件编码为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
});

有人知道如何处理吗?

非常感谢。

最佳答案

纠结这个问题一整天,终于找到答案了。

不幸的是,答案是否定的。我们无法通过使用readAsText来实现它。

根据docs of ngCordova ,API 不支持像 cordova-file-plugin 那样的 readAsText 函数中的编码参数。

此外,在我读完document of codova-file-plugin之后,我意识到Cordova-file-plugin中的readAsText函数在ios中运行时不支持encoding参数。

解决方案

由于readAsText无法做到这一点,我尝试了ngCordova中提供的其他功能。我发现了readAsBinaryString。该函数似乎只是读取文件的内容,无论文件的编码是什么。因此,我可以读取内容并将其编码为 Unicode encoding.js .

代码:

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

希望我的解决方案能有所帮助。

关于javascript - 在 ngCordova 文件插件中使用 readAsText 时如何设置编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36256788/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com