[Rd] Output mis-encoded on Windows w/ RGui 3.5.1 in strange case
tom@@@k@liber@ @ending from gm@il@com
Wed Jul 18 15:38:39 CEST 2018
Fixed in R-devel and R-patched,
On 07/18/2018 12:03 PM, Tomas Kalibera wrote:
> Thanks, I can now reproduce and it is a bug that is easy to fix, I
> will do so shortly.
> Fyi it can be reproduced simply by running these two lines in Rgui:
> On 07/17/2018 05:16 PM, Kevin Ushey wrote:
>> Sorry, I should have been more clear -- if I write the contents of
>> that script to a file called 'encoding.R' and source that, then I see
>> the reported behavior.
>> Here's something standalone that you should hopefully be able to copy
>> + paste into RGui to reproduce:
>> code <- '
>> x <- 1
>> save(x, file = tempfile())
>> output <- encodeString("apple")
>> file <- tempfile(fileext = ".R")
>> writeLines(code, con = file)
>> When I run this, I see:
>>> code <- '
>> + x <- 1
>> + print(list())
>> + save(x, file = tempfile())
>> + output <- encodeString("apple")
>> + print(output)
>> + '
>>> file <- tempfile(fileext = ".R")
>>> writeLines(code, con = file)
>>  "\002ÿþapple\003ÿþ"
>> This is with today's R-devel:
>> R Under development (unstable) (2018-07-16 r74967)
>> Platform: x86_64-w64-mingw32/x64 (64-bit)
>> Running under: Windows 10 x64 (build 17134)
>> Matrix products: default
>>  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
>> attached base packages:
>>  stats graphics grDevices utils datasets methods base
>> loaded via a namespace (and not attached):
>>  compiler_3.6.0
>> I realize the example looks incomplete, but it seems like each step is
>> required to reproduce the strange behavior:
>> 1) You need to print an empty list,
>> 2) You need to invoke save() after printing that empty list,
>> 3) Then, attempts to call encodeString() will produce the strange output.
>> For what it's worth, it may be related to a behavior I'm seeing where
>> the first name printed for an R list is quoted with backticks even
>> when not necessary:
>>> list(x = 1, y = 2)
>>  1
>>  2
>> On Tue, Jul 17, 2018 at 6:12 AM Tomas Kalibera<tomas.kalibera using gmail.com> wrote:
>>> Hi Kevin,
>>> the extra bytes you are seeing are escapes for UTF-8 strings used in
>>> input to RGui console. Recently ascii strings are converted to UTF-8 so
>>> you would get these escapes for ascii strings now as well. RGui
>>> understands these escapes and converts from UTF-8 to wide characters
>>> before printing on Windows. The escapes should not be used unless
>>> printing to RGui console.
>>> I suppose you managed to leak the escapes but I cannot reproduce, the
>>> example you sent seems incomplete ("x" not used, not clear what
>>> encoding.R is, not clear where the encodeString is run) and none of the
>>> variations I ran leaked the escapes on R-devel. Please clarify the
>>> example if you believe it is a bug. Please also use current R-devel
>>> (I've relatively recently fixed a bug in decoding these escaped strings,
>>> perhaps unlikely, but not impossible it could be related).
>>> On 07/16/2018 10:01 PM, Kevin Ushey wrote:
>>>> Given the following R script:
>>>> x <- 1
>>>> save(x, file = tempfile())
>>>> output <- encodeString("apple")
>>>> If I source this script from RGui on Windows, I see the output:
>>>> > source("encoding.R")
>>>>  "\002ÿþapple\003ÿþ"
>>>> That is, it's as though R has injected what looks like byte order
>>>> marks around the encoded string:
>>>> > charToRaw(output)
>>>>  02 ff fe 61 70 70 6c 65 03 ff fe
>>>> FWIW I see the same output in R-patched and R-devel. Any idea what
>>>> might be going on? For what it's worth, I don't see the same issue
>>>> with R as run from the terminal.
>>>> R-devel using r-project.org mailing list
[[alternative HTML version deleted]]
More information about the R-devel