Gem Grape 写的 API,中文乱码,如何解决?

stephen · 2013年05月16日 · 最后由 gazeldx 回复于 2015年07月23日 · 5007 次阅读

grape 写的 api,中文乱码,如何解决?

参考 Sinatra 解决编码的方法

str.force_encoding('UTF-8')

以 Grape 为例:加入

class API < Grape::API
  content_type :json, 'application/json;charset=UTF-8'
end

应该就可以了(受到这篇文章的启发:https://ruby-china.org/topics/22912 )。

在一些程序中调用应该不是乱码,因为这些程序默认 utf-8。 如果你用英文版本的操作系统,浏览器默认的字体是 Western 的,而你的文本内容实际上可能是 UTF-8 的。由于 Grape 是 API,所以不会通知浏览器改用 UTF-8 显示。 还可以把谷歌浏览器设置下:Settings->Show advanced settings->Customize fonts, set Encoding to Unicode(UTF-8) 用 Safari 访问,设置 View -> Text Encoding -> UTF-8 来试试。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号