Using unicode with sprintf or paste in Windows (PR#11515)
Let me add that ?Encoding gives a pretty comprehensive description of how encodings are handled, including the circumstances in which they are preserved.
On Mon, 26 May 2008, ripley at stats.ox.ac.uk wrote:
This is not a bug -- it is the expected (and documented) behaviour. On Mon, 26 May 2008, mwtoews at sfu.ca wrote:
Full_Name: Michael Toews Version: 2.7.0 OS: Windows XP SP2 Submission from: (NULL) (24.80.163.230) Using Unicode characters in Windows works with static strings (as of R 2.7.0), however fails when used with sprintf() or paste(). For example, on R 2.7.0 for Windows XP (SP2): Static string (works, showing Greek Delta character):
print("\u0394Q = 2.2 L/s")
[1] "ΔQ = 2.2 L/s" However, when I use paste() or sprintf(), the Unicodeness is lost:
paste("\u0394Q =",round(1.2345,3),"L/s")
[1] "<U+0394>Q = 1.234 L/s"
sprintf("\u0394Q = %.3f L/s",1.2345)
[1] "<U+0394>Q = 1.234 L/s" I have also tested this with R 2.7.0 for Linux, which yields the following:
print("\u0394Q = 2.2 L/s")
[1] "ΔQ = 2.2 L/s"
paste("\u0394Q =",round(1.2345,3),"L/s")
[1] "ΔQ = 1.234 L/s"
sprintf("\u0394Q = %.3f L/s",1.2345)
[1] "ΔQ = 1.234 L/s"
It depends on the locale ... you cannot expect to be able to manipulate Unicode strings in a non-Unicode locale (although you can pass them around as data, unchanged).
(Note: this was posted on R-help with no replies: https://stat.ethz.ch/pipermail/r-help/2008-May/162815.html )
Well, the posting guide asks you to do your homework before posting. In this case, the 'R Internals' manual and the source code. -- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595