azure - 从 Azure 文件存储获取文件内容和特殊字符

标签 azure file azure-logic-apps azure-files

我尝试使用“获取文件内容”从 Azure 文件存储读取逻辑应用程序中的 csv 文件。 该文件包含带有特殊字符(如“æ”)和任何其他丹麦语字符的字符串。 结果如图所示: enter image description here

您有解决方案如何显示这些特殊字符吗? 谢谢

最佳答案

要实现此目的,您必须首先对非 Unicode 文本实现 Base64 编码,将其转换为 utf-8 格式,然后使用 Azure Functions 将任何 .NET 支持的编码生成为 UTF-8。下面是一段代码我从这个 MSFT - Documentation 中获取的.

string requestBody = new StreamReader(req.Body).ReadToEnd();
    dynamic data = JsonConvert.DeserializeObject(requestBody);

    if (data == null || data.text == null || data.encodingInput == null || data.encodingOutput == null) {
      return new BadRequestObjectResult("Please pass text/encodingOutput properties in the input JSON object.");
    }

    Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

    try {
      string encodingInput = data.encodingInput.Value;
      inputEncoding = Encoding.GetEncoding(name: encodingInput);
    } catch (ArgumentException) {
      return new BadRequestObjectResult($"Input character set value '{data.encodingInput.Value}' is not supported. Supported values are
listed at
https://msdn.microsoft.com/en-us/library/system.text.encoding(v=vs.110).aspx.");
    }

    Encoding encodingOutput = null;
    try {
      string outputEncoding = data.encodingOutput.Value;
      encodingOutput = Encoding.GetEncoding(outputEncoding);
    } catch (ArgumentException) {
      return new BadRequestObjectResult($"Output character set value '{data.encodingOutput.Value}' is not supported. Supported values are
listed at
https://msdn.microsoft.com/en-us/library/system.text.encoding(v=vs.110).aspx.");
    }

    return (ActionResult) new JsonResult(
      value: new {
        text = Convert.ToBase64String(
          Encoding.Convert(
            srcEncoding: inputEncoding,
            dstEncoding: encodingOutput,
            bytes: Convert.FromBase64String((string) data.text)))
      });   } } ```

更多信息请引用Support non-Unicode character encoding in Logic Apps .

关于azure - 从 Azure 文件存储获取文件内容和特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72717411/

相关文章:

java - 使用 Java.IO 准备文件路径

c - 在C中: File Not Found Error When using readInputFile function for a second time on fclose()

Azure Function App 通过应用程序设置使用最新版本的 Key Vault Secret

json - 在 ARM 模板中有条件添加应用程序设置

c# - 在大型文本文件中定位包含特定单词的行的最快方法

azure - 使用 JSON 的逻辑应用发送消息错误

azure - 逻辑应用程序-如何从队列中读取批量消息

azure - 使用 bicep 部署逻辑应用 - 将 JSON 转换为有效的 Bicep

c# - 如何使用新的 DI 通过 IWebJobsStartup 将 ILogger 注入(inject)到 Azure 函数中?

azure - 如何使用 Azure cli 打开出站端口?