我有从dataURI(plotly.js)获取的svg文件,并将该数据发送到服务器(发光的应用程序):
exportImage(plot, settings.config).then(function(dataURI) {
var payload;
if (!settings.dataURI) {
var data = dataURI.replace(/data:image\/svg\+xml,/, '');
// I'm using decodeURIComponent in browser because it's much faster.
payload = decodeURIComponent(data);
$('<div>' + payload + '</div>').appendTo('body');
} else {
payload = dataURI;
}
Shiny.onInputChange(settings.messageId, payload);
});
svg包含单位为mm³
的unicode字符,而在observeEvent中,svg包含正确的字符,当我在RStudio中使用browser()暂停时,得到了以下信息:
> substring(input$svg, 198036, 198061)
[1] "Volume (mm³) on log2 scale"
但是当我将其保存到文件中时,我已经使用了mm3
:
writeLines(
paste('<?xml version="1.0" encoding="utf-8"?>', input$svg),
svg.file
)
我尝试使用enc2utf8函数并将useBytes设置为TRUE,还尝试在JavaScript中添加<?xml
并使用cat(svg, svg.file)
,它会产生无效编码的字符或3而不是³。
我有这个:
> Encoding(input$svg)
[1] "UTF-8"
> Sys.getlocale()
[1] "LC_COLLATE=Polish_Poland.1250;LC_CTYPE=Polish_Poland.1250;LC_MONETARY=Polish_Poland.1250;LC_NUMERIC=C;LC_TIME=Polish_Poland.1250"
这应该是UT8吗?如何将utf8字符保存到R中的文件中?
我正在Windows上对其进行测试,但是它将部署到Linux计算机上。