Файл.mo в кодировке utf-8 не работает с выделенными словами на сервере linux

Я переводил веб-сайт, и все работало нормально, но когда я помещал файлы на онлайн-сервер (linux), перевод работал, но акцентированные буквы на испанском выглядят так: кто-нибудь знает, как я могу это исправить?

3 ответа

Если вы используете PHP, вам, вероятно, нужно добавить функцию bind_textdomain_codeset, чтобы сообщить системе, что ваш mo-файл возвращает UTF-8 (или что-то, что вы указали в PO-файле). Так что вот так должно подвох

$language = 'de_DE';
bindtextdomain($language, APP_ROOT.'locale'); // Define domain
textdomain($language); // Choose domain, translation is looking for in locale/de_DE/LC_MESSAGES/de_DE.mo now
bind_textdomain_codeset($language, 'UTF-8'); // Tell the system out MO files will return UTF8

Кажется, у меня та же проблема. Не удается разрешить символы.

У меня правильно установлена ​​кодировка в верхней части моего html (utf-8), и файл.po также находится в utf-8. Я попробовал команду bind_textdomain_codeset, но не сработал.

Сервер Linux.

[Решено]

Добавление этой строки: bind_textdomain_codeset("по умолчанию", "utf-8");

обратите внимание на значение по умолчанию вместо языкового домена. Интересно, почему..

Появился как like где? Если он находится на веб-странице, вам нужно убедиться, что перевод находится в том же наборе символов, что и остальная часть HTML, и что этот набор символов правильно отмечен сверху.

Другие вопросы по тегам