這個問題是我去年怒轉 Linux 的主因 , 我測試的結果是
當你在RStudio裡面載入大量中文字元 big 5 的檔案後 ,
即便有編碼設定 , 只要你對 Script 做存取動作便會發生
發生後所有RStudio的功能會完全癱瘓 , 可以操作但基本
上沒有任何意義
一旦發生 , 只要你往後對該Script 做任何操作 , 特別
是像跟Syntax 有關的 tab complete , 便會出現這個bug
我猜是在存取時有些默認字元遇到 big 5 碼 , 產生無意
義 , 但被誤以為指令的段落 , 造成直譯的parser crash
我對 R 的整體架構還沒很全面的想法 , 所以是用猜的
癱瘓當下解決方式:
Session -> Terminate R
但該Script是否廢了 ? 好險還沒有 , 我有試出一個依舊
能執行該Script的方式 , 只要你叫出該Script , 不要做
任何動作 , 直接全選貼到新開的 Script , 但切記不要把
新Script做存檔動作 , 否則該問題會重新出現 , 只要不
存檔 , 你依舊可以自由操作該 Script
環境編碼:
Tools -> Global Option -> General
BTW , 改環境編碼對處理這個問題沒有幫助 , 問題不是
package 是script 本身 , 目前經驗是有載入中文檔案
有中文註解 或是有屬性名是中文 , 在 Windows都會有機
會發生 , 且只要一旦在存取Script發生 , 該Script就
會一直發生
這問題我剛遇到有考慮要回報 , 但RStudio的crash support
那時候翻寫 "Only for Mac/Linux" 我就沒回報了 , 整體來
說 , 是 Windows RStudio 的問題 不是 R的問題
希望對你有幫助
方便的話可以把標題改成方便遇到的人查詢:
"invalid multibyte"
============原始可能遇到的 erro================
invalid multibyte character in parser at line 1
invalid multibyte string, element 1
===============================================
※ 引述《jjx66os ()》之銘言:
: [問題敘述]:
: 之前都是在Mac筆電上編寫R
: 最近有些程式運算比較複雜些,改用Windows的桌機執行
: 不過當我打開RStudio,進行像是下載package的時候
: 都會碰到Error in nchar(homeDir) : invalid multibyte string, element 1
: 這樣的訊息
: 我的安裝路徑資料夾都是英文的,安裝位置也在預設的地方
: 但只要先執行Sys.setlocale(category = "LC_ALL", locale = "us")
: 就沒問題了,不過關掉後下次再打開還是會有這樣的問題
: 請問如何讓Sys.setlocale(category = "LC_ALL", locale = "us")成為我的設定值呢?
: 找不到RStudio設定預設編碼的地方
: 或者有沒有其他的解決方法呢???
: 我的系統為Windows10專業版,R 3.2.5,RStudio應為最新版。