2015-02-11 92 views
0

林连接到与人物返回消息的外部APIAPI产生奇怪的字符

响应:

<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> 

它在丹麦,但你可以看到的字符存在的两倍

如何我逃避了这个?

+0

你能告诉我们更多的代码,比如API调用吗? – dgilperez 2015-02-11 13:32:09

+0

已更新的代码与完整回复 – Tarlen 2015-02-11 13:33:37

+0

可能重复[什么是 ?](http://stackoverflow.com/questions/1459170/what-is-13) – dgilperez 2015-02-11 13:46:20

回答

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" 
0

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

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