Skip to content

error in calling source(): invalid multibyte character in parser

7 messages · Phil Spector, Peter Dalgaard, Brian Ripley +1 more

#
Being italians when writing comments/instructions we use accented letters - like ?, ?, ?, etc.... when running R scripts using such characters I get and error saying:

invalid multibyte character in parser

I have been looking at the help and searched the r-help archives but I haven't find anything that I could intelligibly apply to my case.

Can anyone suggest a fix for this error? 

Thanks,
Luca

Mr. Luca Meyer
www.lucameyer.com
IBM SPSS Statistics release 19.0.0
R version 2.12.1 (2010-12-16)
Mac OS X 10.6.5 (10H574) - kernel Darwin 10.5.0
#
Luca -
    What happens why you type

Sys.setlocale('LC_ALL','C')

    before issuing the source command?

 					- Phil Spector
 					 Statistical Computing Facility
 					 Department of Statistics
 					 UC Berkeley
 					 spector at stat.berkeley.edu
On Mon, 3 Jan 2011, Luca Meyer wrote:

            
#
On Jan 3, 2011, at 08:32 , Luca Meyer wrote:

            
The most likely cause is that your scripts are written in an "8 bit ASCII" encoding (Latin-1 or -9, most likely), while R is running in a UTF8 locale. If that is the cause, the fix is to standardize things to use the same locale. You can convert the encoding of your source file using the iconv utility (in a Terminal window).

-pd

  
    
#
On Mon, 3 Jan 2011, peter dalgaard wrote:

            
Or use the 'encoding' argument of source() to tell R what the encoding 
is, e.g. encoding="latin1" or "latin-9" (the inconsistency being in 
the iconv used on Macs, not in R).

  
    
1 day later
#
It works fine, thanks. 
I was just wondering is there is anyway to include automatically the command you suggest as a default when I open R.
Thanks,
Luca

Il giorno 03/gen/2011, alle ore 08.36, Phil Spector ha scritto:
#
How would I go by doing that? I have tried with:

source("file.R", encoding="it_IT.UTF-8")

But I get

Error in file(file, "r", encoding = encoding) : 
  unsupported conversion from 'it_IT.UTF-8' to ''

Thanks,
Luca

PS:  "it_IT.UTF-8" is what I get under locale when I run sessionInfo() 

Il giorno 03/gen/2011, alle ore 09.48, Prof Brian Ripley ha scritto:
#
On Tue, 4 Jan 2011, Luca Meyer wrote:

            
Well, that is not the value I suggested -- so what not simply follow 
what you were asked to try?