Ruby on Rails为从另一个CSV读取的Unicodes添加了额外的反斜杠

时间:2014-10-09 15:30:41

标签: javascript ruby-on-rails ruby json unicode

我有一个CSV文件,其中包含一些我要在屏幕上显示的unicode字符。

以下是unicode文件的屏幕截图。

http://i.imgur.com/lBvXBOL.png

这是我的language_controller.rb,它读取CSV并将其转换为JSON

class LanguagesController < ApplicationController

  def all
    availablelanguages = {
      :data => []
    }
    @language = Language.all.each do |eachlanguage|
       availablelanguages[:data] << {
         :id => eachlanguage.id,
         :name => eachlanguage.languagename,
         :csv => []
       }
    CSV.foreach(eachlanguage.path) do |row|
      availablelanguages[:data].each do |single|
        single[:csv] << {
          :keycode => row[0],
          :unicode => row[1],
          :chakra => row[2]
        }
      end
    end
    @data = JSON.pretty_generate(availablelanguages[:data])
  end
  render json: @data
end

这会为json添加一个额外的反斜杠,因此\ u091C变为\ u091C。这是我的devtools中对应于渲染的json的响应的屏幕截图。

http://i.imgur.com/FY0F1l9.png?1

因此,unicodes在屏幕上显示为文本,而不是按原样显示。我知道这是关于角色逃避的。但是我们可以让JSON响应包含单反斜杠而不是2吗?怎么样?

请帮忙。

0 个答案:

没有答案