За последние 24 часа нас посетил 51691 программист и 1760 роботов. Сейчас ищет 851 программист ...

PHP конвертор кодировки в следующий вид

Тема в разделе "PHP для новичков", создана пользователем SONY, 5 авг 2009.

  1. SONY

    SONY Активный пользователь

    С нами с:
    5 авг 2009
    Сообщения:
    24
    Симпатии:
    0
    Имеется проблема, которую нужно решить. Только я не знаю как и чем.

    к примеру
    PHP:
    1.  
    2. <?php
    3. $a="Слово"; //есть переменная без разницы какая кодировка utf или -1251
    4.  
    5. /*Нужно занести её в базу данных MySQL в закодированном виде ANSI
    6. иными словами необходимо из содержимой переменной сделать такое */
    7.  
    8. $b="Слово"; // это тоже самое что переменная а ,только содержимое стало в кодировке ANSI
    9. ?>
    10.  
    Как решить такую проблему ?
    вообщем суть такова
    открываем PHP страничку там форма с текстовым полем, туда вводим нормальный текст и получаем такой закодированный.
    И такой закодированный пихаю в нужную ячейку БД

    Заранее спасибо



    для тех кто не совсем понял что мне нужно я вожу в форме на сайте слово на рууском языке
    оно преобразуется в странный вид и хранится в базе в таком странном виде.
    Мне так нужно.

    [​IMG]
     
  2. kostyl

    kostyl Guest

    SONY
    Скорее всего вам нужно сразу после соединения с базой перед записью установить кодировку соединения 'SET CHARSET "имя нужной кодировки в формате mysql"'. А вообще на будущее рекомендую все делать в одной кодировке, например UTF-8. Для этого нужно все сохранят(фалы php, шаблоны, делать страницы с кодировкой utf-8) в ней и делать такой запроса с utf8.
     
  3. SONY

    SONY Активный пользователь

    С нами с:
    5 авг 2009
    Сообщения:
    24
    Симпатии:
    0
    не не мне нужно чтобы именно вот так выглядела значение переменной и так же она заносилась в ячейке.
    Дело в том что у меня другое приложения на smal c++ берёт из базы значение из ячейки. и именно в таком виде мне нужно )))

    Я же не дурак что бы такой фигнёй маяться но это очень нужно для отображения русского текста в другом приложении. Там подругому никак )
     
  4. kostyl

    kostyl Guest

    SONY
    Смотрел iconv ?
     
  5. SONY

    SONY Активный пользователь

    С нами с:
    5 авг 2009
    Сообщения:
    24
    Симпатии:
    0
    щас гляну
    а ты посмотри на первый пост )) я его обновил ))
     
  6. kostyl

    kostyl Guest

    Просто, как показывает практика, есть другие выходы, а не карячные приемы.
     
  7. SONY

    SONY Активный пользователь

    С нами с:
    5 авг 2009
    Сообщения:
    24
    Симпатии:
    0
  8. SONY

    SONY Активный пользователь

    С нами с:
    5 авг 2009
    Сообщения:
    24
    Симпатии:
    0
    есть способ если установить кодировку базы данных UTF-8 без BOM
    но что то такой кодировки я не нашёл в мускуле
     
  9. kostyl

    kostyl Guest

    это расширение, оно должно быть установлено и загружено.
     
  10. SONY

    SONY Активный пользователь

    С нами с:
    5 авг 2009
    Сообщения:
    24
    Симпатии:
    0
    Пожадуйтста по подробнее, то что я недопонимаю что нужно сделать.
     
  11. kostyl

    kostyl Guest

    SONY
    Для начала смени аватару - разрешены только личные фото. А по теме тебе надо, включить отображение ошибок и если напишет чтото типа unknown function iconv то в php.ini надо удлить точку с запятой в строке ;*iconv* и перезапустить сервер.
     
  12. SONY

    SONY Активный пользователь

    С нами с:
    5 авг 2009
    Сообщения:
    24
    Симпатии:
    0
    вот я немного подругому сделал
    PHP:
    1. <?php
    2. /*echo iconv("UTF-8", "ANSI", "пример");*/
    3. $a = "А а     Б б   В в   Г г   Д д   Е е   Ё ё
    4. Ж ж   З з   И и   Й й   К к   Л л   М м
    5. Н н   О о   П п   Р р   С с   Т т   У у
    6. Ф ф   Х х   Ц ц   Ч ч   Ш ш   Щ щ   Ъ ъ
    7. Ы ы   Ь ь   Э э   Ю ю   Я я";
    8. print $a;
    9. print "<br>";
    10. $b=iconv('WINDOWS-1251', 'UTF-8', $a);
    11. echo $b;
    12. ?>
    единственное что не совсем я так понимаю ANSI
    так как у меян в приложении некоторые буквы неправильн выводяться

    вместо буквы ш выодится ?

    Большая буква И не отображается и ещё пару букв


    Может подскажешь как указать кодировку ANSI ?


    PS
    Это я так выгляжу. Я не нашёл фотки на 8 килобай с таким разрешением. Это я так выгляжу в стиле Саус парка
     
  13. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    зайдите с помощью phpMyAdmin в базу и посмотрите структуру таблицы, из которой вы берете значение. Вы увидите, в какой кодировке хранятся данные в строках (там не будет ansi, возможно cp1251, cp866, koi8r, utf8).
    затем посмотрите кодировку вашей странички (судя по всему windows-1251).
    потом и делайте преобразование.
     
  14. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
  15. DmitriyK

    DmitriyK Активный пользователь

    С нами с:
    6 авг 2009
    Сообщения:
    1
    Симпатии:
    0
    Код (Text):
    1. $db=mysql_connect($host,$user,$pass) or die("БД Выпедривается:".mysql_error());
    2. mysql_query("set names cp1251",$db);  //попробуй тут выставить кодировку, сразу после коннекта к БД,
    3. //с которой будешь общатся с БД, преварительно посмотри какая у тебя кодировка в БД
    4. mysql_select_db($table,$db);
     
  16. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Данные должны быть utf-8, а база данных в latin1.
    Чарсет соединения тоже utf-8.
     
  17. SONY

    SONY Активный пользователь

    С нами с:
    5 авг 2009
    Сообщения:
    24
    Симпатии:
    0
    угу завтра попробую ))) и отпишуся