ERROR! source(path) 裡面有中文字體時會出現無效位元的輸出解析

內容說明

寫程式的時候是不可能沒遇到 bug 的,bug 紀錄整理

ERROR: source(path) 裡面有中文字體時會出現無效位元的輸出解析

由於 R 對於漢字的不友善,使華語系國家需要使用其他方式來解決漢字問題。

solution 1:

嘗試用著各位前輩完成的方法

1
source(path,encoding = "UTF-8" , local=TRUE)

solution 2:

須將 source 改寫,透過 R eval()進行改寫,eval() 可將字串變成表達式(即 R 的程式碼)使用。
R 是可以進行覆寫的語言,可用這招來解決問題。

1
2
3
4
5
source <- function(path, encoding = 'UTF-8') {
l <- readLines(path, encoding=encoding)
eval(parse(text=l),envir=.GlobalEnv)
}
source(path)

envir = 環境
.GlobalEnv = 全域環境

參考連結

How to source() .R file saved using UTF-8 encoding?

心得

程式語言的世界博大精神,要是沒有他們的付出我能走上現在的路嗎?
肯定是沒辦法的,於是我也需要更努力地去為社會付出。

  • 版權聲明: 本部落格所有文章除有特別聲明外,均採用 Apache License 2.0 許可協議。轉載請註明出處!
  • © 2020-2024 John Doe
  • Powered by Hexo Theme Ayer
  • PV: UV: