4

UTF8 文字列を含むハッシュをシリアル化すると、次のようになります。

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

ActiveRecord フィールドに対して、結果のフィールドには次が含まれます。

--- 
0: !binary |
  0YLQtdGB0YI=

1: !binary |
  LdGC0LXRgdGCLQ==

2: !binary |
  dGVzdCAjIHRlc3QgItGC0LXRgdGC

何らかの理由で、utf8 文字列はバイナリおよび base64 エンコードとして扱われます。フィールドでの照合はutf8_general_ciで、少しがっかりしています。

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

4

1 に答える 1

5

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

いいえ。そのBase64は、任意のテキストを(任意のエンコードで)最も低い一般的なデノニメータまでエンコードするようにエンコードされています。これにより、ネットワークを介して送信したり、UTF-8データを受け入れないデータストアに保存したりできます。

于 2009-02-27T16:18:28.837 に答える