Датские персонажи заменены вопросительным знаком

Я хочу удалить вопросительные знаки из этой строки, которая находится на датском языке.

...mest i betydningen moralsk ford rvelse eller bestikkelighed, men ogs  i... 

Я попробовал utf8_encode() которые возвращают следующее:

 ...mest i betydningen moralsk ford�rvelse eller bestikkelighed, men ogs� i... 

Первая строка – это ответ, который я получаю в XML в веб-службе. Есть ли способ исправить это с моей стороны?

Related of "Датские персонажи заменены вопросительным знаком"

Вы можете использовать

 header('Content-type: text/html; charset=utf-8'); 

для установки кодировки символов в UTF-8 на вашей странице.

Помимо того, что вы указываете браузеру, что используете UTF-8, добавьте его в свой код:

 <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <!-- rest of code here --> </head> 

Также помните, что это также зависит от того, когда эти данные поступают. Проверьте кодировку базы данных, если она удалена из базы данных.

Лучший способ избежать этой проблемы – использовать UTF-8 для всего веб-сайта, что означает:

  1. Кодируйте файл PHP как UTF-8, это делается вашим редактором / IDE.
  2. Добавьте метатег на страницу, например <meta charset="UTF-8"> для HTML5.
  3. Возможно, самый важный момент: установите кодировку объекта подключения базы данных к UTF-8 перед выполнением запросов, для mysqli вы можете вызвать $mysqli->set_charset('utf8') .

Когда вы будете следовать этим пунктам, вам никогда не придется конвертировать любые данные между различными кодировками. Более подробную информацию и примеры вы найдете в этой небольшой статье UTF-8 для PHP и MySQL .

Прочитайте атрибут encoding XML-файла и используйте эту кодировку, чтобы преобразовать ее в кодировку, используемую вашим сайтом. Если атрибут кодировки отсутствует, по умолчанию используется UTF-8. Если в результате получается форма кодирования, то эта же кодировка используется на вашем веб-сайте, поэтому преобразование не требуется.

 $encoding_read_from_xml = "ISO-8859-1"; $encoding_my_website_uses = "UTF-8"; $xml_content = mb_convert_encoding($xml_content, $encoding_my_website_uses, $encoding_read_from_xml); 

Проверьте кодировку ввода и вывода. В большинстве случаев выбор UTF-8 для обоих – лучший подход.

Если ваш вход находится в ISO-8859-1, используйте utf8_encode() для его кодирования в UTF-8. Если это уже UTF-8, вызов utf8_encode() снова испортит ситуацию.

Чтобы указать вывод как UTF-8, используйте header('Content-type: text/html; charset=utf-8'); в PHP или <meta charset="UTF-8" /> в HTML.

Вы пробовали настроить свой заголовок, как показано ниже ?, У меня была та же проблема, но это очищает вещи

 <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />