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

时间:2017-01-27 20:41:19

标签: r windows azure unix azure-machine-learning-studio

我已在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. öÃ ¶

  2.   
  3. äà ¤

  4.   
  5. ÄÃ ¥

  6.   

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

如何在Azure ML中使用带有R批量请求的变音符号(不是拉丁字符1个字符)获得格式正确的UTF-8文件?

1 个答案:

答案 0 :(得分:0)

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

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

如果没有.encoding,则输出为ISO8859-1('latin1')或从您的系统继承的内容。