2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

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

关注

评论

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

Tenable Nessus 10.8.4 发布 - 领先的漏洞评估解决方案

sysin

Nessus

问界M9硬件升级的背后,藏着汽车的原子化之梦

脑极体

AI

等保二级与三级的深度剖析:差异究竟在哪?

黑龙江陆陆信息测评部

融云「国家级通信产品」在沙特的交付实践

融云 RongCloud

Windows Server 2022 OVF (2025 年 4 月更新) - VMware 虚拟机模板

sysin

Windows Server

Windows Server 2025 OVF (2025 年 4 月更新) - VMware 虚拟机模板

sysin

Windows Server

Burp Suite Professional 2025.4 发布 - Web 应用安全、测试和扫描

sysin

burp

又来一个挑战 Elastic 的,初识 SigLens

巴辉特

elasticsearch SigLens

基于亚马逊云科技 Amazon Bedrock Tool Use 实现 Generative UI

亚马逊云科技 (Amazon Web Services)

Windows Server 2022 中文版、英文版下载 (2025 年 4 月更新)

sysin

Windows Server

CAD二次开发的性能调优

北京木奇移动技术有限公司

软件外包公司 CAD二次开发 CAD开发公司

CAD二次开发的上线流程

北京木奇移动技术有限公司

软件外包公司 CAD二次开发 CAD开发公司

1688代采系统功能深度解析(二):从技术角度揭秘“一键下单+批量采购”如何重塑采购效率

代码忍者

1688代采集运系统

Meta Llama 4大模型评价与分析

测试人

人工智能

Windows Server 2025 中文版、英文版下载 (2025 年 4 月更新)

sysin

Windows Server

【HarmonyOS 5】makeObserved接口详解

GeorgeGcs

aiXcoder上新Agent,内置MCP功能,端到端智能实现软件开发任务

新消费日报

Nexpose 8.3.0 发布 - 领先的漏洞管理解决方案

sysin

Nexpose

deepseek如何制作ppt?DS高级使用技巧盘点!

职场工具箱

PPT 办公软件 AIGC AI生成PPT DeepSeek

GPT-4 即将退役,你准备好迎接 AI 的下一波冲击了吗?

测试人

人工智能

英特尔和海信联合发布的会议垂域模型让商务会议更加安全智能

E科讯

2025 腾讯云城市峰会 •成都峰会 Al+办公协同创新专场 智启未来办公 驱动提效增长

人称T客

CST软件如何计算CMA中的模式加权系数MWC

思茂信息

cst操作 CST软件 CST Studio Suite

DeepSeek模型MOE结构代码详解

AI布道Mr.Jin

轻松拥有企业AI大脑,英特尔与MAXHUB共同发布AI PC

E科讯

【签约】安兰携手第七在线 共启智能供应链新纪元

第七在线

MES管理系统:解决排产难题,提升企业竞争力

万界星空科技

生产管理系统 mes 制造业工厂 生产排班排产 智能排产

「DeepSeek-V3 技术解析」:DeepSeek-V3-Base 预训练阶段解析

Baihai IDP

人工智能 程序员 AI LLMs DeepSeek

AI智上 | 数智预算:业财数融 智算未来

用友智能财务

人工智能与增强现实购物体验:如何用AR与AI结合提升电商互动性?

天津汇柏科技有限公司

人工智能 增强现实 AI 人工智能

GitHub 上 Star 数排名前 40 的开发者工具

NocoBase

GitHub 开源 低代码 零代码 开发工具

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