使用ruby win葡萄牙语和重音符号从Google Dictionary API获取答案

问题描述

我正在尝试使用ruby从Google Dictionary API获取结果。它适用于非重音字符,但不适用于重音字符(即,如果您直接在浏览器的地址栏中输入网址)。 如果您使用的是chrome浏览器,则无论是带有重音还是没有重音都可以得到很好的答案。 我已经跳过了URI解析器无法使用以下代码将URL与重音符号链接的问题

DOMNode

我得到一个空的响应,而使用浏览器时我得到了正确的响应。

有人可以建议一些解决方法吗?我在做什么错了?

解决方法

我没有深入addressable宝石内部。

但这是一个URIJSON的有效示例:

require "net/http"
require "json"
begin
    uri = URI.parse(URI.encode('https://api.dictionaryapi.dev/api/v2/entries/pt-BR/há'))
    p uri
rescue => error
    p error
end

 response = Net::HTTP.get(uri)
 p JSON.parse(response)
 => 
 [
  {
   "word"=>"ha","phonetics"=>[{}],"meanings"=>[
     {
       "partOfSpeech"=>"undefined","definitions"=>[{"definition"=>"símb. de HECTARE.","synonyms"=>[],"antonyms"=>[]}]}
    ]
  },{
    "word"=>"hã","origin"=>"⊙ ETIM voc.onom.","meanings"=>[
      {
        "partOfSpeech"=>"interjeição","definitions"=>[
          {
            "definition"=>"expressa reflexão,esclarecimento,admiração.","antonyms"=>[]
          }
        ]
      }
    ]
  }
]
,

感谢您提供所有到目前为止的答案,但是问题似乎出在API(不再由Google维护)上。 在上一个示例中,“hà”一词被转换为“ ha”,即删除了重音并且失去了语义,这是怎么回事。

我会尝试另一种方式。