From |uc@r @end|ng |rom |edor@project@org  Mon Feb 18 16:36:24 2019
From: |uc@r @end|ng |rom |edor@project@org (=?UTF-8?Q?I=C3=B1aki_Ucar?=)
Date: Mon, 18 Feb 2019 16:36:24 +0100
Subject: [Rd] Encoding issues
Message-ID: <CALEXWq344mKov29L4VrNvGrOWg-uOxiXXwjNajpmwkLv+ZvPYg@mail.gmail.com>

Hi,

We found a (to our eyes) strange behaviour that might be a bug. First
a little bit of context. The 'units' package allows us to set the unit
using both SE or NSE. E.g., these both work in the same way:

units::set_units(1:10, "?m")
#> Units: [?m]
#> [1]  1  2  3  4  5  6  7  8  9 10

units::set_units(1:10, ?m)
#> Units: [?m]
#> [1]  1  2  3  4  5  6  7  8  9 10

That's micrometers, and works fine if the session charset is UTF-8.
Now the funny part comes with Windows. The first version, with quotes,
works fine, but the second one fails. This is easy to demonstrate from
Linux:

LC_CTYPE=en_US.iso88591 Rscript -e 'units::set_units(1:10, "?m")'
#> Units: [?m]
#> [1]  1  2  3  4  5  6  7  8  9 10

LC_CTYPE=en_US.iso88591 Rscript -e 'units::set_units(1:10, ?m)'
#> Error: unexpected input in "units::set_units(1:10, ?"
#> Execution halted

However, if you use the first version, with quotes, in an example, and
the package is checked on Windows, it fails too (see
https://ci.appveyor.com/project/edzer/units/builds/22440023#L747). The
package declares UTF-8 encoding, so none of these errors should, in
principle, happen. Am I wrong?

Thanks in advance, regards,
I?aki



[Rd] Encoding issues
=?UTF-8?Q?I=C3=B1aki_Ucar?=