Ответ 1
Усвоенное предположение: у вас есть закодированный знак ISO-8859-1 в кодировке UTF-8.
Убедитесь, что ваши данные находятся в правильной кодировке, и все будет нормально работать.
Я пытаюсь отобразить символ фунта в HTML (от PHP), но все, что я получаю, это символ с вопросительным знаком.
Ниже перечислены вещи, которые я пробовал.
В PHP:
header('Content-type: text/html; charset=utf-8');
В HTML поместите это в главный тег:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Я попытался отобразить его с помощью функции javascript, которая преобразует его в:
&#65533;
Я полагаю, это помогло бы, если бы я знал, что я делаю... но я догадываюсь, почему я задаю этот вопрос:)
Усвоенное предположение: у вас есть закодированный знак ISO-8859-1 в кодировке UTF-8.
Убедитесь, что ваши данные находятся в правильной кодировке, и все будет нормально работать.
Используйте £
. У меня была та же проблема и я решил использовать jQuery:
$(this).text('&#163;');
$(this).html('&#163;');
1-й: символ фунта является "специальным" char в кодировке utf8 (попробуйте сохранить £ $в файле iso-8859-1 (или iso-8859-15), и вы получите ä при кодировании с использованием заголовка)
2nd: измените вашу кодировку на utf8, создав файл. есть много способов сделать это. блокнот и блокнот ++ - великие суффиксы.
3rd: используйте ob_start(); (в php) ПЕРЕД ВАМИ ВЫЙТИ ЛЮБОЙ ВЫХОД, если вы получаете странные ошибки кодирования, например, иногда пропускать кодировку. и ДА, это решает! такие ошибки возникают, когда страница кодируется в windows-1252 (ANSI), ASCII, iso-8859-1 (5), а затем у вас есть все остальные в utf8. это ужасная ошибка и может вызвать такие странные вещи, как session_start(); не работает.
4th: другие php-решения:
utf8_encode('£');
htmlentities('£');
echo '&pound;';
5: решения для javascript:
document.getElementById('id_goes_here').innerText.replace('£','&pound;');
document.getElementById('id_goes_here').innerText.replace('£',"\u00A3");
$(this).html().replace('£','&pound;'); //jquery
$(this).html().replace('£',"\u00A3"); //jquery
String.fromCharCode('163');
вы ДОЛЖНЫ отправить £, поэтому он восстановит сломанную кодированную кодовую точку. пожалуйста, избегайте этих решений! используйте php! эти решения показывают только, как "исправить" ошибку, а последний - только для создания хорошо закодированного char.
Попробовали ли вы отобразить £
?
Здесь является подавляющим списком.
Вы можете попробовать использовать £
или £
вместо того, чтобы вставлять символ напрямую; если вы вставляете его напрямую, вы, скорее всего, столкнетесь с проблемами кодирования, в которых ваш редактор сохраняет файл, это ISO-8859-1, но он интерпретируется как UTF-8 или наоборот.
Если вы хотите встроить его (или другие символы Юникода) напрямую, убедитесь, что вы действительно сохранили свой файл как UTF-8, и установите кодировку так же, как в заголовке Content-Type
. Убедитесь, что при получении файла с сервера заголовок присутствует и исправлен, а файл не был перекодирован веб-сервером.
Или для других эквивалентов кода попробуйте:
£
£
Вам нужно сохранить файл PHP script в кодировке UTF-8 и оставить <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
в HTML.
Для текстового редактора я рекомендую Notepad ++, поскольку он может обнаруживать и отображать фактическую кодировку файла (в нижнем правом углу редактор), и вы также можете преобразовать его.
Это работает во всех хром, IE, Firefox.
В поле База данных > таблицa > введите тип поля, например, установите столбец символов TO varchar(2) utf8_bin
php-код:
$symbol = '£';
echo mb_convert_encoding($symbol, 'UTF-8', 'HTML-ENTITIES');
or
html_entity_decode($symbol, ENT_NOQUOTES, 'UTF-8');
И также убедитесь, что кодировка HTML или XML кодируется = "UTF-8"
Примечание: Вы должны убедиться, что база данных, тип документа и код php имеют одинаковую кодировку
Как бы лучшее решение не использовало £