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