2014-12-29 18 views
8

kodlamak için geçersiz bayt dizisi Ruby 2.2 kullanmak Raylar 4.1 app yükseltme duyuyorum. yükseltme sırasında app Ruby 2.2 kullanılarak yükleme değildi pg taş (0.12) ve mücevher eski sürümünü kullandığını ortaya çıktı. Bu yüzden daha yeni pg gem sürümünü kullanmaya çalıştım (0.17.1). Yakut 2.2: PG :: CharacterNotInRepertoire: HATA: "UTF8"

PG::CharacterNotInRepertoire: ERROR: invalid byte sequence for encoding "UTF8"

Ruby 2.2 ve Postgres ile bilinen sorunlar var mı: yeni bir kullanıcı sisteme oluşturulduğunda Şimdi bazen hata aşağıdaki almak? config.encoding = "utf-8" application.rb ayarlanır ve encoding: unicode database.yml

SQL deyiminde olduğu:

INSERT INTO "users" (
    "confirmation_sent_at", 
    "confirmation_token", 
    "created_at", 
    "email", 
    "encrypted_password", 
    "first_name", 
    "last_name", 
    "updated_at") 
    VALUES ($1, $2, $3, $4, $5, $6, $7, $8) 
    RETURNING "id" 
+0

ruby ​​2.1.5 pg 0.17.1 kullanılarak güvenilir ve bir kodlama hataları vardır [sidekiq uygulamasında hata kodlayan Postgres'e] arasında –

+0

olası yinelenen (http:// yığın overflow.com/questions/19712889/postgres-encoding-error-in-sidekiq-app) RustamA.Gasanov @ –

+0

: Bu bir kopya değil, hata kullanıcı girişi meydana gelmeyen ve 2.2 –

cevap

5

kesinlikle Ruby hata çeşit vardır uygulama unicode kullanmak üzere yapılandırılmış gibi

görünüyor Postgre'lerle 2.2.0 yeniden UTF-8 kodlaması. Ben Ruby 2.2.0 Ruby 2.1.5 Bir önceki hata ücretsiz Raylar 4.1.5 app yükseltilmiş ve bu hataları başlangıç ​​"PG :: CharacterNotInRepertoire: HATA: geçersiz bayt dizisi UTF8 kodlamak için" hem gelişiminde kullanıcı girişi e-posta alanları ve Heroku üzerinde bir evreleme ortamında. Ruby Downgrading tamamen bu sorunu düzeltti başka değişikliklerle 2.1.5.

güncelleme: bu güncellemeye ilişkin yumruk

The Beat ama hata Ruby yalan ziyade pg taş değildir:

+0

sayesinde yakut yükseltme işleminden önce olmadı , ben de gördükleri –

+0

Evet beni çok var. 2.1.5'e düşürme – kapso