diff --git a/dns/dyndns/src/etc/inc/plugins.inc.d/dyndns/phpDynDNS.inc b/dns/dyndns/src/etc/inc/plugins.inc.d/dyndns/phpDynDNS.inc index d7b5582cf..143929ec8 100644 --- a/dns/dyndns/src/etc/inc/plugins.inc.d/dyndns/phpDynDNS.inc +++ b/dns/dyndns/src/etc/inc/plugins.inc.d/dyndns/phpDynDNS.inc @@ -1499,7 +1499,8 @@ class updatedns } break; case 'namecheap': - $tmp = str_replace("^M", "", $data); + /* technically this is wrong but proves a point about the document being broken remotely */ + $tmp = preg_replace('/(\<\?xml[^?]+?encoding=.?)utf-16([^?]+?\?\>)/i', '$1utf-8$2', $data); $ncresponse = simplexml_load_string($tmp); if (preg_match("/internal server error/i", $data)) { $status = "Dynamic DNS: (Error) Server side error.";