Я генерирую текст в php, используя imagettftext. текст извлекается из базы данных mysql. некоторые символы не отображаются в визуализированном тексте, несмотря на то, что они находятся в символьной карте шрифта и отображаются в базе данных. например, m-тире (-) и smartquotes / apostrophes ("" ').
символы либо не отображаются, либо заменяются вопросительными знаками.
я подозреваю, что это связано с кодировкой, но я не знаю достаточно о кодировании, чтобы знать, с чего начать. Любая помощь приветствуется.
Попробуйте использовать htmlentityencode
в тексте, прежде чем передавать его функции.
Текстовая строка в кодировке UTF-8.
Может включать десятичные числовые символьные ссылки (формы:
€
) для доступа к символам шрифта за пределами позиции 127. Поддерживается шестнадцатеричный формат (например,©
). Строки в кодировке UTF-8 могут передаваться напрямую.Именованные объекты, такие как
©
, не поддерживаются. Рассмотрите возможность использования html_entity_decode () для декодирования этих именованных объектов в строки UTF-8 (html_entity_decode () поддерживает это с PHP 5.0.0).Если символ используется в строке, которая не поддерживается шрифтом, полый прямоугольник заменит символ.
Источник: http://www.php.net/manual/en/function.imagettftext.php