From pd@lgd @ending from gm@il@com  Sun Jun  3 23:51:24 2018
From: pd@lgd @ending from gm@il@com (peter dalgaard)
Date: Sun, 3 Jun 2018 23:51:24 +0200
Subject: [Rd] encoding argument of source() in 3.5.0
In-Reply-To: <87muwdl36e.fsf@gmx.net>
References: <87muwdl36e.fsf@gmx.net>
Message-ID: <5CE2AAAB-9AA1-424B-8FB6-5EC579EA8102@gmail.com>

Looks like this actually comes from readLines(), nothing to do with source() as such:

In current R-devel (still):

> f <- file("http://home.versanet.de/~s-berman/source2.R", encoding="UTF-8")
> readLines(f)
character(0)
> close(f)
> f <- file("http://home.versanet.de/~s-berman/source2.R")
> readLines(f)
[1] "source.test2 <- function() {"   "    print(\"Non-ascii: ????\")"
[3] "}"                             

-pd

> On 2 Jun 2018, at 15:37 , Stephen Berman <stephen.berman at gmx.net> wrote:
> 
> In R 3.5.0 using the `encoding' argument of source() prevents loading
> files from the internet; without the `encoding' argument files can be
> loaded from the internet, but if they contain non-ascii characters,
> these are not correctly displayed under MS-Windows (but they are
> correctly displayed under GNU/Linux).  With R 3.4.{2,3,4} there is no
> such problem: using `encoding' the files are loaded and non-ascii
> characters are correctly displayed under MS-Windows (but not without
> `encoding').  Here is a transcript from R 3.5.0 under GNU/Linux (the
> URLs are real, in case anyone wants to try and reproduce the problem):
> 
>> ls()
> character(0)
>> source("http://home.versanet.de/~s-berman/source1.R", encoding="UTF-8")
>> ls()
> character(0)
>> source("http://home.versanet.de/~s-berman/source2.R", encoding="UTF-8")
>> ls()
> character(0)
>> source("http://home.versanet.de/~s-berman/source1.R")
>> ls()
> [1] "source.test1"
>> source("http://home.versanet.de/~s-berman/source2.R")
>> ls()
> [1] "source.test1" "source.test2"
>> source.test1()
> [1] "This is a test."
>> source.test2()
> [1] "Non-ascii: ????"
> 
> (The four non-ascii characters are Unicode 0xE4, 0xF6, 0xFC, 0xDF.)
> With 3.5.0 under MS-Windows, the transcript is the same except for the
> display of the last output, which is this:
> 
> [1] "Non-ascii: ????????"
> 
> (Here there are eight non-ascii characters, which display the Unicode
> decompositions of the four non-ascii characters above.)
> 
> Here is a transcript from R 3.4.3 under MS-Windows (under GNU/Linux it's
> the same except that the non-ascii characters are also correctly
> displayed even without the `encoding' argument):
> 
>> ls()
> character(0)
>> source("http://home.versanet.de/~s-berman/source1.R")
>> ls()
> [1] "source.test1"
>> source("http://home.versanet.de/~s-berman/source2.R")
>> ls()
> [1] "source.test1" "source.test2"
>> source.test1()
> [1] "This is a test."
>> source.test2()
> [1] "Non-ascii: ????????"
>> rm(source.test2)
>> ls()
> [1] "source.test1"
>> source("http://home.versanet.de/~s-berman/source2.R", encoding="UTF-8")
>> ls()
> [1] "source.test1" "source.test2"
>> source.test2()
> [1] "Non-ascii: ????"
> 
> I did a web search but didn't find any reports of this issue, nor did I
> see any relevant entry in the 3.5.0 NEWS, so this looks like a bug, but
> maybe I've overlooked something.  I'd be grateful for any enlightenment.
> 
> Steve Berman
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

-- 
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Office: A 4.23
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com



[Rd] encoding argument of source() in 3.5.0
peter dalgaard