我試圖在NGINX和PUMA的Ubuntu 14.02服務器上部署應用程序,當我嘗試訪問在服務器上的靜態頁面與巴西葡萄牙語字符和無法訪問數據庫,頁面不顯示,並且會記錄以下錯誤:ActionView :: Template :: Error(不兼容的字符編碼:ASCII-8BIT和UTF-8)與葡萄牙語巴西字符
ActionView :: Template :: Error(不兼容的字符編碼:ASCII-8BIT和UTF-8)
我讀了很多關於這個錯誤的帖子/答案,並且嘗試了一切。
紅寶石版本:紅寶石2.1.3p242(2014年9月19日修訂版47630)[x86_64的Linux的] 的Rails版本:Rails的4.2.4
在服務器命令locale返回以下:
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
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="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
我的application.rb中包含此行:
config.encoding = "utf-8"
我的environment.rb contais行:
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
我已經把#encoding:「utf-8」放在我的html.erb文件上面,但沒有成功。
嗨德米特里,感謝您抽出時間來幫助我! 命令文件給我這個: divulgue.html.erb:UTF-8 Unicode文本 force_encoding也沒有幫助我。而當我返回代碼the_bad_string.encoding.name它也給我UTF-8! –
如果你的字符串來自'divulgue.html.erb'之外的某個地方,那麼也檢查源文件的編碼。例如。當我試圖在視圖中使用'env.rb'中定義的字符串時,我遇到了這樣的問題。還要檢查'the_bad_string.encoding'返回的是什麼,它是UTF ?. –
不,這是一個包含靜態內容的靜態頁面,但帶有áãç等字符。如果我刪除這些字符,則頁面呈現正常。 我使用在local_env.rb文件中定義的字符串來定義頁面標題,並且令人驚訝的是它們工作,即使是ú字符也是如此?? ?? 是的,string.encoding.name返回UTF-8。 –