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

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

MySQL проблем со енкодинг

Дискусија во форумот 'Microsoft SQL Server, MySQL, PostgreSQL, Oracle, S' започната од janedrakul, 27 Септември 2012.

  1. janedrakul

    janedrakul
    Intern

    7
    0
    9 Март 2009
    Имам MySQL база со една проста табела, ништо невообичаено. Се читаат податоци од форма и со PHP се внесуваат во база. Податоците што се внесуваат се на Словенски јазик кој користи латиница и се и е супер освен буквите од типот "ž š č ..." кои ги претставува како хиероглифи :)

    Енкодингот е наместен на utf8_slovenian_ci арно ама PHP_то кога ќе запише во база, јас преку phpMyAdmin гледам хиероглифи на местото на тие букви (другите си се добри), а кога повторно преку PHP ќе ги исчитам записите, убаво си ги печати.
    Пробав да внесам рачно такви букви преку phpMyAdmin, и така внесените добро ги прикажува во phpMyAdmin ама па преку PHP кога ги чита ги јавува како хиероглифи...

    Кое е решението за секаде да е како што треба? Главната причина што ми треба ова е дека ќе и треба опцијата Export to Excel/CSV за понатамошно користење на податоците од базата и морам да најдам решение, така да ако знае некој да помогне би било супер :)
     
  2. Fatal1ty_

    Fatal1ty_
    Großmeister

    21,168
    23,780
    28 Февруари 2008
    Машко
    Experienced Web Developer
    а што енкодиг користиш за php скриптата?

    Пробај mysql да ти запишува податоци во _general мислам деа така ги дава како што треба
     
    На janedrakul му/ѝ се допаѓа ова.
  3. HocusPocus

    HocusPocus
    On your way to fame

    949
    553
    3 Јули 2007
    Отвори ги сите PHP фајлови преку Notepad++ и од менито сетирај Encoding -> Encode in UTF-8 или Encode in UTF-8 without BOM
     
    На janedrakul му/ѝ се допаѓа ова.
  4. mrce

    mrce
    Intern

    170
    23
    2 ноември 2009
    namesti go collation poleto na utf8_unicode_ci. i posle konekcijata dodadi mysql_query("set names utf8") ili set_charset("utf8");
    isto dokolku rabotis preku mysql client, za da tocno da ti se prikazuvaat unicode karakterite treba da pises 'set names utf8'

    imas na net za sekoj collation sto znaci. na primer utf8_unicode_ci raboti so unicode karakteri i ne razlikuva mali i golemi bukvi... dodeka utf8_bin gi pravi i dvete... taka da vo prvoto 'aaa' = 'AAA' , dodeka kaj vtoroto 'aaa' != 'AAA'
     
    На janedrakul му/ѝ се допаѓа ова.
  5. janedrakul

    janedrakul
    Intern

    7
    0
    9 Март 2009
    Следниов код ми го прати еден другар:
    PHP:
    //connect to MySQL server
    $link mysql_connect($db_host$db_user$db_pass);
    if (!
    $link) {
        die(
    ' ***Could not connect MySQL server: ' mysql_error());
    }
     
    // connect to DB
    $db_selected mysql_select_db($db_database$link);
    if (!
    $db_selected) {
        die (
    ' ***Could not connect MySQL DB: ' mysql_error());
    }
     
    mysql_query("SET character_set_results=utf8",$link) or die(mysql_error());
    mb_language("uni");
    mb_internal_encoding("UTF-8");
    mysql_query("SET NAMES utf8",$link) or die(mysql_error());
    Со ова кога внесувам, во phpMyAdmin убаво ги листа таквите букви, ама со друиог PHP фајл кога ги листам записите, се со прашалници тие букви. Го ставив истиот код и прашалниците ги снема, али со ова не го решив главниот проблем. Ми треба базата во Ексел да ја експортирам, а освен преку phpMyAdmin да ми генерира CSV фајл незнам друг начин, а таму повторно ми се хиероглифи. Ќе пробам уште еднаш од ново да ја креирам базата преку PHP код ако смени тоа нешто.

    Ако не незнам што друго да пробам... Што е разликата меѓу utf8_unicode_ci и utf8_general_ci?

    Или како наједноставно решение, дали постои опција преку PHP да ми изгенерира ексел/csv фајл со целата база со сите полиња?
     
  6. Fatal1ty_

    Fatal1ty_
    Großmeister

    21,168
    23,780
    28 Февруари 2008
    Машко
    Experienced Web Developer
  7. mrce

    mrce
    Intern

    170
    23
    2 ноември 2009
    postoi nacin ako sam si napises skripta za toa.
    citaj od baza i zapisuvaj vo fajl...
     
  8. janedrakul

    janedrakul
    Intern

    7
    0
    9 Март 2009
    Фала богу дека знам дека постои, поентата ми беше нешто испробано ако има некој да ми прати што ќе ми го реши проблемот со енкодингот.

    Го пробав, енкодингот нечини иако користам се како што користам во претходните случаи кај што секаде преку PHP-то ми работи правилно. Плус со овој пример колоните не се по колони наредени, него се сите во колона А со запирка одвоени. Ќе пробам сега со уште 3-4 примери од нет да видам ако работи, ако не помагајте нешто друго :)
     
  9. janedrakul

    janedrakul
    Intern

    7
    0
    9 Март 2009
    Ништо, не најдов код што го експортира со правилен енкодинг, ниту па што секоја колона си е во посебна колона, наместо да се со запирка одделени.
     
  10. nAPL_MKD

    nAPL_MKD
    Intern

    12
    0
    11 Септември 2013
    Машко
    Доколку базата е локална обиди се текстуалните полиња наместо VARCHAR
    да ги направиш nVARCHAR .

    Знам дека е одамна завршено но сепак да напишам како јас го решив ова.
     

Сподели

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