У меня есть вопрос! Я хочу напечатать строку unicode в php (например, «سلام»)! но когда я использую эхо только некоторые ??? !!! появляться
что я могу сделать ??? Это происходит, когда я хочу, чтобы ch-строка была получена из базы данных!
echo 'سلام';
результат:
????
Я попытался использовать функцию заголовка, но это не помогло мне!
Вам нужно сделать три вещи:
SET NAMES 'utf8'
перед выбором записей. Content-type
(например) text/html; charset=utf-8
text/html; charset=utf-8
. Конечно, замените «UTF-8» любой кодировкой, которая вам нужна, которая поддерживает нужные вам символы. Нет необходимости изменять таблицы базы данных (за исключением возможного прироста производительности). Возможно, вам придется изменить HTML-шаблоны и т. Д., Если вы решите использовать UTF-16 или что-то еще, что не является (в основном) ASCII-совместимым.
Вам нужно объявить используемую кодировку символов в ответе HTTP. Вы можете использовать функцию header
:
header('Content-Type: text/html;charset=utf-8');
С этим объявлением считается HTML с кодировкой символов UTF-8. Обратите внимание: вы не можете использовать header
когда вы уже отправили данные клиенту без его буферизации. Поэтому либо используйте выходной контроллер для буферизации вывода, чтобы вы могли изменить заголовок, хотя уже был какой-то вывод или использовать header
перед любым выходом.
Может быть, я слишком поздно, но это сработало для меня:
echo utf8_encode('سلام');