1. Здраво и добредојдовте на форумот на IT.mk.

    Доколку сеуште не сте дел од најголемата заедница на ИТ професионалци и ентузијасти во Македонија, можете бесплатно да се - процесот нема да ви одземе повеќе од 2-3 минути, а за полесна регистрација овозможивме и регистрирање со Facebook и Steam.
    Сокриј

Инсертирање кирилица во база

Дискусија во форумот 'PHP, ASP, JSP (JavaServer Pages)' започната од loris, 5 Февруари 2011.

  1. loris

    loris
    Gaining Experience

    625
    53
    7 Мај 2007
    Машко
    Програмер
    Здраво, знам дека има доста искусни леѓу со PHP, па би замолил за мала помош.
    Наидов на следниот проблем, од форма се обидувам да зачував поле во база.
    Зачувувањето во базата не е проблем, туку форматот што го зачувува.
    Ситуацијата е следна:

    1. Табелата во која инсертирам има Collation utf8_unicode_ci
    2. При повикот на инсертот повикувам и
    mysql_query("SET NAMES utf8");
    mysql_query('SET CHARACTER SET utf8');
    3. Доколку рачно од база го внесам полето со кирилица истото се зачувува без проблеми и без проблеми ми го прикажува.

    Кодот кој го користам за инсертирање е следниот:
    Ова е сместено во фајл со сите фукнции.
    function insertiraj($pole1='',$pole2='')
    {
    $queryString = mysql_query("SET NAMES utf8");
    $queryString =mysql_query('SET CHARACTER SET utf8');
    $queryString = "insert into tabela(pole1,pole2) values ('$pole1','$pole2')";
    $resultSet = mysql_query($queryString) or die(mysql_error());
    return $resultSet;
    }

    и соодветниот повик од формата insertiraj($pole1,$pole2);

    Кога пробувам да инсертирам во база,записот се зашишува во некој оваков формат
    иÑ?оÐ&raqu
    Како да направам да ми се инсертира коректно тоа што е внесено во полето на кирилица.

    Фала, за сите совети кои ќе ги дадете.
     
  2. Goran123

    Goran123
    Gaining Experience

    954
    158
    25 Јуни 2010
    Ова ти е вака со ' наместо со " и во оригиналниот фајл? Не верувам дека ова е проблемот, ама чисто да го елиминираш ова како причина.
     
  3. loris

    loris
    Gaining Experience

    625
    53
    7 Мај 2007
    Машко
    Програмер
    Го променив и тоа и го елиминирам како причина, не е до него.
     
  4. mrce

    mrce
    Intern

    173
    24
    2 ноември 2009
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
     
  5. loris

    loris
    Gaining Experience

    625
    53
    7 Мај 2007
    Машко
    Програмер
    Заборавив да го напонемам дека и тоа го имам ставено. Нефункционира повторно.
     
  6. Jovan.74

    Jovan.74
    Intern

    209
    6
    6 Јуни 2010
    Машко
    1. Конвертирај ги фајловите во UTF-8 ако ти се во ANSI
    2. На ДБ-то стави му utf8_general_ci Collation
    3. Под <head> пиши <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    4. $queryString = mysql_query("SET NAMES utf8");
    $queryString =mysql_query('SET CHARACTER SET utf8'); - тргни ги овие 2
     
  7. loris

    loris
    Gaining Experience

    625
    53
    7 Мај 2007
    Машко
    Програмер
    Не разбрав што мислиш по тоа да ги конвертирам фајловите во UTF-8, доколку мислиш при самото зачувување на фајлот со кодот,да тие ми се зачувани со UTF-8.

    Променив и collation на датабазата, додадов и мета таг, избришав сет делот, повторно неможам да инсертирам кириличен текст во табелата.
     
  8. loris

    loris
    Gaining Experience

    625
    53
    7 Мај 2007
    Машко
    Програмер
    BUMP! Сеуште не сум го решил проблемот, има некој идеја или пример едноставен со едно поле и едно копче како да додам кириличен стринг во база.
     
  9. Fatal1ty_

    Fatal1ty_
    Großmeister

    21,413
    25,088
    28 Февруари 2008
    Машко
    Experienced Web Developer
    Мојот ваков проблем го решив со ставање на базата во utf8_general_ci. и varchar кај дата.
     
  10. gdamjan

    gdamjan
    On your way to fame

    2,240
    517
    3 Април 2008
    Пошто ја немам целата слика за тоа што го правиш* можам да ти дадам само два совети:

    1) mysql_query("SET NAMES utf8") е уствари макро кое во себе го вклучува и mysql_query('SET CHARACTER SET utf8'), така да нема потреба да го имаш второво. Тоа не ти е проблемот, но нема потреба од компликации.

    2) Ако тоа што го добиваш како резултат е »&ETH;&cedil;&Ntilde;?&ETH;&frac34;&ETH;&raqu« тоа во 99.999% од случаите значи дека browser-от не знае во кој charset да го испрати POST-от. т.е во html-от кајшто ти е формата (а не кај што го обработуваш POST-от) немаш <meta http-equiv...>.

    Евентуално ако не е тоа, можда го имаш самиот HTTP header <meta http-equiv> е емулација на http header-и во html. Тоа може да го провериш со firebug и да ги видиш header-ите на Response-от.

    *
    кога поставуваш вакви прашања, згодно е да имаш најмала можна скрипта која ги има истите симптоми негде поставено на интернет за да може да се видат работи кои тебе не ти текнало да ги пишеш.
     
  11. loris

    loris
    Gaining Experience

    625
    53
    7 Мај 2007
    Машко
    Програмер
    Еве што направив од ново се:
    Што имам во html-от
    http://pastebin.com/aBdn3yCm

    Што имам во php фајлот
    http://pastebin.com/JWMMvyu4

    Any suggestion :(
     
  12. Fatal1ty_

    Fatal1ty_
    Großmeister

    21,413
    25,088
    28 Февруари 2008
    Машко
    Experienced Web Developer
    Во базата е проблемот не е во скриптата.
     
  13. gdamjan

    gdamjan
    On your way to fame

    2,240
    517
    3 Април 2008
    кај ти е тука
    mysql_query("SET NAMES utf8")
    ??
     
  14. loris

    loris
    Gaining Experience

    625
    53
    7 Мај 2007
    Машко
    Програмер
    Пробував без него, сега примерот што го пишав со mysql_query("SET NAMES utf8") и конечно проработи.

    Фала на сите што ми помогнаа со нивната дискусија. :bravo::bravo:
     

Сподели

Вчитување...