2015-02-11 120 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或者可能因此保留它,因爲它不會造成任何傷害。