Accesorios: ¿Cómo cargar los caracteres utf-8 y convertirlos a no utf-8 y guardarlos en la base de datos?

Soy nuevo en Rails.

Estoy trabajando en un código heredado que se basa en Fixtures para cargar caracteres no UTF8 de archivos yml en la base de datos.

Con la versión más reciente de Rails, el yml debe ser la encoding utf-8, lo que significa que lo que los Fixtures leen será la encoding utf-8.

Cómo convertir los siguientes códigos para que se convierta de utf-8 a non-utf8 y se cargue en la base de datos (por supuesto, la encoding no-utf8).

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 

donde users.yml contiene datos en formato utf-8 (debe).

¿O es posible usar .txt (puede estar en formato no-utf8) y cargar con Fixtures?

Estoy usando oracle_enhanced y traté de cambiar la “encoding” de la encoding de mi base de datos en database.yml, pero parece que la conversión no se realiza automáticamente de utf-8 a mi encoding (porque la longitud de la cadena es diferente para estas dos codificaciones). con utf-8 tiene más bytes, y la base de datos devuelve que user_name es un error demasiado largo).

Resolví esto por

  1. agrega la siguiente linea en boot.rb

ENV [‘NLS_LANG’] || = ‘AMERICAN_AMERICA.JA16SJIS’

  1. convierta todos los archivos yml al formato utf-8 (Tenga en cuenta que utiliza sjis formateado y ruby ​​gem syck cargará el yml pero los dispositivos no funcionarán, incluso si yml está cargado).