Симптом понятен: вы (случайно) сплайсируете содержимое UTF-8 (судя по вашему тегу) во что-то, что представлено как что-то еще (не-UTF-8), следовательно, происходит mojibake.
Убедитесь, что каждый проход содержимого проходит через UTF-8, очищает или сохраняет исходное содержимое байт-байт точно. Это включает настройку заголовков Content-type соответственно (Вероятность: text/html; charset=utf-8
).
Настоящая проблема заключается в том, почему рекомендуется использовать UTF-8 для всего, что есть. Настройте свои базы данных для использования UTF-8, настройте свой веб-сервер для обслуживания UTF-8, настройте исходный код в UTF-8, настройте ваши редакторы для сохранения в UTF-8 по умолчанию, настройте свои HTTP-заголовки и метатеги для рекламы UTF-8, не принимайте ничего, что не является UTF-8, или перекодируйте его там, где это возможно. Все, что не является UTF-8, просто требует неприятностей.
Зачем стандартизировать UTF-8, спросите вы? Поскольку это низкий 7-битный диапазон, похоже, выглядит как ASCII, который может создать целый мир различий в функциональной совместимости со сломанными/устаревшими вещами, которые на самом деле не понимают многое другое.
У меня есть шаблон (нефрит), угловой скрипт, пользовательский файл ввода и узел nodejs/expressjs. Все файлы в кодировке UTF-8. – name