Azure 机器学习批处理请求返回带有 Unix 的格式错误的变音符号

Azure Machine Learning Batch request returning mal-formatted umlauts with Unixes

我已经在 Azure 机器学习中部署了我的代码,并且 运行 在 R 中使用不同的操作系统(例如 Unix 和 W10)部署了批处理请求。出于某种原因,主机输出仅在 W10 的 R 中正确格式化,但我无法在 Unix 系统中获得正确格式化的输出。我可以在所有系统中获得正确格式的输出的唯一方法是通过 Azure GUI 并手动下载文件。在 W10 中,我可以直接使用 Rscript/Rstudio 东西获得格式正确的文件。在 R 中,我使用 system("defaults write org.R-project.R force.LANG en_US.UTF-8") 作为提示 here 来显式指定编码,但这对 Microsoft 在 Azure 服务器 运行 中执行的批处理请求 R 脚本没有任何影响。

发生的事情是UTF-8 characters bytes are returned as Latin-1 characters bytes,例如

  1. ö as à ¶

  2. ä as à ¤

  3. Ä as à ¥

可以使用此工具对 Latin-1 字符进行演示和测试 here。那么处理这个编码问题的最佳方法是什么,它可以在 Azure ML 中以某种方式解决吗?在哪里可以进行错误报告?在 R 中是否存在将 Latin-1 转换为 UTF-8 的工具?

如何在 Azure ML 中使用带有 R 批处理请求的元音符号(不是 Latin-1 字符)获取格式正确的 UTF-8 文件?

批处理请求 R 命令具有 saveBlobToFile 功能。问题出在 saveBlobToFile 函数中,它对 getUrl 使用了错误的编码。 getUrl 函数需要明确指定编码。进行以下更改

blobContent = getURL(blobUrl, .encoding="UTF-8")

如果没有 .encoding,输出是 ISO8859-1('latin1') 或从您的系统继承的东西。