可能重复:
如何在 Ruby 中将字符串从 windows-1252 转换为 utf-8?
如何将 utf8 字符转换为 iso8859-1
所以这是我的问题。我的工具分布在我的内部 LAN 中,我的外部 Web 服务器为内部 LAN 提供作业/数据。结果,我经常传递我宁愿窥探人们没有看到的数据。换句话说,如果有人看到我的 SQL 字符串,这不是世界末日,但我宁愿他们没有。我知道,这就像滑动玻璃门上的门闩。它不会让任何人真正下定决心,但它应该阻止随机好奇的脚本小子。
所以我有一组用 PHP 编写的简单密码。最近我确定我的工具集的下一个扩展需要使用 Ruby,但这些新工具需要与我之前构建的 PHP 工具集进行通信——我不想重新构建所有 PHP 工具。所以我需要我的 PHP 密码被我的 Ruby 代码完全复制,这样当 Ruby 加密一个字符串时,我的 PHP 工具会对其进行解密,然后将加密的字符串传回给我的 Ruby 工具进行解密。
我的简单密码只是修改后的凯撒密码。凯撒密码(对于那些不熟悉这个名字的人)是将所有字符移动一个已知数量的字母 - 即移动 3 将 A 变为 D,B 变为 E,C 变为 F,等等。真正的凯撒密码将需要包装,以便 3 的移位会将 Z 转换为 C。但是,我的并没有这样做,它只是将 3 添加到 Z 并使用 PHP 中的 utf8_encode 和 utf8_decode 函数。
现在我需要 Ruby 中的等价物。我以为我在
str.encode('utf-8')
但这会返回此错误
未定义的方法“编码”#
我的谷歌搜索表明,出于某种原因,Ruby 中没有单一的解决方案。在将字符串编码为 UTF-8 之前,Ruby 需要知道字符串的当前编码。至少我是这样理解这个问题的。
因此传入的字符串将是 Ruby 1.8.7 默认的字符串。(如果这很有用......我正在使用 Ubuntu 12.04 桌面,美国,英语,我想我使用 apt-get 和默认存储库抓取了 Ruby。)我需要各种字符串,如 SQL 查询语句 - “SELECT *从表 WHERE id = ?” 和 PHP 的 md5() 输出产生的字符串。其他所有字符串都应属于美国英语中的大写字母、小写字母和数字类别。
谢谢