Pergunta

Tenho uma página que usa o conjunto de caracteres UTF-8, porém os caracteres estão mutilados na página, acho que é só uma questão de definir um cabeçalho "Content-Type:texto/html;conjunto de caracteres=utf-8" ...Eu sei fazer isso em PHP, basta colocar o seguinte no topo da página.

<?php header("Content-Type: text/html; charset=utf-8"); ?>

Existe uma maneira de fazer isso em Ruby?Você pode colocar um cabeçalho no topo de uma página, assim?


atualizar: 29 de junho, 13h20 PST

Eu sou não usando isso como parte de um aplicativo Rails.É para uma página de navegador incorporada em um aplicativo independente, posso usar Javascript e/ou Ruby para criar páginas dinâmicas.

Foi útil?

Solução

Se você estiver usando Rails, você deseja:

response.content_type = Mime::HTML
response.charset      = "utf-8"

Você também pode tentar definir os cabeçalhos diretamente:

response.headers["Content-Type"] = "text/html; charset=utf-8"

Se estiver usando Rack, você deseja definir o cabeçalho usando o segundo elemento da tupla:

class MyRackApp
  def call(env)
    response = []
    # do stuff with env, populating response
    # response is [status_code, headers, body]
    response[1]["Content-Type"] = "text/html; charset=utf-8"
    response
  end
end

Se você estiver usando CGI bruto (eu definitivamente recomendaria Rack em vez de cgi.rb):

header("text/html; charset=utf-8")

Outras dicas

Você está usando Ruby on Rails?

request.headers["Content-Type"] # => "text/plain"

Ou talvez a biblioteca CGI do Ruby?

http://www.ruby-doc.org/stdlib/libdoc/cgi/rdoc/classes/CGI.html#M000098

Não tenho certeza de como responder isso diretamente sem aprender mais sobre como você está gerando a página, mas posso sugerir que você dê uma olhada em alguns dos frameworks web leves não-Rails para Ruby.Existem muitos e eles facilitam coisas assim.

Por exemplo, Prateleira tem um hash fácil de usar para cabeçalhos enviarem ao navegador.Da mesma forma em Acampamento você pode simplesmente fazer algo como @headers['Content-Type'] = 'text/css'

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top