AI 年度盘点与2025发展趋势展望,50+案例解析亮相AICon 了解详情
写点什么

字符编码和 M17N 详解

  • 2009-05-18
  • 本文字数:784 字

    阅读完需:约 3 分钟

James Edward Gray II 近期发表了十个同一系列名为《Understanding M17n》的文章,均是关于Ruby 的字符编码问题。

Ruby 1.9 做出了很多关于字符支持的修改,现在能够很好地支持多种和混合字符编码了。这些需求是在一些项目中确实存在的,尤其是为全世界用户开发的开源项目中。

他从基础开始讲起,介绍了什么是 Unicode 以及其编码方式,接着发表了一些 Ruby 1.8 的帖子,例如使用iconv 进行编码以及Ruby 1.8 是如何处理Unicode 的。然后综合论述了 Ruby 1.9 的 String 以 Ruby 1.9 和其他语言的区别:

通常开发者都会选择一个全能的编码,例如 Unicode 编码,然后所有的数据都会是这个编码格式。Ruby 1.9 采取了一种不同的方法。它不仅仅局限于选择一种编码,Ruby 1.9 能够同时处理超过 80 种编码的数据。

Ruby 1.9 的 m17n 的一个新特性是三种默认编码,而 Ruby 1.8 只有单一的全局变量。但是为什么我们需要这么多编码呢?考虑以下的情景:

我也许希望我的代码是 UTF-8 的,但是一些日本程序员希望它们的代码是 Shift JIS。Ruby 应该支持这个,确实 1.9 也支持了这个特性。我们把这个情景搞复杂一点:想像一下我把我的 UTF-8 的代码打包到一个 gem 之后,有日本程序员希望在它的 Shift JIS 代码重使用这个 gem。我们如何无缝地进行工作?

阅读关于 Ruby 1.9 的三种默认编码的主题。 最后一篇文章包含了各种话题,例如在二进制数据编码和正则表达式数据编码。

阅读完这十个主题之后,你应该已经明白了Ruby 1.9 的强大的m17n 特性以及给你带来的灵感,即使你仍然打算现在坚守在Ruby 1.8 的平台上。如果你并不足够了解Unicode,如果还没有读过的话,你也许需要阅读一下Joel Spolsky 的传世之作《The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)》

查看英文原文: Character Encodings and M17N Explained

2009-05-18 11:471665
用户头像

发布了 90 篇内容, 共 34.3 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

作业-第9周

arcyao

互操作性如何助推区块链接入互联网基础设施

CECBC

区块链 密码学

成为架构师 - 架构师训练营第 08 周

陈永龙Vincent

架构师训练营 week10 课后作业

花果山

极客大学架构师训练营

面试官:Mybatis里的设计模式有哪些?我一口气答了8种

田维常

mybatis

架构师训练营 - 第十三周 - 作业一

行者

增强产业链供应链自主可控能力

CECBC

供应链

第十三周作业

orchid9

第十二周作业

wanlinwang

极客大学架构师训练营

分布式服务框架的选择-《企业IT架构转型之道-阿里巴巴中台战略思想与架构实战》

Man

分布式架构 中台架构

架构师训练营 week10 学习笔记

花果山

极客大学架构师训练营

week9 性能优化(三)作业和学习总结

杨斌

两个周末整理的垃圾回收知识,我要吐血了

moon聊技术

JVM JVM垃圾回收原理

南昌“舞动”区块链

CECBC

区块链 基础设施

C语言学习你要的都在这里

C语言与CPP编程

c++ 学习 编程 C语言

成为架构师 - 架构师训练营第 07 周

陈永龙Vincent

盘点2020 | 我要为分布式数据库mongodb在国内影响力提升及推广做点事

杨亚洲(专注MongoDB及高性能中间件)

数据库 mongodb 盘点2020 分布式数据库mongodb

架构师训练营第 1 期 -- 第十三周作业

发酵的死神

极客大学架构师训练营

第十三周总结

orchid9

【架构师训练营第 1 期 13 周】 学习总结

Bear

极客大学架构师训练营

架构师训练营 2 期 Week09 作业

JVM&秒杀案例

幸福小子

JVM原理

redis的I/O多路复用

en

redis 多路复用 epoll

架构师训练营第2期 第9周总结

月下独酌

极客大学架构师训练营

JVM垃圾回收原理

幸福小子

JVM垃圾回收原理

架构师训练营第九周作业

李日盛

架构

架构师训练营第 1 期 - 第十三周作业

Todd-Lee

极客大学架构师训练营

第九周学习总结

晴空万里

极客大学架构师训练营

《JAVA并发编程核心方法与框架》.pdf

田维常

并发编程

【架构师训练营第 1 期 13 周】 作业

Bear

极客大学架构师训练营

架构师训练营第二期 Week 9 作业

bigxiang

极客大学架构师训练营

字符编码和M17N详解_Ruby_Mirko Stocker_InfoQ精选文章