За последние 24 часа нас посетили 15158 программистов и 1380 роботов. Сейчас ищут 826 программистов ...

Invalid byte sequence for encoding "UTF8"

Тема в разделе "PHP и базы данных", создана пользователем n1ll_31, 16 авг 2013.

  1. n1ll_31

    n1ll_31 Новичок

    С нами с:
    16 авг 2013
    Сообщения:
    2
    Симпатии:
    0
    Доброго времени суток.
    Задали мне написать программу я легких путей не стал искать и писать программу на (Delphi или C) а от незнания решил написать программу на AS3 заодно по ходу изучать.
    Замутил с нуля на win8 "Flash(as3-cs5.5)" на другой машине winxp "Apach(2.2.25) + PHP(5.3.1) + PostgreSQL(9.1)"

    Конечно читать я умею да и гуглить тоже, но тут уперся рогами об кодировку. Много чего пробовал но увы =(

    Запрос полностью на английском работает,
    присваиваем значение переменной $sotr_start на Русскоязычное и все сушим весла.

    Помогите люди добрые, как это исправить?
    Может есть альтернативные методы или способы?


    Код (Text):
    1. <?php
    2. header('Content-Type: text/html; charset=utf-8');
    3.  
    4. //---------------------------------------------------------
    5. //  функци вывода ошибок если они есть
    6. error_reporting(E_ALL | E_STRICT) ;
    7. ini_set('display_errors', 'On');
    8. //---------------------------------------------------------
    9.  
    10. if($connect = pg_pconnect("host=localhost port=5432 dbname=postgres user=postgres password=sql")) //Подключение к PostgreSQL
    11. {
    12.     echo "Connected \n";
    13.     echo pg_client_encoding($connect);
    14.  
    15.     $sotr_start = 'Cтас';
    16.     if($result = pg_query($connect, "INSERT INTO asd (sotr_start) VALUES ('$sotr_start')"))
    17.     {
    18.         echo "complete \n";
    19.     }
    20.     else echo "Do not complet \n";
    21. }
    22. else die("Do not connect =): ". pg_error());
    23.  
    24. echo("End");
    25. pg_close($connect);
    26. ?>
    Флешка возвращает.

    Connected
    UTF8
    Warning: pg_query(): Query failed: ERROR: invalid byte sequence for encoding "UTF8": 0xf2e0f127 in F:\htdocs\PostgreSQL\insert.php on line 19
    Do not complit
    End
     
  2. n1ll_31

    n1ll_31 Новичок

    С нами с:
    16 авг 2013
    Сообщения:
    2
    Симпатии:
    0
    Ура \(^_^)/ решение часто приходит при объяснении =)

    Надеюсь кому-то поможет.
    $sql = iconv('cp1251', 'utf-8', $sql_str);

    Код (Text):
    1.     $sotr_start = 'стас';
    2.     $sql_str = "INSERT INTO asd (sotr_start) VALUES ('$sotr_start')";
    3.  
    4.     $sql = iconv('cp1251', 'utf-8', $sql_str);
    5.  
    6.     echo "$sql_str + \n";
    7.     echo "$sql + \n";
    Connected
    INSERT INTO asd (sotr_start) VALUES ('ñòàñ') +
    INSERT INTO asd (sotr_start) VALUES ('стас') +
    complete
    End