在我的博客,我在表格/職位所使用的網址/編碼錯誤導致的Postgres錯誤
如果其他網站鏈接到我的博客文章之一,包含不正確的URL無效UTF-8字符我得到這樣的例外如下:
Blog::PostsController# (ActiveRecord::StatementInvalid) "PG::Error: ERROR: invalid byte sequence for encoding \"UTF8\": 0xb0\n: SELECT \"posts\".* FROM \"posts\" WHERE (slug like 'Examp\xB0le-blog-post') LIMIT 1"
對付這類問題的最佳做法是什麼? 我應該在查詢數據庫之前檢查編碼嗎?我應該找到那種例外嗎?
只要確定,你是**不是**像這樣查詢PGsql:'Post.where(「slug like'#{params [:search]}'」)'?如果是,則使用Post.where(「slug like'?'」,params [:search])'代替。 – MrYoshiji 2013-05-01 14:58:46
感謝提醒我,但是我使用的是非危險/愚蠢的方式:) – soulnafein 2013-05-02 09:13:28
您是否試圖將'#編碼:UTF-8'放在PostsController的最頂端? http://stackoverflow.com/questions/16322433/encoding-and-utf-8-exceptions-after-upgrade-to-ruby-1-9-3-and-rails-3-2/16324815#16324815 – MrYoshiji 2013-05-02 13:26:02