`
andyhu1007
  • 浏览: 202572 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

encoding in ruby and rails

阅读更多

    项目中有一个csv文件因为是latin1 encoded,所以解析就会出现错误。

 

    解决方案:可以通过Iconv.iconv("UTF-8", "latin1", file.read)把stream转化成UTF-8格式(rails的默认编码是UTF-8)。

 

    局限:当然此种方法的局限是限定了文件的编码只能是latin1的时候才能解析正确。当然,如果没有特殊字符,其他的一些ASCII字符(single byte character)在两种编码之间会转换正确。但一当文件中有其它编码的特殊字符,那就歇菜了。

 

    更进一步:使用gussing工具猜编码吧,比如下面这段

 

    File.open(tmp_file, 'w') do |f|
      input   = file.read
      charset = CMess::GuessEncoding::Automatic.guess(input)
      f.write(Iconv.iconv('UTF-8', charset, input))
    end

 

    以上问题详见此讨论

 

    顺便说下ruby的encoding

 

    1. In ruby <= 1.8, strings were effectively just byte streams. Those bytes would often contain text in one encoding or another, but there was no formal way to record exactly which one (if any; binary data has none). All the default methods assumed single byte encoding (such as US-ASCII), so behaviour was odd when the encoding was multibyte (such as UTF8).

 

    2. In ruby 1.9:

 

        str.encode!("UTF-8")

        File.open("file", "r:UTF-8") {|f| ...........}

分享到:
评论
1 楼 feeling3_4 2008-09-11  
我gem install 了 cmess,为什么每次require,都说找不到这个东西呢?

相关推荐

    ruby on rails基础知识

    ### Ruby on Rails基础知识详解 #### 一、Rails简介与安装 **Rails** 是一款流行的开源Web应用框架,基于Ruby语言编写。它强调简洁性、生产力和优雅的设计,非常适合快速开发Web应用。 - **特点** - **DRY (Don'...

    Ruby on rails 数据库详细配置

    在Ruby on Rails框架中,数据库配置是至关重要的部分,它允许开发者与各种数据库系统进行交互,如MySQL、Microsoft SQL Server等。以下将详细介绍如何在Windows环境下安装Ruby on Rails以及配置数据库。 首先,我们...

    Ubuntu 11.04安装Ruby on rails 连接MySQL数据库.pdf

    ### Ubuntu 11.04下Ruby on Rails与MySQL数据库集成指南 #### 一、安装与配置MySQL数据库 在Ubuntu 11.04环境中,安装MySQL数据库是部署Ruby on Rails应用的重要步骤之一。首先,通过打开终端并执行以下命令进行...

    ruby on rails MySql

    Ruby on Rails(简称Rails)是一种基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和代码的可读性。MySQL则是一款广泛使用的开源关系型数据库管理系统,以其高效...

    Character encoding autodetection in Ruby

    Ruby语言是一种面向对象的脚本语言,它以其简洁明了的语法和强大的功能被广泛应用于Web开发领域,尤其是在Ruby on Rails框架下。在处理文本数据时,字符编码的自动检测是一个复杂而重要的问题。由于网络传输、文件...

    rails的最好的事例

    - **集成Ruby on Rails支持**:提供Ruby on Rails项目的创建、调试等功能。 - **强大的代码编辑器**:支持语法高亮、代码自动完成等功能。 - **调试工具**:帮助开发者定位和修复代码中的问题。 #### 4.2 使用...

    Ruby-Multiverse让Rails支持多数据库

    在Ruby on Rails开发中,数据存储的灵活性是关键。随着应用程序规模的增长,单一数据库可能无法满足性能、可扩展性或组织结构的需求。在这种背景下,“Ruby-Multiverse”应运而生,它为Rails应用程序提供了优雅地...

    RubyonRails字符串处理中文最新版本

    开发者在处理包含中文字符的字符串时,可以利用Rails框架提供的方法,如`force_encoding`来指定字符串的编码类型,或者使用`encode`方法进行编码转换,确保字符串在处理过程中的正确性和一致性。同时,Rails还提供了...

    Mac上rails环境的搭建

    本文将详细介绍如何在Mac系统上搭建一个完整的Rails开发环境,包括Ruby环境配置、Rails框架安装、MySQL数据库安装以及RubyMine集成开发环境的配置等关键步骤。 #### 二、Ruby环境配置 由于Mac系统自带Ruby环境,...

    rails和mysql数据库连接中出现的问题以及解决办法

    encoding: utf8mb4 reconnect: false database: your_database_name pool: 5 username: your_username password: your_password host: localhost ``` 其次,问题可能出在MySQL驱动程序上。Rails使用`mysql2`...

    Flex3与Rails结合

    在探索如何将Adobe Flex3与Ruby on Rails(简称Rails)结合,创建动态Web应用的过程中,一个常见的入门案例便是“HelloWorld”。此案例不仅展示了这两种技术如何协同工作,还揭示了它们在构建交互式用户界面方面的...

    Rails的中文乱码问题

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

    rails配置sqlserver2000

    在Ruby on Rails框架中,与SQLServer 2000集成可能会比与其他常见的数据库系统(如MySQL或PostgreSQL)稍复杂一些,因为SQLServer 2000的兼容性问题和缺少官方支持。然而,通过一些第三方库和适当的配置,我们仍然...

    Ruby-SQLServerRailsActiveRecord的SQLServer适配器

    在Ruby on Rails框架中,开发者经常需要连接不同的数据库系统,如MySQL、PostgreSQL或SQL Server。本主题将深入探讨如何在Rails应用中使用SQL Server作为数据存储,特别关注`activerecord-sqlserver-adapter`这个gem...

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

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

    ruby的API文档,有需要同事请下载

    - Ruby社区拥有丰富的第三方Gem库,如Rails(Web开发框架)、Rspec(测试框架)等,大大扩展了Ruby的功能。 Ruby的API文档详细解释了这些概念及其使用方法,是学习和开发Ruby应用必不可少的参考材料。通过阅读和...

    rails入门详细笔记

    - 官方推荐使用 Ruby 1.9.2 或更高版本,因为之前的版本如 1.8.7 p248 和 p249 存在可能导致 Rails 3 崩溃的 bug。 2. **RubyGems 安装与更新**: - 安装完成后需要使用 `gem update` 命令更新 RubyGems 至最新...

    rails敏捷开发第二章

    ### Ruby on Rails 敏捷开发知识点总结 #### 1. 引言 Rails是一种基于Ruby语言的Web开发框架,以其高效、简洁著称。Rails强调“约定优于配置”(Convention Over Configuration, CoC),这使得开发者能够快速构建出...

    attached:一个让用户上传到云端的文件附件工具

    附 Attached 是一个 Ruby on Rails 文件附件工具,可让用户上传到云端。 gem 默认支持 AWS、...rails g model video name:string encoding:attachment class CreateVideo &lt; ActiveRecord::Migration def self.up

    magic_encoding:轻松管理 ruby​​ 1.9 应用程序编码的魔术注释

    我最初写这个是为了在在 rails 控制器上的 ruby​​ 中写入包含非 ascii 字符(如 éöàüèä)的字符串时摆脱“无效的多字节字符(US-ASCII)”错误 安装 gem install magic_encoding 用法 您可以使用像这样的...

Global site tag (gtag.js) - Google Analytics