把握行业变革关键节点,12 月 19 日 - 20 日,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:472117
用户头像

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

关注

评论

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

基于 Fluid+JindoCache 加速大模型训练的实践

阿里巴巴云原生

阿里云 云原生 Fluid

墨天轮2023年度数据库获奖名单

墨天轮

数据库 opengauss oceanbase 达梦 polarDB

金芮学院派的优秀践行者

极客天地

AI给我们带来哪些方面惊喜呢?

小齐写代码

Web3.0区块链技术开发方案:mint铭文铭刻制度开发

区块链软件开发推广运营

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

什么是DevOps

DevOps 软件开发

听 GPT 讲 client-go 源代码 (11)

fliter

真香!NineData SQL 开发全面适配 GaiaDB

NineData

数据库 百度云 数据源 NineData GaiaDB

分享6个当下最受欢迎的 Vue UI 库

伤感汤姆布利柏

网络技术探析:SDN、SD-WAN、CDN和SDH的关联与演进

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

6个受欢迎的 Angular 库

伤感汤姆布利柏

即时通讯技术文集(第33期):IM开发综合技术合集(Part6) [共12篇]

JackJiang

网络编程 即时通讯 IM

Google Adsense探索系列_第二弹(成功通过审核)

fkys

网站 Google 审核 adsense

2024年API经济的十大预测

幂简集成

API API经济

不懂技术也能轻松搭建网站!美国虚拟主机的简易指南!

一只扑棱蛾子

虚拟主机 美国虚拟主机

低代码平台源代码交付的重要性

互联网工科生

源码 软件开发 低代码

跨越千年医学对话:用AI技术解锁中医古籍知识,构建能够精准问答的智能语言模型,成就专业级古籍解读助手(LLAMA)

汀丶人工智能

人工智能 自然语言处理 LLM 医疗大模型

万界星空科技电子机电行业MES系统,2000元/年起

万界星空科技

制造业 mes 电子 电子mes 电子行业

深耕人工智能技术创新,天翼云荣获AAAI 2024竞赛冠军

编程猫

专精特新“广东造” | 华大北斗:从“芯”出发 挺起产业“脊梁”

江湖老铁

华为云软件开发生产线CodeArts前端DevOps实践

云计算 软件开发 华为云

SD-WAN如何降低运维成本、简化运维工作?

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

听 GPT 讲 client-go 源代码 (12)

fliter

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