`

Rails 中的乱码问题解决

阅读更多
before_filter :set_charset  
def set_charset   
   if request.xhr?   
     header['Content-Type']="text/javascript,charset=utf-8"  
   else  
     header['Content-Type']="text/html,charset=utf-8"  
   end  
   suppress(ActiveRecord::StatementInvalid) do
   ActiveRecord::Base.connection.execute 'SET NAMES UTF8'
   end
end  






如果,你遇到了上面的错误提示,
那么,说明你的Rails版本升级了,设置编码的描述改变了,请点击这里
Rails中文显示乱码的描述改变


以上的设置分布对应于html javascript mysql同时还要注意
文件编辑保存时的编码也需要统一为utf8(建议在编辑器中直接设置为utf8,注意有不少编辑器默认跟操作系统默认编码走,比如xp的默认编码是gbk,而不是utf8,这一点需要特别注意)
数据库的默认编码也需要统一为utf8,默认的latin1_swedish_ci也可能会引起乱码问题
下面还有night_stalker回答问题的部分
将字符串编码改成系统编码(中文windows控制台一般是GB2312或者GBK)

在ruby 1.8,用iconv:

require 'iconv'  
p Iconv.conv('gbk','utf-8',item[:name]))  

require 'iconv'
p Iconv.conv('gbk','utf-8',item[:name]))



在ruby 1.9,用encoding:
p item[:name].encode(Encoding.default_external)  

p item[:name].encode(Encoding.default_external)



如果嫌每次都转码不方便,可以

require 'iconv'  
def echo something   
  if something.nil?   
    p nil  
  else  
    p Iconv.conv('gbk','utf-8',something.to_s)   
  end  
end  

require 'iconv'
def echo something
  if something.nil?
    p nil
  else
    p Iconv.conv('gbk','utf-8',something.to_s)
  end
end


以后就用echo输出编码为utf-8的。


分享到:
评论

相关推荐

    Rails的中文乱码问题

    标题中的“Rails的中文乱码问题”涉及到的是在使用Ruby on Rails框架开发Web应用时,遇到的中文字符编码不正确的问题。Rails是一个基于Ruby语言的开源Web开发框架,它遵循MVC(Model-View-Controller)架构模式。在...

    Rails中上传文件保存中文文件名乱码

    在Rails框架中处理文件上传时,经常会遇到一个问题,那就是当用户尝试上传包含中文名称的文件时,文件名可能会出现乱码。这个问题主要是由于字符编码不兼容导致的。Rails默认使用UTF-8编码,但文件系统或者某些外部...

    rails3.1.0解决数据库取出来的信息编码为utf-8

    标题 "rails3.1.0解决数据库取出来的信息编码为utf-8" 指向的是在使用Rails 3.1.0版本时遇到的一个常见问题,即从数据库检索的数据编码不是预期的UTF-8格式,导致显示异常或乱码。在Rails应用中,数据的正确编码对于...

    Ruby在cmd下中文显示乱码以及不支持OpenSSL的问题解决

    中文乱码解决办法 cmd下中文不能输入 将cmd代码页改成936: chcp 936 ruby 读取中文强制设置为utf-8 可以在文件中加一个注释语句 # encoding: UTF-8,ruby就会用utf-8格式载入 cmd输出乱码 这个解决不掉, 我看到...

    RoR中文解决方案(很不错哦)

    在中文环境中,可能会遇到编码问题,如乱码等,这个解决方案可能是为了解决这些问题而提供的。 描述中提到的“插件”可能是指RoR的一些中文支持插件,这些插件可以帮助开发者更好地处理中文字符集,避免编码错误。...

    详解Ruby语言中的注释用法与中文编码问题

    ### Ruby语言中的注释用法 ...通过以上介绍,我们了解到在Ruby中如何使用注释以及如何解决中文编码问题,这对于初学者来说是非常重要的基础知识。掌握了这些内容后,你可以更顺利地编写并运行包含中文字符的Ruby程序。

    linux下redmine安装及常见问题faq

    本文将详细介绍如何在Linux环境下,特别是Redhat Linux 5.5上安装Redmine 2.0及其相关组件,以及解决可能出现的问题。 **安装环境与所需软件** 在开始安装前,确保你的系统满足以下条件: - **操作系统**: Redhat ...

    FusionCharts 3.1破解版,破解工具,中文指南,官方DEMO,官文脚本

    4、收集网上一些FusionCHarts的使用问题,如中文乱码的解决办法; 5、包括了官方的FusionCharts.js脚本文件,拿去即可使用了,呵呵; 6、最新独家修改的官方的DEMO例子,直接可以在本地打开哦。 不了解FusionCharts...

    FusionCharts3.1 最全破解版

    4、收集网上一些FusionCHarts的使用问题,如中文乱码的解决办法; 5、包括了官方的FusionCharts.js脚本文件,拿去即可使用了; 6、最新独家修改的官方的DEMO例子,直接可以在本地打开哦。 不了解FusionCharts的人...

    AAClassworks:AA Classworks的文件夹

    7. **项目和作业**:每个子文件夹可能对应一个特定的项目或作业,学员通过完成这些任务来巩固所学知识,如构建小型应用程序、解决算法问题等。 8. **代码风格和最佳实践**:App Academy注重代码质量和可读性,学员...

    JavaEye3.0开发手记

    通过安装`ruby-debug`或类似的调试工具,可以在开发过程中进行单步调试、设置断点等功能,从而更加高效地定位和解决问题。 综上所述,为了搭建一个高效且功能完善的开发环境,需要综合考虑IDE的选择、命令行工具的...

    FusionCharts特点及技巧

    下面是一个使用FusionCharts的简单示例,展示了如何通过Java Web应用生成动态图表,并处理中文乱码问题。 ```jsp ;charset=UTF-8" pageEncoding="UTF-8"%> String area = request.getParameter("area"); if ...

Global site tag (gtag.js) - Google Analytics