我正在尝试运行一个在删除变音符号的函数内部使用的 ruby 脚本:
def remove_diacritics(text)
return text.tr!(
"ÀÁÂÃÄÅàáâãäåĀāĂ㥹ÇçĆćĈĉĊċČčÐðĎďĐđÈÉÊËèéêëĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħÌÍÎÏìíîïĨĩĪīĬĭĮįİıĴĵĶķĸĹĺĻļĽľĿŀŁłÑñŃńŅņŇňʼnŊŋÒÓÔÕÖØòóôõöøŌōŎŏŐőŔŕŖŗŘřŚśŜŝŞşŠšſŢţŤťŦŧÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųŴŵÝýÿŶŷŸŹźŻżŽž",
"AAAAAAaaaaaaAaAaAaCcCcCcCcCcDdDdDdEEEEeeeeEeEeEeEeEeGgGgGgGgHhHhIIIIiiiiIiIiIiIiIiJjKkkLlLlLlLlLlNnNnNnNnnNnOOOOOOooooooOoOoOoRrRrRrSsSsSsSssTtTtTtUUUUuuuuUuUuUuUuUuUuWwYyyYyYZzZzZz")
end
我一# encoding: utf-8
开始就有魔力,但我有一些奇怪的行为。它适用于 Mac,但是当我将完全相同的文件复制到 Raspberry Pi 时,我收到此错误:
remove_diacritics.rb:28:in `tr!': 不兼容的字符编码:US-ASCII 和 UTF-8 (Encoding::CompatibilityError)
这似乎是帮助论坛中的经典之作。令人着迷的是,它确实在一台机器上工作,而在另一台机器上却不行,即使 Ruby 的版本完全相同,ruby 1.9.3p286(2012-10-12 修订版 37165)。
有什么建议么?