R 本地渲染标记与闪亮服务器

R 本地渲染标记与闪亮服务器,r,markdown,shiny-server,R,Markdown,Shiny Server,对于一个闪亮的应用程序,我对renderMarkdown有一个小问题 考虑一个包含以下简单内容的文本文件: Markdown Test File + Item 1 + Item 2 让我们将此文件保存为“Markdown Test.txt”。现在,让我们读入并处理它,使用以下R代码: filename <- "Markdown Test.txt" text.in <- readLines(filename) text.out <- renderMarkdown(text=

对于一个闪亮的应用程序,我对renderMarkdown有一个小问题

考虑一个包含以下简单内容的文本文件:

Markdown Test File

+ Item 1
+ Item 2
让我们将此文件保存为“Markdown Test.txt”。现在,让我们读入并处理它,使用以下R代码:

filename <- "Markdown Test.txt"
text.in  <- readLines(filename)
text.out <- renderMarkdown(text=text.in)
在闪亮的机器上,我得到:

> Sys.getlocale()
[1] "LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICATION=C"
所以,我假设这与编码有关,但我对编码知之甚少,我希望我没有。。。我对dos2unix和Sys.setlocale()的实验只带来了挫折

谁会碰巧有一个聪明的“一行”来解决这个问题?感谢您的帮助


谢谢,Philipp

我不确定R是否有专门的程序包来修复行编码,但有一种方法是使用
sub
\R\n
替换为
\n
(或者只剥离
\R

那么我们是否可以假设这台闪亮的机器是unix机器?当您在unix机器上
cat
文件时,文件是否有正确的换行符?是的,闪亮的机器是unix机器。当我执行cat时,我在两台机器上得到完全相同的输出:>cat(text.in)Markdown测试文件+项目1+项目2>不幸的是,windows文件的cat将在unix机器上工作。更好的测试是在其上使用
文件
,这将告诉您行尾和正在使用的字符集。
> text.out
[1] "<p>Markdown Test File+ Item 1+ Item 2</p>\n"
> Sys.getlocale()
[1] "LC_COLLATE=English_United States.1252;LC_CTYPE=English_United    States.1252;LC_MONETARY=English_United States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252"
> Sys.getlocale()
[1] "LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICATION=C"