API会产生奇怪的字符

时间:2015-02-11 13:26:07

标签: ruby-on-rails ruby xml

我连接到外部API,返回带有字符

的消息

响应:

<daoapi>
  <status>FEJL</status>
  <fejlkode>520</fejlkode>
  <fejltekst>Fejl ved opslag: Der er fejl i input parametre:&#13;
Husnummer mangler eller er ikke numerisk&#13;
</fejltekst>
</daoapi>

它是丹麦语,但你可以看到两次出现的角色

我怎么能逃避这个?

2 个答案:

答案 0 :(得分:2)

您应该使用Nokogiri解析XML响应,它会处理实体转换。

require 'nokogiri'

response = <<-XML
<daoapi>
  <status>FEJL</status>
  <fejlkode>520</fejlkode>
  <fejltekst>Fejl ved opslag: Der er fejl i input parametre:&#13;
Husnummer mangler eller er ikke numerisk&#13;
</fejltekst>
</daoapi>
XML

doc = Nokogiri::XML(response)
doc.at_xpath('//fejltekst').text
#=> "Fejl ved opslag: Der er fejl i input parametre:\r\nHusnummer mangler eller er ikke numerisk\r\n"

答案 1 :(得分:0)

这不是奇怪的字符,而是可以解释为回车符的ASCII编码字符。检查AsciiTable或任何其他参考。

您可以对输出进行重新编码,将其更改为\nhtml entity或者可能会保留该输出,因为它不会造成任何伤害。