写点什么

字符编码和 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:471647
用户头像

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

关注

评论

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

立冬礼物已送达,小艺陪你开启“暖冬”模式

最新动态

DDD技术方案落地实践

EquatorCoco

技术 DDD 教程 教程分享

Macos视频下载工具:Downie 4 支持M1

彩云

视频下载 downie 4

重庆上百位老师和学生,正在使用这个国产操作系统

OpenCloudOS

Linux 操作系统

AutoCAD 2024 中文版 附 完整图文安装激活教程 支持M1

彩云

mac软件下载 AutoCAD 2024

全方位监控基础设施,坚实守护您的业务稳定!

观测云

监控 基础设施 网络

实例详解构建数仓中的行列转换

华为云开发者联盟

数据库 后端 华为云 华为云GaussDB 华为云开发者联盟

Linux中比cp好用10倍的rsync,你会用了吗

高端章鱼哥

Linux rsync

致敬记者节,合合信息扫描全能王助力新闻工作者构建“随身资料库”

合合技术团队

人工智能 合合信息 扫描全能王 记者节 新闻工作者

AI对抗中的AI:技术展望与应用研究

EquatorCoco

人工智能 AI

大模型时代,程序员的工作还是“写程序”?

SoFlu软件机器人

程序员 软件开发 AIGC java 技术提升

第三方数据测评对比五大品牌HTTP代理!哪家代理最纯净稳定

Geek_bf375d

软件测试/测试开发丨接口自动化学习笔记——请求方法构造

测试人

软件测试 接口测试

数据赋能业务,神州数码HR数字画像荣获2023HRoot人力资源管理卓越实践奖

科技热闻

加密货币交易软件开发:树立行业新标准

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

软件开发全套资料整理下载(投标支撑,立项,研发,测试,实施维护,安全监测,服务巡检,结项,验收支撑)

代码人,代码魂

软件测试/测试开发丨接口自动化学习笔记——响应体断言

测试人

软件测试 接口测试

少林寺方丈释永信造访 Meta 总部;OpenAI 正在摧毁创业公司?丨 RTE 开发者日报 Vol.80

声网

冬天的第一份惊喜,是小艺给的!

最新动态

程序员这个职业未来会消失吗?

高端章鱼哥

编程 程序员 AI编程

提速30%!HarmonyOS NEXT自动化测试开发效率提升

新消费日报

浅议特权账号防护措施

尚思卓越

网络安全 数据安全 特权账号管理

HarmonyOS应用开发

不在线第一只蜗牛

华为 架构 系统 HarmonyOS

前端常用的开发工具有哪些?

互联网工科生

前端框架 前端开发工具 JNPF

COSCon'23|Sermant亮相2023第八届中国开源年会,共赢数智时代

华为云开源

开源项目 微服务治理 sermant

杭州悦数出席 2023 云栖大会计算巢专场,分享云上最佳实践

最新动态

Linux centos 安装docker

javaNice

Java Docker Linux

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