Вопросительные знаки вместо букв в своих скриптах

Автор Uhehesh, 24 октября 2011, 13:23:50

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Uhehesh

(SMF 2.0 RC5 UTF8, стандартная тема с SimplePortal; скрипт в кодировке UTF8)
Здравствуйте. У меня возникла проблема: пишу свой скрипт текстовой RPG, он получает данные из модифицированной формы быстрого ответа и парсит.
Дело в том, что у меня есть следующие строчки:

if($postinfo["location"] !== "Орбита") {
    return "You must appear on Орбита. Your location is " . $postinfo["location"];
}

Однако, он выводит (это функция HandlePost, которая вызывается при отправке поста в Post.php, и выводится fatal_error($retval)):
ЦитироватьYou must appear on ??????. Your location is Орбита
(это не смайлики, это шесть вопросительных знаков)

Что мне делать? Я уже думаю над этим целый день, а так ничего и не придумал.

Спасибо заранее

GeorG

Потому что utf.
Проще всего, использовать, языковые файлы. Т.е., делать через языковые переменные в этих файлах.
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

Uhehesh

Спасибо за ответ. Но...

Разве? Это неудобно, учитывая, что для каждой планеты у меня разные локации.
И да, проблема не в выводе, а в вводе - $_POST["location"] уже содержит текст в неверной кодировке, хотя с $_POST["body"] всё OK.
Как я понимаю, нужно починить скрипт, чтобы он принимал location в UTF-8...?

Uhehesh

Стоп. Я чепуху какую-то сказал.
Напротив, с POST всё как раз нормально. Если выводить $_POST["location"], выведет корректно "Орбита". А если вывести просто "Орбита", то появится "??????".
Как это исправить?!

BIOHAZARD

Цитата: Uhehesh от 24 октября 2011, 15:49:33
Стоп. Я чепуху какую-то сказал.
Напротив, с POST всё как раз нормально. Если выводить $_POST["location"], выведет корректно "Орбита". А если вывести просто "Орбита", то появится "??????".
Как это исправить?!
Цитата: GeorG от 24 октября 2011, 13:35:53
Потому что utf.
Проще всего, использовать, языковые файлы. Т.е., делать через языковые переменные в этих файлах.
Мои моды:
  • RedirectPage
  • Counters
  • CustomSearch
  • SypexDumper
   адаптирую темы    1.1.хx<=>2.0задавая вопросы, старайтесь сразу указывать конечную цель, предполагаемый Вами путь не обязательно окажется самым коротким

Любые моды на заказ

Bugo

Добавьте в Modifications.russian-utf8.php все используемые языковые строчки:

$txt['bla-bla-bla'] = 'тут ваш текст';

Внесите соответстствующие изменения в код скрипта:

    if($postinfo["location"] !== $txt['bla-bla-bla']) {
        return $txt['bla-bla-bla_text'] . $postinfo["location"];
    }

Uhehesh

Т.е., слово "Орбита" мне нужно добавить в $txt?
А альтернативного способа нет?

Bugo

Пересохранить все файлы, в которых текст вставлен напрямую, в нужной кодировке (UTF-8 без BOM).

Uhehesh

Цитата: Bugo от 24 октября 2011, 16:34:24
Пересохранить все файлы, в которых текст вставлен напрямую, в нужной кодировке (UTF-8 без BOM).
Спасибо огромное! А я, дурак, сохранял просто в UTF-8.

(Кстати, забавно - полчаса мучался, недоумевал, почему же не работает - оказывается, я вообще редактировал не тот файл вначале.)