1

我想选择具有text="Côte d'Ivoire"的下拉菜单。

ie.select_list(:id, "name01").select("#{text}")

我试过这些代码,

1.encoding: UTF-8 #not working

2.text.force_encoding("ASCII-8BIT").encode('UTF-8', undef: :replace, replace:'') #text=Cte d'Ivoire

我该怎么办? 我也想将此文本保存到我的数据库中。请帮忙。

4

2 回答 2

0

我希望您的解决方案能够正常工作,除非您用于保存/执行文件的软件覆盖了设置。我记得 NetBeans 有这个问题。

如果您无法修复实际编码,另一种方法是使用正则表达式来匹配标准字符。

text = /C.te d'Ivoire/
browser.select_list.select(text)

正则表达式已将所有重音字符替换为..

不是一个很好的解决方案,但如果没有其他方法,也许是一个解决方案。

于 2013-08-16T20:32:51.873 回答
0

如果您知道字符串是 UTF-8 编码的,为什么不强制编码为 UTF-8?

#encoding: ASCII-8BIT
str = "C\xC3\xB4te d'Ivoire" # => "C\xC3\xB4te d'Ivoire"
str.encoding # => #<Encoding:ASCII-8BIT>

str.force_encoding('UTF-8')
str # => "Côte d'Ivoire"
str.encoding # => #<Encoding:UTF-8>

如果您Côte d'Ivoire在 Ruby 源文件中的任何位置使用文字,请务必添加

#encoding: UTF-8

作为文件的第一行,告诉 Ruby 该文件是 UTF-8 编码的。

于 2013-08-15T16:46:27.857 回答