1

Rails’de yeni.Fikstür: utf-8 karakter nasıl yüklenir ve utf-8 olmayanlara dönüştürülür ve veritabanına nasıl kaydedilir?

Eski bir UTF8 karakterini veritabanından veritabanına yüklemek için Fixtures'a dayanan eski bir kod üzerinde çalışıyorum.

Rayların en son sürümünde, yml utf-8 kodlaması olmalıdır, yani Armatürlerin okunması utf-8 kodlaması olacaktır.

Aşağıdaki kodlar utf-8'den non-utf8'e dönüştürülecek ve veritabanına yüklenecek şekilde nasıl dönüştürülür (utf8'in non-course kodlaması).

class LoadUsersData < ActiveRecord::Migration 
    def self.up 
    down 

    directory = File.join(File.dirname(__FILE__)) 
    Fixtures.create_fixtures(directory, "users") 
    end 
    def self.down 
    User.delete_all 
    end 
end 

users.yml, utf-8 biçiminde veri içermelidir (gerekiyor).

Veya .txt (utf8 olmayan formatta olabilir) kullanmak ve Fixtures ile yüklemek mümkün mü?

oracle_enhanced kullanıyorum ve database.yml veritabanımı kodlama için "kodlama" değiştirmeyi denedim, ancak dönüştürme işlemi utf-8'den kodlamam için otomatik olarak yapılmıyor gibi görünüyor (çünkü dize uzunluğu farklı utf-8 ile bu iki kodlama için daha fazla bayt vardır ve veritabanı bu kullanıcı_adı çok uzun bir hata döndürür).

cevap

0

I

  1. ile çözüldü boot.rb içinde

ENV [ 'NLS_LANG'] || aşağıdaki satırı = 'AMERICAN_AMERICA.JA16SJIS'

  1. tüm yml dosyalarını utf-8 biçimine dönüştürün (Not: sjis formatlanmış yml ve ruby ​​gem syck kullanır, yml yüklendiğinde, ancak işlenecek bağlantılar çalışmayacaktır).