Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 升级到Rails 3和Ruby 1.9,Postgres数据库中的Unicode数据现在以ASCII格式返回(潜在错误?)_Ruby On Rails_Serialization_Utf 8 - Fatal编程技术网

Ruby on rails 升级到Rails 3和Ruby 1.9,Postgres数据库中的Unicode数据现在以ASCII格式返回(潜在错误?)

Ruby on rails 升级到Rails 3和Ruby 1.9,Postgres数据库中的Unicode数据现在以ASCII格式返回(潜在错误?),ruby-on-rails,serialization,utf-8,Ruby On Rails,Serialization,Utf 8,从Rails 2.3/Ruby 1.8升级到Rails 3/Ruby 1.9之后,我遇到了一个非常奇怪的现象。正如我在标题中提到的,我正在使用Postgres以及pg gem 0.10.0 当我调用包含Unicode的模型的字符串或文本字段时,它工作正常,并且返回UTF-8编码 然而,我也在许多模型中使用序列化哈希,每当我调用读取它们的内容(在升级之前工作得非常好)时,我都会遇到以下令人费解的行为: 如果内容包含Unicode数据,则返回ASCII,并显示为转义字符 如果内容包含ASCII数据,

从Rails 2.3/Ruby 1.8升级到Rails 3/Ruby 1.9之后,我遇到了一个非常奇怪的现象。正如我在标题中提到的,我正在使用Postgres以及pg gem 0.10.0

当我调用包含Unicode的模型的字符串或文本字段时,它工作正常,并且返回UTF-8编码

然而,我也在许多模型中使用序列化哈希,每当我调用读取它们的内容(在升级之前工作得非常好)时,我都会遇到以下令人费解的行为:

  • 如果内容包含Unicode数据,则返回ASCII,并显示为转义字符
  • 如果内容包含ASCII数据,则返回UTF-8(正确),并正确显示
  • 我可以简单地将作为ASCII字符串返回的Unicode重新编码回UTF-8,一切都会正常工作。然而,这绝对是一个黑客,我觉得这不是一个好方法


    有没有办法使序列化的UTF-8字段正确显示?如果这是某个地方的一个bug,你知道它在哪里吗?如果它已经被知道了吗?

    这能回答这个问题吗

    不幸的是,我的文件上已经有了这个问题,我的问题只影响序列化模型字段。其他一切都可以正常工作,包括源文件中的Unicode(文件顶部有魔术注释)和普通模型文本和字符串字段。