Výsledky 1 až 10 z 10

Téma: MySQL 4.1 a Delphi - špatné kódování

  1. #1

    Standardní MySQL 4.1 a Delphi - špatné kódování

    Dobry den, mam nasledujici problem s projektem v Delphi. Pouzivam Delphi 6, ADO komponenty pripojeni pres MyODBC 3.51.11. S databazi muzu normalne pracovat, ale pokud ulozim nejaky retezec v MySQL Query Browseru (nejen), tak se mi české znaky nezobrazí a místo nich mám otazníky (některé - ě, ř, ť ...). Kódování databáze mám nastavené na UTF8, zkousel jsem take USC2, latin1 a cp1250. Vite nekdo jak zjistit kde je chyba, pripadne jak ji opravit?
    PC1. P4 Celeron Mobile 1,6@2656GHz, 2x1024MB DDR , ATI Radeon 9550, 2xWD 120JB, 2x17" LCD Benq FP737s, 7.1 sound + 7.1 repro, DVD, silent, 1GBit, TVCard FC6 PC2. P-III 1000@1200 MHz Tualatin, 1GB RAM, ATI Radeon 9000, Seagate 120GB 7200.9, CD-RW, 1Gbit super silent Kubuntu Notebook: Dell X300, Centrino 1400MHz Dothan, 1280MB RAM, Hitachi 80GB, BT, WiFi 1,2kg XP, FC6 Internet: 1x7MBit down, 1x2MBit up Sit: 1Gbit vnitrni sit

  2. #2
    Administrátor mince Avatar uživatele Jezevec
    Založen
    08.10.2002
    Bydliště
    Teplice
    Příspěvky
    6 736
    Vliv
    300

    Standardní

    Pokud dobre chapu, ulozis pres MySQL query neco do DB a v Delfach to pak vidis blbe ?

    To bude tim, ze mas blbe nastaveny kodovani v nich. Mimochodem, neni nahodou pro delphi na webu MySQL primo ke stazeni konektor ? Pak bys totiz moh vykopnout to ODBC, coz je peknej shit, zpomaluje a zpusobuje problemy.
    IMPROBE AMOR, QUID NON MORTALIA PECTORA COGIS - krutá jsi, lásko, kam až ty doženeš smrtelná srdce -- Vergilius
    Mnoho je prostředků, které léčí lásku, ale žádný není spolehlivý.
    S tím, čeho se na nás dopustili druzí se už nějak vyrovnáme. Horší je to s tím, čeho jsme se na sobě dopustili sami.
    -- Francois La Rochefoucauld
    Nabídnout přátelství tomu, kdo chce lásku, je jako dát chleba tomu, kdo umírá žízní.

  3. #3

    Standardní

    Citace Původně odeslal Jezevec
    Pokud dobre chapu, ulozis pres MySQL query neco do DB a v Delfach to pak vidis blbe ?

    To bude tim, ze mas blbe nastaveny kodovani v nich. Mimochodem, neni nahodou pro delphi na webu MySQL primo ke stazeni konektor ? Pak bys totiz moh vykopnout to ODBC, coz je peknej shit, zpomaluje a zpusobuje problemy.
    No v zasade ano. Ale kdyz to ulozim v Delphi, tak to prectu v poradku. Problem je v tom, ze ja to potrebuju ukladat v Jave a ta to uklada pres JDBC. No a zjistil jsem, ze MySQL Query to uklada stejne "spravne" jako Java.

    O zadnym konektrou nevim. Nemuzes k tomu napsat neco vic? S MyODBC byly vzdycky problemy, ale nejak to slo pouzivat.

    Kodovani v Delphi? Co mas na mysli?
    PC1. P4 Celeron Mobile 1,6@2656GHz, 2x1024MB DDR , ATI Radeon 9550, 2xWD 120JB, 2x17" LCD Benq FP737s, 7.1 sound + 7.1 repro, DVD, silent, 1GBit, TVCard FC6 PC2. P-III 1000@1200 MHz Tualatin, 1GB RAM, ATI Radeon 9000, Seagate 120GB 7200.9, CD-RW, 1Gbit super silent Kubuntu Notebook: Dell X300, Centrino 1400MHz Dothan, 1280MB RAM, Hitachi 80GB, BT, WiFi 1,2kg XP, FC6 Internet: 1x7MBit down, 1x2MBit up Sit: 1Gbit vnitrni sit

  4. #4
    Administrátor mince Avatar uživatele Jezevec
    Založen
    08.10.2002
    Bydliště
    Teplice
    Příspěvky
    6 736
    Vliv
    300

    Standardní

    Application Programming Interfaces (APIs)

    http://dev.mysql.com/downloads/

    Bohuzel, pro packal tam nic neni , leda ze mas neco primo v delfach (pripadne to dodava nekdo dalsi).

    Tim kodovanim sem myslel to, jesli nemas DB trebas UTF, ale z delf to ukladas/ctes jako win1250. Takze pokud to ulozis spravne v UTF, tak v delfach to vidis samo blbe.

    Otestujes to nejlip asi tak, ze si ulozis zarucene UTF text do souboru a zkusis ho nacist.
    IMPROBE AMOR, QUID NON MORTALIA PECTORA COGIS - krutá jsi, lásko, kam až ty doženeš smrtelná srdce -- Vergilius
    Mnoho je prostředků, které léčí lásku, ale žádný není spolehlivý.
    S tím, čeho se na nás dopustili druzí se už nějak vyrovnáme. Horší je to s tím, čeho jsme se na sobě dopustili sami.
    -- Francois La Rochefoucauld
    Nabídnout přátelství tomu, kdo chce lásku, je jako dát chleba tomu, kdo umírá žízní.

  5. #5
    Senior Member mince Avatar uživatele KtK
    Založen
    16.10.2002
    Bydliště
    Behind fuc*ing WorkTable Device (Praha zapad)
    Příspěvky
    1 709
    Vliv
    284

    Standardní

    a kdyz jsme u toho, neni pro cestinu/stredoevropstinu (ISO) v mysql nazev latin2? (pises ze jsi zkousel latin1)-pak by se nebylo cemu divit.

    jinak zkus nam sem postnout, co se ti zobrazi, kdyz do db nacpes klasicky text "příliš žluťoučký kůň úpěl ďábelské kódy"
    podle toho co pises (pokazene ě, ř, ť ) se mi to zda prave na konflikt latin1 vs latin2? (ale mozna se pletu, nezkousel jsem to, ale tak nejak ze zkusenosti se mi zda ze by to mohlo byt ono)

    A jak "nastavujes databazi"? pres SET NAMES?
    Parasite lost, AKA the Girlfriend Mission:The Socka Project sleeps, lets use (her :) Durex! 1GHz in some soltek stuff, Ati rage 128, etc.. (it\'s noisy)
    IMB Thinkpad R31: celer 1.2GHz, 384M RAM, 60GB 5400rpm hitachi, i810 8MB onboard (na praci to staci ;)
    [pro archivni ucely] janina overclockerska poradna (.tar.gz, 1.1MB, otevrete si index.html v browseru podporujicim javascript a frames)

  6. #6

    Standardní

    charset v databazi by vpodstate nemel mit nic spolecnyho s tim co do toho/z toho leze ... mysql samo o sobe nedela zadnej preklad ... ty charsety co se tam daj vybrat/nastavit jsou hlavne kvuli porovnavani, razeni a stringovejm funkcim ... na vstup/vystup by to az tak vliv mit nemelo ...
    Hrrrr, will you stop using people as human driven search engines? Google.com has all the answers you need.

  7. #7

    Standardní

    [cite]podle toho co pises (pokazene ě, ř, ť ) se mi to zda prave na konflikt latin1 vs latin2? (ale mozna se pletu, nezkousel jsem to, ale tak nejak ze zkusenosti se mi zda ze by to mohlo byt ono)[/cite]

    Ano, prave takto se projevuje chyba latin1 vs. latin2. Nicmene jak pise Fox!MURDER. Je to tak, ze zpusob ulozeni v databazi by nemel! mit vliv na to, jak je to z databaze vybirane. latin1, protoze je to defaultni kodovani cestiny-

    Jinak jeste upresnim situaci. Systém se skládá z nekolika programů. Hlavní část je napsaná v Delphi a obsahuje veskere (uzivatelsko)"Administratorske" funkce. Druha je napsana java+servlety+jsp a poskytuje uzivatelske rozhrani pro sirokou masu uzivatelu, kteri to vyuzivaji. Tyto dve casti spolu kooperuji pouze nad databazi. Zadnym jinym (pro tento jev dulezitym) zpusobem spolu neinteraguji. Problem je, ze znaky je schopna cist bud jen delphi cast a sw jako MySQL Front, Navicat nebo JSP cast a Query Browser. No a ja to samozrejme potrebuji pouzivat zaroven a nechci to cele prepisovat do .NET (ve kterem to funguje bez problemu). Do teto chvile jsem obvinoval JSP, ale uz si tim zdaleka nejsem tak jisty. JSP me na MySQL 4.0.21 a kodovani cp1250 jede. Na verzi 4.1.x me jede jen kdyz si to tam zapise samo, nebo QB.

    Vice dalsich informaci doplnim rano...
    PC1. P4 Celeron Mobile 1,6@2656GHz, 2x1024MB DDR , ATI Radeon 9550, 2xWD 120JB, 2x17" LCD Benq FP737s, 7.1 sound + 7.1 repro, DVD, silent, 1GBit, TVCard FC6 PC2. P-III 1000@1200 MHz Tualatin, 1GB RAM, ATI Radeon 9000, Seagate 120GB 7200.9, CD-RW, 1Gbit super silent Kubuntu Notebook: Dell X300, Centrino 1400MHz Dothan, 1280MB RAM, Hitachi 80GB, BT, WiFi 1,2kg XP, FC6 Internet: 1x7MBit down, 1x2MBit up Sit: 1Gbit vnitrni sit

  8. #8

    Standardní

    Jeste pro upresneni dodavam nasledujici:

    Tabulka tzpusobplatby ma charset nastaven jako utf8, a to stejne je u vsech sloupcu tabulky.

    Pole do ktereho ukladam ten retezec je definovano nasledovne: zpusobplatbytxt varchar(255) NOT NULL default ''

    Dotaz ktery pouzivam v Delphi pro nacteni dat je pouze primitivni "SELECT zpusobplatbytxt FROM tzpusobplatby".

    Tak a ted k tomu testovacimu retezci "příliš žluťoučký kůň úpěl ďábelské kódy".

    Pokud ten retezec ulozim v Delphi aplikaci, a nasledne necham znovu nacist tak se nacte jako: "příliš žlu?oučký kůň úpěl ďábelské kódy" (tedy bez ť ).
    Pokud ted tento ulozeny retezec nactu v MySQL Query Browseru tak ten ho zobrazi jako "pøíliš žlu?ouèký kùò úpìl ïábelské kódy".

    Pokud to obratim, tj. v Query Browseru ho ulozim, pak znovu nactu tak se zobrazi jako: "příliš žluťoučký kůň úpěl ďábelské kódy". Kdyz ho potom nactu v Delphi aplikaci tak ta ho nacte jako: "p?íliš žlu?ou?ký k?? úp?l ?ábelské kódy". A k tomuto jeste jedna zajimavost, pokud se ten retezec pokusim v Delphi ulozit/prepsat tak to vyhodi chybu: "Row cannot be located for updating. Some values may have been changed since it was last read." <- Teto chyby se zbavim jedine tak ze v Query Browseru ulozim misto testovaciho retezce nejaky nenasilny (tj. bez diakritiky) text a pak uz muzu normalne pracovat. Pokud text "příliš žluťoučký kůň úpěl ďábelské kódy" ulozim prvne v Delphi - pak ho nactu a pokusim se ho ulozit/zapsat tak se vyse zminena chyba neobjevi.
    PC1. P4 Celeron Mobile 1,6@2656GHz, 2x1024MB DDR , ATI Radeon 9550, 2xWD 120JB, 2x17" LCD Benq FP737s, 7.1 sound + 7.1 repro, DVD, silent, 1GBit, TVCard FC6 PC2. P-III 1000@1200 MHz Tualatin, 1GB RAM, ATI Radeon 9000, Seagate 120GB 7200.9, CD-RW, 1Gbit super silent Kubuntu Notebook: Dell X300, Centrino 1400MHz Dothan, 1280MB RAM, Hitachi 80GB, BT, WiFi 1,2kg XP, FC6 Internet: 1x7MBit down, 1x2MBit up Sit: 1Gbit vnitrni sit

  9. #9
    Senior Member mince Avatar uživatele KtK
    Založen
    16.10.2002
    Bydliště
    Behind fuc*ing WorkTable Device (Praha zapad)
    Příspěvky
    1 709
    Vliv
    284

    Standardní

    Citace Původně odeslal Fox!MURDER
    charset v databazi by vpodstate nemel mit nic spolecnyho s tim co do toho/z toho leze ... mysql samo o sobe nedela zadnej preklad ... ty charsety co se tam daj vybrat/nastavit jsou hlavne kvuli porovnavani, razeni a stringovejm funkcim ... na vstup/vystup by to az tak vliv mit nemelo ...
    Mno, v php to vliv ma-resp od jiste verze, sam jsem se s tim natrapil docela dost, ale nevim, jestli to s mysql spolupracuje jinak nez komponenty delphi.

    na hostingu mam mysql 3.neco, a na ntb 4.neco. (na webu vsechno v ISO-8859-2) Kdyz jsem delal primo na hostingu, vubec jsem se s tim netrapil v, vsechno v pohode, ale kdyz jsem chtel pokracovat na lokale, tak jsem se nestacil divit.. Dokud jsem na zacatku spojeni s mysql nedal prvni prikaz "SET NAMES latin2", tak to plivalo pok.. diakritiku.
    Parasite lost, AKA the Girlfriend Mission:The Socka Project sleeps, lets use (her :) Durex! 1GHz in some soltek stuff, Ati rage 128, etc.. (it\'s noisy)
    IMB Thinkpad R31: celer 1.2GHz, 384M RAM, 60GB 5400rpm hitachi, i810 8MB onboard (na praci to staci ;)
    [pro archivni ucely] janina overclockerska poradna (.tar.gz, 1.1MB, otevrete si index.html v browseru podporujicim javascript a frames)

  10. #10

    Standardní

    Já mám podobný problém. Stránky mám v kódování UTF-8, mysql je general-utf8, ale když tam vložím nějaký text (samozřejmě kódovaný v utf, tak při výpisu z databáze na stránky tam není dobrá čeština. Jak to vyřešit?

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •