I'd prefer a change that said that R and NAMESPACE files must contain
UTF-8, rather than an exception for raw strings. ASCII is a subset, so
any package that is currently compliant would still be compliant.
Duncan Murdoch
On 2025-11-29 5:55 a.m., Mark Bravington wrote:
Hi--- My package 'lyxport' has R code with several raw strings (see ?Quotes)
which contain UTF-8 characters (FWIW: in order to deal with wacky legacy Latex
characters). For example, one of the strings is:
converto <- r"--{
Ä \"A ä \"a Á \'A á \'a Ȧ \.A ȧ \.a Ā \=A
ā \=a  \^A â \^a À \`A à \`a Ą \k{A} ą \k{a}
<snipped>
Ŋ {\NG} Ø {\O} ø {\o} œ {\oe} Œ {\OE} ß {\ss} þ {\th}
Þ {\TH}
}--"
RCMD CHECK is not happy, and gives a Warning:
"Portable packages must use only ASCII characters in their R code and NAMESPACE
directives, except perhaps in comments. Use \uxxxx escapes for other characters."
and indeed that is as stated in "Writing R extensions", section 1.1.5 ("Package
subdirectories") and section 1.6.3, "Encoding issues".
But I wonder if this is still sensible now that
(i) R has raw strings (since ~R 4.0);
(ii) the DESCRIPTION file explicitly says "Encoding: UTF-8"; and
(iii) R >= 4.2 pretty much now enforces UTF-8 in Windows (and UTF-8 could even be a
"requirement" of this package, if that helped).
With "normal" strings then maybe the \uxxxx thing is reasonable; but shouldn't
the contents of raw strings be exempt? You can't put \uxxxx into a raw string, for
obvious reasons...
cheers
Mark
PS Of course, there are ways around the Warning (eg storing the strings as
files elsewhere in the package, and reading those files during the code) but
they are tedious, harder to maintain, and reduce clarity (imagine using \uxxxx
in the above!). Since I don't particularly care whether the package goes on
CRAN or not (it's living quite happily in R-universe), I've no plans to change
my code, but I would prefer to avoid Warnings that then have to be explained to
would-be users. And I am probably not the only person affected.
PPS The package has been working fine on Windows, Macs, and Linux.
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel