2009-02-27 16 views
4
私はこのように、UTF8文字列を含むハッシュをシリアル化するとき

は:ActiveRecordのフィールドにRuby on Rails:UTF8の問題をシリアライズする

 poll.variants = {0 => 'тест',1 => '-тест-',2 => 'test # test "тест'} 

、結果のフィールドが含まれています

--- 
0: !binary | 
    0YLQtdGB0YI= 

1: !binary | 
    LdGC0LXRgdGCLQ== 

2: !binary | 
    dGVzdCAjIHRlc3QgItGC0LXRgdGC 

UTF8文字列が何らかの理由でエンコードされたバイナリやbase64でとして扱われます。フィールド上の照合はutf8_general_ciです。私は少し失望しています。

ActiveRecordを作成する方法はありますか?人が読めるyamlをフィールドにシリアル化しますか?

答えて

5

ActiveRecordの を作成する方法はあります: フィールドに人間が読めるYAMLをシリアル化?

号そのBase64エンコード次いで、UTF-8を受け入れるいけないデータストア内のワイヤおよび/またはストアを横切って送信しても安全である最小公denonimator、まで(いずれかのエンコーディングで)任意のテキストを符号化するようにデータ。

+0

これは妥当です。説明ありがとう。 –

+1

質問:なぜRailsはUTF-8としてDBから文字列を逆シリアル化しないのですか?それはASCII-8BITを返します... – awendt

関連する問題