A while ago I was working on a piece of R code for the data analysis of my Master These project. While experiencing some encoding issues running the code on different platforms I decided to build in OS detection. After some Googling I found out there are several ways to do so. First of all we can search in the `version` variable:
> version
platform       x86_64-pc-linux-gnu          
arch           x86_64                       
os             linux-gnu                    
system         x86_64, linux-gnu            
status                                      
major          2                            
minor          10.1                         
year           2009                         
month          12                           
day            14                           
svn rev        50720                        
language       R                            
version.string R version 2.10.1 (2009-12-14)
version$os
or `.Platform`
> .Platform
$OS.type
[1] "unix"
$file.sep
[1] "/"
$dynlib.ext
[1] ".so"
$GUI
[1] "X11"
$endian
[1] "little"
$pkgType
[1] "source"
$path.sep
[1] ":"
$r_arch
[1] ""
.Platform$OS.type
or even `Sys.info()`
> Sys.info()
                                     sysname 
                                     "Linux" 
                                     release 
                         "2.6.32-30-generic" 
                                     version 
"#59-Ubuntu SMP Tue Mar 1 21:30:46 UTC 2011" 
                                    nodename 
                                "foo.bar.nl" 
                                     machine 
                                    "x86_64" 
                                       login 
                               "mtersmitten" 
                                        user 
                               "mtersmitten"
In my code I would use this like:
toUtf8 = function(column) 
{
  return (
    switch(class(column), 
      "character" = iconv(column, "LATIN1", "UTF-8"),
      "data.frame" = as.data.frame(apply(column, 2, iconv, "LATIN1", "UTF-8")),
    )
  );
}
if (Sys.info()["sysname"] == "Linux")
{
  items15["question"] = toUtf8(items15["question"])
}
I know, it’s not pretty but it works… 
PS: am I the only one having encoding issues working on multiple OSses by the way?