ruby - Rails web 开发人员什么时候需要开始担心字符编码?

标签 ruby encoding character-encoding

我是一名主要使用 Ruby(和 Rails)和 C# 的网络开发人员。

我目前正在阅读“The Ruby Programming Language”,其中有 Matz 的输入和“_Why the lucky stiff”的绘图,以加深我对 Ruby 真正工作原理的了解。

关于字符串的章节讲了很多关于编码、多字节字符等的内容,我似乎记得 Joel Spolsky 在博客上写了关于每个开发人员应该如何了解编码的内容。但是,您什么时候真正开始看到它的影响?

例如,在最初的 Rails 截屏视频中,没有 20 分钟的编码介绍,但一些开发人员表示这是至关重要的知识。

那么您需要知道多少以及什么时候知道?

最佳答案

在我那个时代,我们根本不在乎。一切都是文字。然后随着他们的 ASCII 扩展出现了微软,接下来我们知道一切都变得糟糕了。 :-) 嘿你微软,离开我的草坪!

不幸的是,在当今的互联网和网络世界中,从创建的第一行代码或文本内容开始考虑它很重要。

当您的站点生成输出时,您有优势,可以确保所有源代码、文本和模板都使用 UTF-8 编码。

如果您通过解析或抓取来摄取其他人的内容,那么您的任务会变得更加困难,因为网络服务器喜欢在发送给您的内容上撒谎,甚至 HTML 页面也喜欢撒谎,而且很难相信, XML 页面会撒谎,尽管它们不应该这样。因此,当您检测到“外部”代码集中的字符时,您的代码必须具有很强的防御性并准备好进行多字节编码。您可能需要跳过几个步骤才能转换回您选择的 UTF-8 编码,这是我的建议,或者 ISO1859-1、CP1252 或其他任何编码。确保您正在使用 rescue block 并测试、测试、测试您是否想让您的系统坚固和防弹。

这是我的建议,基于一些来之不易的知识,用 Perl 和 Ruby 编写了许多爬虫。

关于ruby - Rails web 开发人员什么时候需要开始担心字符编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5783613/

相关文章:

ruby-on-rails - 选择具有外键的关联模型

ruby - 我可以禁用 ruby​​ 记录器的日志 header 吗?

java - 如何检测Unix终端字符编码?

c++ - C++ 对字 rune 字的顺序有什么保证?

ruby-on-rails - 解析逗号分隔值

ruby-on-rails - 将两个数组与前置组合

html - Url 编码和 HTML 编码的区别

c# - SQL Server 上的编码问题

javascript - Node.js 未对 HTTP 响应 header 使用 ISO-8859-1 编码

Hibernate/JPA import.sql utf8 字符损坏