在 Web 文件系统访问 API 中读取 ANSI 文件

问题描述

我正在尝试使用文件系统访问 API 获取文件,并且使用此代码效果很好:

resources:
  Resources:
    AccessLogs:
      Type: AWS::Logs::LogGroup
      Properties:
        LogGroupName: /aws/lambda/${self:service}-dev-AccessLogs
        RetentionInDays: 7
    LambdaExecutionRole:
      Type: 'AWS::IAM::Role'
      Properties:
        AssumeRolePolicyDocument:
          Statement:
            - Effect: Allow
              Principal:
                Service:
                  - lambda.amazonaws.com
              Action:
                - 'sts:AssumeRole'
        Policies:
        - PolicyName: logpolicy
          PolicyDocument:
            Statement:
              - Effect: Allow
                Action:
                  - 'logs:CreateLogGroup'
                  - 'logs:CreateLogStream'
                Resource: '*'
              - Effect: Allow
                Action:
                  - 'logs:PutLogEvents'
                Resource: 'arn:aws:logs:*:*:*'

'''

问题是当我们有一个 ANSI 编码的文件时,像 Ö、Ü 和 Ä 这样的德语字符变成了 � 虽然它适用于 UTF-8 编码的文件

无论如何我都找不到在 ANSI 代码中使用 function Process_Files(files) { [].map.call(files,async function (file,i) { if (isDataFile(file.name)) { let fileText = await file.text(); let filePath = await file.webkitRelativePath; ProcessFileContents(await fileText,await filePath); } }) } function DirectoryChose(event) { let files; event.stopPropagation(); event.preventDefault(); if (event.type === "change") { files = event.target.files; } if (files) { Process_Files(files) } } dropArea.addEventListener("change",DirectoryChose); 读取文件

感谢帮助

解决方法

您需要使用具有正确编码的 FileReader() API。有关详细信息,请参阅 MDN docs。例如,您可以读取如下数据:

// fileOrBlob is a File or a Blob :-) 
const fileReader = new FileReader();
fileReader.readAsText(fileOrBlob,'windows-1252');

唯一需要注意的是,你需要事先知道编码。如果您不指定编码,则假定为 UTF-8。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...