How to convert case of French Characters
我必须把Québec中的案例转换为Québec,但不能这样做。有人能指导我吗?在我的规范文件中,我包括:
1
| require 'unicode_utils/upcase' |
然后我做到了:
1
| p UnicodeUtils.upcase("Québec", :fr) |
并在运行时得到以下参数错误:
1
| wrong number of arguments (0 or 1+) |
我甚至试着把nil作为第二个论点,但还是犯了同样的错误。我错过了什么?我从这个问题中得到了一些参考。
1 2 3 4 5 6
| $ gem install unicode_utils
$ irb
> require 'unicode_utils'
=> true
> UnicodeUtils.downcase("FEN B?L?MLER?", :tr)
=>"fen bilimleri" |
- 它对我有用。我发布了一个答案,假设你的要求是错误的,但也不是这样。您的错误消息是否明确地引用了您发布的行?v1.4.0中的.upcase方法取两个参数,而不是1+。
- 是的,它说"failure/error:p unicodeutils.upcase("qu&233;bec",:fr)argument error:wrong number of arguments(0 or 1+)"……除了unicode-utils-gem之外还需要安装什么吗?
- 第二个参数":fr"正确吗?
- 也为我工作。是否使用实际版本的unicode_utils(1.4.0)?
- 是的,我做到了。另一个观察:当我在控制台中复制unicodeutils.upcase("qu&233;bec",:fr)行时,将复制以下内容:unicodeutils.upcase("quu+ff3u+ffa9bec",:fr),并点击enter返回"qu bec"(在u之后加上缺失的重音&201)。知道这个字符串指的是什么吗?
- 这是剪切粘贴行为错误,测试没有任何问题。如果我将问题剪切并粘贴到Mac上的IRB,我会得到同样的错误。当我说"它对我有用"时,我的意思是我已经使用了问题中的代码,我得到了输出"QUÉBEC",参数:fr是正确的。请确认您的文件编码,并确认您在文件顶部使用了正确的Ruby编码—例如,请参阅stackoverflow.com/questions/8879237/…
- 非常感谢尼尔!是的,现在对我也有用。实际上,我正在使用Calabash iOS和RSPEC框架来自动化我们的iOS应用程序测试。在我的规范文件中,我需要"规范助手"和"葫芦黄瓜"。当我运行上面的示例时,得到的参数数目是错误的。但是,当我对"Require'spec_helper"一行进行评论时,我得到了正确的大小写转换输出:"qu&201;bec"。真奇怪!!不确定是否在unicodeutils.upcase.rb之外的任何地方定义了另一个upcase()方法。当我转到声明时,它只显示一个upcase方法
- 我能不能确认一下?
你可以使用
"Québec".mb_chars.upcase=>魁北克
对于非ASCII字符。
谢谢。