Appendix D: 中文亂碼及存取問題

以下出自: 郭耀仁:認識R的美好,第2.5節

D.1 語系的設定

我偏好使用英文語系(en_US.UTF-8),也推薦使用英文語系;可以先在 R Console 呼叫函數 Sys.getlocale() 檢查目前系統的語系:

Sys.getlocale()
## [1] "LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=en_US.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICATION=C"

假如看到的語系與上面輸出結果相同,表示跟我一樣設定為英文語系。假如設定為中文語系,那麼可能看到的會是:

## Warning in Sys.setlocale(category = "LC_ALL", locale = "zh_TW.UTF-8"): OS
## reports request to set locale to "zh_TW.UTF-8" cannot be honored
## [1] ""

若要更改為英文語系,Windows 作業系統使用者可以在 R Console 輸入:

Sys.setlocale(category = "LC_ALL", locale = "UTF-8")

Mac 作業系統使用者可以在 R Console 輸入:

Sys.setlocale(category = "LC_ALL", locale = "en_US.UTF-8")

D.2 開啟 R 程式碼檔案為何是亂碼

這是中文字編碼的問題,請在 RStudio 視窗點選 FileReopen with Encoding…,根據來源 R 程式檔的編碼選擇適當編碼,通常中文字編碼問題,在嘗試過 UTF-8BIG5CP950WINDOWS-1252 這幾個常見編碼後應該可以解決 87% 的亂碼問題。

D.3 Windows 不要設定中文使用者名稱

Windows 作業系統的使用者名稱若設定為中文,會因為編碼而影響後續使用繪圖套件的功能;另外在做檔案的載入與輸出時候在路徑的設定也容易產生問題。

D.4 R 和 RStudio 不要安裝在 Windows 的 OneDrive 資料夾

Windows 作業系統的 OneDrive 資料夾具有與雲端硬碟同步以及讀寫權限的設定,導致往後在下載或安裝套件時候容易產生問題;同時也可以檢查我的文件是否有與 OneDrive 同步,假使有亦會影響套件的下載及安裝(因為使用者套件預設會儲存在我的文件之下。)