Я хочу удалить вопросительные знаки из этой строки, которая находится на датском языке.
...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 в веб-службе. Есть ли способ исправить это с моей стороны?
Вы можете использовать
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 для всего веб-сайта, что означает:
<meta charset="UTF-8">
для HTML5. $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" />