如何更改 Azure 函数中的 PowerShell 文化

Posted

技术标签:

【中文标题】如何更改 Azure 函数中的 PowerShell 文化【英文标题】:How to change PowerShell culture in an Azure Function 【发布时间】:2020-11-17 20:05:49 【问题描述】:

我编写了一个使用瑞典语字符(“åäö”)的脚本,它被部署到 Azure 函数中。

当脚本运行时,它应该输出以下文本:“Förvaltning”,但我得到的是:“Förvaltning”。

我尝试通过在脚本的开头包含 Set-Culture 来改变 Powershell 的文化。但这不会改变文化。

有人知道如何为在 Azure 函数中运行的 PowerShell 脚本执行此操作吗?

运行此代码以设置变量“prefixTitle”。

当我写“写输出”时,这会被记录到“日志”中。

【问题讨论】:

您能给我们看一下脚本(或者可能是显示此特定行为的精简版)吗? 我怀疑 Set-Culture 会影响这一点。最有可能的是,这是一个编码问题,这取决于您如何准确地观察此文本。例如,如果您只是使用自动生成的 HTTP 触发函数并在 HTTP 响应的正文中返回“Förvaltning”,这就是客户端将收到的内容。但是正确显示这些字符取决于客户端。那么,您在哪里看到错误编码的文本? 在帖子中添加了更多信息。它要么是文化,要么是编码。但我不知道如何更改使用 Azure Function 运行的 PowerShell 脚本的编码。 当你说“这将被记录到”日志中,当我写“写输出”时。当函数在本地计算机或 Azure 流式日志中运行时,是控制台吗? @krishg Azure 流式传输日志 【参考方案1】:

它与您的浏览器端编码有关,因为它是如何呈现 utf-8 的,而不是函数端。我没有在函数代码中设置任何内容就运行了我的 powershell 示例函数。如下所示,日志输出和 http 响应都正常。

【讨论】:

问题是我正在创建一个 SharePoint Online 网站,并且我在网站标题中使用了“Förvaltning”一词。因此,该网站的标题设置了错误的字符。如果我使用 Visual Studio Code 在我的计算机上本地运行此脚本,我可以设置我想使用的编码,这解决了在本地运行脚本的问题,但在天蓝色函数中,我不知道在哪里可以更改此设置。 我的意思是当我运行它以返回“Förvaltning”时,该函数已经正确返回了文本。所以我认为你不需要在 Function 方面做任何事情。

以上是关于如何更改 Azure 函数中的 PowerShell 文化的主要内容,如果未能解决你的问题,请参考以下文章

更改 Azure 存储帐户中的磁盘类型

如何监视对 Azure 存储帐户防火墙规则所做的更改并发出警报

当 blob 更改时触发 Azure 数据块

当数据库中的记录发生更改时,如何更新/刷新 Azure Cache for Redis?

如何在不卸载powershell的情况下,有效禁用/启用powershel

Cosmos DB 更改源触发 Azure 函数:租赁丢失异常