写点什么

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

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

关注

评论

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

2025新规:歇业、整改、罚款!——只因忽略一件事

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

1688图片搜索API秘籍!轻松获取相似商品数据

Datafox(数据狐)

1688图片搜索接口 1688图片识别接口 1688图搜API 1688拍立淘api 1688按图搜索接口

数字孪生项目开发框架与特点

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

数字孪生 软件外包公司 webgl开发

1688商品评论API:轻松挑选优质商品的利器

Datafox(数据狐)

1688商品评论API 1688评论API 1688评论数据 1688评论采集

I2:产品运营大树

执于业务

数字孪生项目开发技术栈

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

数字孪生 软件外包公司 webgl开发

BeeWorks企业即时通讯软件怎么样?

BeeWorks

即时通讯 IM 私有化部署

智源具身框架Thor开源:迈向类人级全身控制,让机器人在强对抗中“站稳脚跟”

智源研究院

TiDB v7.1.8 多语法兼容MySQL 多场景验证

TiDB 社区干货传送门

测试 数据库迁移 国产化替代 7.x 实践 平凯数据库敏捷模式

开源能源管理系统的标杆之作——深度解析MyEMS的技术优势与应用价值

开源能源管理系统

开源 能源管理系统

数据源决定成败:深度剖析海外舆情工具的数据覆盖与准确性

沃观Wovision

舆情监测系统 海外舆情平台

企业的“数字安全基建”——等保测评,为未来“扫雷”

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

基于 Code 开源版二次开发流程:DDD 架构落地用户模型管理全流程

王中阳Go

DDD

ClkLog埋点分析系统:快速实现用户行为数据采集与分析

ClkLog

开源 数据分析 埋点 sdk 画像

第四期共读《斯坦福大学人生设计课》

ShineScrum

读书感悟 读书方式 #读书

亿级O2O(智能设备)系统架构笔记【原创】

车江毅

架构规划 技术战略规划 百万设备在线 亿级订单 o2o

如何利用境外舆情网站分析与应对公关事件

沃观Wovision

舆情监测 舆情监测系统 海外舆情监测 舆情监测网站

PCTA认证-101课程学习笔记

TiDB 社区干货传送门

学习&认证&课程

破壁OLTP与OLAP:TiDB如何用“双引擎”与“异步魔法”重塑数据库架构!

TiDB 社区干货传送门

OLAP 金融 OLTP HTAP 国产化替代

数字孪生项目的开发

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

数字孪生 软件外包公司 webgl开发

五款远程控制软件盘点排名:我们应该选择哪一款?

科技经济

中小企业如何选择最合适的出海舆情监测网站

沃观Wovision

海外舆情监测 舆情监测网站 出海舆情

人工智能AI在行业的应用和技术方案

金陵老街

人工智能 AI 大模型

从“拦路虎”到“修路工”:基于AhaEdit的广告素材修复

快手技术

人工智能 技术 大模型 广告审核

CAD图纸如何测量?详细操作集锦来了

在路上

cad

让 ETL 更懂语义:DataWorks 支持数据集成 AI 辅助处理能力

阿里云大数据AI技术

人工智能 阿里云 AI辅助 Dataworks

算电协同,商汤大装置为AI基础设施“降碳提智”提供新范式

Lily

TiDB 企业版敏捷模式试用:政企实战场景体验

TiDB 社区干货传送门

社区活动 TEM 试用 平凯数据库敏捷模式

企业必读:等保测评的几个误区——你的信息真的安全吗?

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

MyEMS:智能化能源管理的创新实践者

开源能源管理系统

开源 能源管理系统

从需求到落地:MyEMS赋能企业开源能源管理的实战指南

开源能源管理系统

开源 能源管理系统

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