abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    25.7. 19:55 | IT novinky

    Americký výrobce čipů Intel propustí 15 procent zaměstnanců (en), do konce roku by jich v podniku mělo pracovat zhruba 75.000. Firma se potýká s výrobními problémy a opouští také miliardový plán na výstavbu továrny v Německu a Polsku.

    Ladislav Hagara | Komentářů: 22
    25.7. 17:33 | Komunita

    MDN (Wikipedie), dnes MDN Web Docs, původně Mozilla Developer Network, slaví 20 let. V říjnu 2004 byl ukončen provoz serveru Netscape DevEdge, který byl hlavním zdrojem dokumentace k webovým prohlížečům Netscape a k webovým technologiím obecně. Mozille se po jednáních s AOL povedlo dokumenty z Netscape DevEdge zachránit a 23. července 2005 byl spuštěn MDC (Mozilla Developer Center). Ten byl v roce 2010 přejmenován na MDN.

    Ladislav Hagara | Komentářů: 0
    25.7. 14:55 | Nová verze

    Wayback byl vydán ve verzi 0.1. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.

    Ladislav Hagara | Komentářů: 0
    25.7. 13:33 | Nová verze

    Byla vydána nová verze 6.18 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Nově se lze k síti Tor připojit pomocí mostu WebTunnel. Tor Browser byl povýšen na verzi 14.5.5. Thunderbird na verzi 128.12.0. Další změny v příslušném seznamu.

    Ladislav Hagara | Komentářů: 0
    24.7. 14:33 | IT novinky

    Meta představila prototyp náramku, který snímá elektrickou aktivity svalů (povrchová elektromyografie, EMG) a umožňuje jemnými gesty ruky a prstů ovládat počítač nebo různá zařízení. Získané datové sady emg2qwerty a emg2pose jsou open source.

    Ladislav Hagara | Komentářů: 1
    24.7. 14:22 | Nová verze

    Byla vydána (𝕏) nová verze 25.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 25.7 je Visionary Viper. Přehled novinek v příspěvku na fóru.

    Ladislav Hagara | Komentářů: 0
    24.7. 13:33 | IT novinky

    Před 40 lety, 23. července 1985, společnost Commodore představila první počítač Amiga. Jednalo se o počítač "Amiga od Commodore", jenž byl později pojmenován Amiga 1000. Mělo se jednat o přímou konkurenci počítače Apple Macintosh uvedeného na trh v lednu 1984.

    Ladislav Hagara | Komentářů: 2
    24.7. 06:00 | IT novinky

    T‑Mobile USA ve spolupráci se Starlinkem spustil službu T-Satellite. Uživatelé služby mohou v odlehlých oblastech bez mobilního signálu aktuálně využívat satelitní síť s více než 650 satelity pro posílání a příjem zpráv, sdílení polohy, posílání zpráv na 911 a příjem upozornění, posílání obrázků a krátkých hlasových zpráv pomocí aplikace Zprávy Google. V plánu jsou také satelitní data.

    Ladislav Hagara | Komentářů: 9
    23.7. 21:55 | Komunita

    Společnost Proxmox Server Solutions stojící za virtualizační platformou Proxmox Virtual Environment věnovala 10 000 eur nadaci The Perl and Raku Foundation (TPRF).

    Ladislav Hagara | Komentářů: 2
    23.7. 21:22 | Bezpečnostní upozornění

    Byla vydána nová verze 2.4.65 svobodného multiplatformního webového serveru Apache (httpd). Řešena je bezpečnostní chyba CVE-2025-54090.

    Ladislav Hagara | Komentářů: 0
    Kolik tabů máte standardně otevřeno ve web prohlížeči?
     (29%)
     (26%)
     (5%)
     (4%)
     (4%)
     (1%)
     (3%)
     (27%)
    Celkem 136 hlasů
     Komentářů: 17, poslední včera 20:08
    Rozcestník

    Dotaz: client encoding při připojení z PHP do MySQL

    18.3.2007 14:43 8an | skóre: 30
    client encoding při připojení z PHP do MySQL
    Přečteno: 3003×
    Migruji WWW server na Debian, a narazil jsem na problém s MySQL: výchozí nastavení kódování je Latin1, takže to zlikviduje české znaky.

    Nastavil jsem "default-character-set = latin2" v my.cnf, ale to má vliv jen na konzolového mysql klienta, ne na PHP. Nevíte kde se nastavuje totéž pro PHP?

    P.S. Vím že je možné nastavit kódování příkazem "SET CHARACTER SET", ale to by vyžadovalo zásah do PHP skriptů uživatelů, což není přijatelné.

    Děkuji za nápady,

    Lukáš Turek
    If you build an operating system that even an idiot can use, only idiots will use it.

    Odpovědi

    18.3.2007 14:55 pasmen | skóre: 45 | blog: glob | Praha
    Rozbalit Rozbalit vše Re: client encoding při připojení z PHP do MySQL
    Rekl bych, ze tohle bude docela problem. Ja pouzivam mysql_query("SET NAMES kodovani") po pripojeni v kazdem skriptu, PHP je v tomhle hloupe, takze pokud to nekdo ve svem skriptu nema, je to tak trochu jeho vina...
    18.3.2007 15:03 azurIt | skóre: 34 | blog: zatial_bez_mena
    Rozbalit Rozbalit vše Re: client encoding při připojení z PHP do MySQL
    nie je pravda, ze je hlupe. hlupi su ludia, ktori tam to set names nedavaju (skade by asi PHP mohlo vediet, ake kodovanie potrebujes ?). keby existovalo nastavenie nieco akoze 'default encoding', nerobilo by nic ine len by poslalo presne tento dotaz hned po pripojeni.
    18.3.2007 16:38 pasmen | skóre: 45 | blog: glob | Praha
    Rozbalit Rozbalit vše Re: client encoding při připojení z PHP do MySQL
    Hmm, a co je podle tebe direktiva default-character-set = kodovani v sekci [client] souboru my.cnf? Tohle kodovani mysql server nabizi klientovi (tak napr. command line klient pozna, jake kodovani ma prevzit). Takze ano, PHP je do jiste miry hloupe, ze nabizene kodovani nepouzije a je nutne mu to rici. Ale prave proto, ze se to o PHP vi mas pravdu, to ty lidi jsou hloupi, ze to ve skriptu nerikaji.
    18.3.2007 17:48 8an | skóre: 30
    Rozbalit Rozbalit vše Re: client encoding při připojení z PHP do MySQL
    No ale já právě nechápu, jaktože to na původním serveru (FreeBSD) funguje, PHP tam používá Latin2 (a v my.cnf to nastavené není). Že lidi jsou hloupí souhlasím, obzvlášť když mají UTF8 data v tabulkách deklarovaných jako Latin2... Ale lidi bohužel opravit nemůžu, musím opravit konfiguraci.
    If you build an operating system that even an idiot can use, only idiots will use it.
    18.3.2007 22:13 8an | skóre: 30
    Rozbalit Rozbalit vše Re: client encoding při připojení z PHP do MySQL
    Tak to vypadá že je potřeba překopilovat MySQL server s --with-charset=latin2
    If you build an operating system that even an idiot can use, only idiots will use it.
    18.3.2007 20:29 azurIt | skóre: 34 | blog: zatial_bez_mena
    Rozbalit Rozbalit vše Re: client encoding při připojení z PHP do MySQL
    ta direktiva je _len_ pre textoveho klienta 'mysql' dodavaneho spolu z MySQL serverom. obdobna direktiva sa v konfigu da pouzit aj pre server, ale to neznamena, ze server bude toto kodovanie ponukat klientom - serveru tym praveze hovoris, ake kodovanie budu defaultne klienti pouzivat.
    19.3.2007 00:01 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: client encoding při připojení z PHP do MySQL
    Nedávno jsem tohle řešil v pythonu a třeba půjde podobný postup použít i v PHP. Chtěl jsem docílit těchto vlastností:
    1) abych s databází komunikoval v unicodu
    2) abych já, coby uživatel nikde nemusel nastavovat character_set.
    3) aby se příkaz mysql i skripty v pythonu chovaly "stejně" - v souladu s nějakým globálním nastavením.
    Dospěl jsem k tomu, že v /etc/my.cnf mám (mimo jiné)
    [client]
    default_character_set=utf8
    
    Ve svém houmu mám ~/.my.cnf, v něm třeba heslo nebo tak něco a krom toho řádek
    !include /etc/my.cnf
    
    takže kódování se převezme z /etc. Tím je vyřešen příkaz mysql. Chtělo by to ještě podobnou věc ve skriptech v pythonu. Tam to jde takto:
    #!/usr/bin/env python
    #coding: utf-8
    import MySQLdb
    db = MySQLdb.connect(use_unicode = True, read_default_file="~/.my.cnf")
    c = MySQLdb.cursors.DictCursor(db)
    c.execute('show variables like "%character%"')
    for row in c.fetchall():
        print '%30s %30s' %(row['Variable_name'], row['Value'])
    c.close()
    db.close()
    
    Komunikace probíhá v unicode, přičemž znaková sada se převezme z ~/.my.cnf a ten to zase přebere z /etc. Skript, který jsem uvedl, by měl vypsat
              character_set_client                           utf8
          character_set_connection                           utf8
            character_set_database                           utf8
          character_set_filesystem                         binary
             character_set_results                           utf8
              character_set_server                           utf8
              character_set_system                           utf8
                character_sets_dir     /usr/share/mysql/charsets/
    
    a doufám, že se tím zase na nějakou dobu zbavím problémů. Kdyby se správce (což jsem já) zbláznil a rozhodl se vrátit zpátky na latin2, tak překóduje celou databázi a změní něco v /etc. A mě jakožto uživateli bude všechno nadále fungovat aniž bych cokoli měnil.
    19.3.2007 00:50 8an | skóre: 30
    Rozbalit Rozbalit vše Re: client encoding při připojení z PHP do MySQL
    Ten parametr "use_unicode = True" podle mě nedělá nic jiného než "SET NAMES utf8", takže to nic neřeší. Já asi u databází Wordpressu a podobných podivností nastavím Latin1, aby to nedělalo konverzi kódování, a zbytek nechám. Nechce se mi kompilovat MySQL a řešit pak aktualizace ručně...
    If you build an operating system that even an idiot can use, only idiots will use it.
    19.3.2007 01:21 razor | skóre: 33
    Rozbalit Rozbalit vše Re: client encoding při připojení z PHP do MySQL
    Zdar, use_unicode = True dělá to, že textová data jsou na straně pythonu překonvertována na datový typ unicode. Jinak je použit datový typ str. Znakovou sadu to neovlivňuje.
    19.3.2007 06:55 pasmen | skóre: 45 | blog: glob | Praha
    Rozbalit Rozbalit vše Re: client encoding při připojení z PHP do MySQL
    S tim kodovanim mate asi pravdu, default-character-set = kodovani v sekci [client] mozna nema vliv na kodovani jake klient prevezme. Ale nasel jsem jeste jednu vec: mohlo by pomoci toto
    [mysqld]
    init_connect = "SET NAMES utf8";
    Vice je uvedeno v manualove strance mysqld (8).
    19.3.2007 07:33 razor | skóre: 33
    Rozbalit Rozbalit vše Re: client encoding při připojení z PHP do MySQL
    Zdar, default-character-set = kodovani v sekci [client] v my.cnf podle mě má vliv na to, jaké kódování převezme klient (v tomto případě php). Lze ověřit např:
    <?php
    $link = mysql_connect('localhost', '', '' );
    $result = mysql_query("show variables like '%character%'");                                       
    while ($row = mysql_fetch_row($result))
        echo "$row[0] -> $row[1]\n";
    mysql_close($link);
    ?>
    před a po editaci my.cnf
    19.3.2007 08:05 pasmen | skóre: 45 | blog: glob | Praha
    Rozbalit Rozbalit vše Re: client encoding při připojení z PHP do MySQL
    Podle me taky (viz. muj prispevek vyse), ale jisty si nejsem. Kazdopadne s tim init_connect by to mela byt tutovka.
    19.3.2007 10:31 azurIt | skóre: 34 | blog: zatial_bez_mena
    Rozbalit Rozbalit vše Re: client encoding při připojení z PHP do MySQL
    ano to urcite pojde, tiez to takto pouzivam. avsak potom mozu mat problem ludia, ktori pouzivaju ine kodovanie :) ako som uz pisal vyssie, 'set names' je proste nutnost ak niekto chce aby mu jeho app fungovala vsade.
    19.3.2007 10:30 azurIt | skóre: 34 | blog: zatial_bez_mena
    Rozbalit Rozbalit vše Re: client encoding při připojení z PHP do MySQL
    nie je to tak, pozri si moj prispevok vyssie.

    sekcia [client] je len pre klienta dodavaneho spolu s MySQL serverom.
    19.3.2007 10:32 razor | skóre: 33
    Rozbalit Rozbalit vše Re: client encoding při připojení z PHP do MySQL
    není tomu tak. Pro mysql klienta je určena sekce [mysql] .
    19.3.2007 11:26 pasmen | skóre: 45 | blog: glob | Praha
    Rozbalit Rozbalit vše Re: client encoding při připojení z PHP do MySQL
    Mas samozrejme pravdu, predtim jsem si nebyl jisty tak jsem ho nechal pri tom jeho, ale prave jsem se koukal, a to co je uvedeno v sekci [client] se predava _vsem_ klientum.
    19.3.2007 10:40 8an | skóre: 30
    Rozbalit Rozbalit vše Re: client encoding při připojení z PHP do MySQL
    Dík moc, to je přesně ono :o)
    If you build an operating system that even an idiot can use, only idiots will use it.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.