ФорумПрограммированиеPHP для идиотов → Кодировка

Кодировка

  • igorpromen2009

    Сообщения: 3 Репутация: N Группа: Кто попало

    Spritz 10 февраля 2014 г. 12:56

    Парни, здорово! Никогда не загонялся кодировками, работал в cp1251, время от времени конвертируя строки при работе с ajax. И тут столкнулся с такой штукой (прошу не пинать):
    простенький скрипт для транслитерации на выходе дает кракозяблы:

    Особенности:
    1.Кодировки файлов: utf-8
    2. iconv_set_encoding("input_encoding", "UTF-8");
    iconv_set_encoding("output_encoding", "UTF-8");
    iconv_set_encoding("internal_encoding", "UTF-8");
    3.htaccess: addDefaultCharset UTF-8

    Пример кода:
    function translit($st)
    {
    $st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ_ ",
    "abvgdeeziyklmnoprstufh-iei-");
    $st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ /",
    "ABVGDEEZIYKLMNOPRSTUFH-IEI-");

    return $st;
    }

    //используем функцию
    echo translit('русское слово');//здесь на выходе кракозяблики

    спасибо, что поняли правильно
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 11 февраля 2014 г. 6:25, спустя 17 часов 26 минут 25 секунд

    @Sinkler, вот так лучше будет - Google [google.com] ))

    Спустя 13 сек.

    И почему у нас ссылки не парсятся?

    Высокоуровневое абстрактное говно
  • igorpromen2009

    Сообщения: 3 Репутация: N Группа: Кто попало

    Spritz 11 февраля 2014 г. 16:16, спустя 9 часов 50 минут 41 секунду

    Спасибо!
    Вот мое решение проблемы:
    function trans($st)
    {
    $st = mb_strtolower($st,'UTF-8');
    $from = array(
    'а','б','в','г','д','е','ё',
    'ж','з','и','й','к','л','м',
    'н','о','п','р','с','т','у',
    'ф','х','ц','ч','ш','щ','ь',
    'ы','ъ','э','ю','я'
    );

    $to = array(
    'a','b','v','g','d','e','yo',
    'zh','z','i','y','k','l','m',
    'n','o','p','r','s','t','u',
    'f','h','ts','ch','sh','shch','',
    'i','','e','yu','ya',
    );
    //удаляем всякий мусор
    $st = str_replace(array(".",",","!","?",":"),"",$st);
    return str_replace($from, $to, $st);
    }
  • Sinkler

    Сообщения: 8083 Репутация: N Группа: в ухо

    Spritz 11 февраля 2014 г. 16:27, спустя 11 минут 5 секунд

    мусор лучше регуляркой удалять

  • DenFunk

    Сообщения: 124 Репутация: N Группа: Адекваты

    Spritz 12 февраля 2014 г. 1:33, спустя 9 часов 6 минут 21 секунду

    **@Sinkler**, вот так лучше будет - https://www.google.com/?q=how+do+i+do+a+strtr+on+utf-8+in+php ))

    @Stasovsky, кошерный вариант?)))
    Мир принадлежит терпеливым

Пожалуйста, авторизуйтесь, чтобы написать комментарий!