Policisté zadrželi odsouzeného drogového dealera Tomáše Jiřikovského, který daroval ministerstvu spravedlnosti za tehdejšího ministra Pavla Blažka (ODS) bitcoiny v miliardové hodnotě, a zajistili i darovanou kryproměnu. Zadržení Jiřikovského může být podle ministerstva důležité k rozuzlení kauzy, která vypukla koncem května a vedla ke konci Blažka. Zajištění daru podle úřadu potvrzuje závěry dříve publikovaných právních
… více »Administrativa amerického prezidenta Donalda Trumpa jedná o možném převzetí podílu ve výrobci čipů Intel. Agentuře Bloomberg to řekly zdroje obeznámené se situací. Akcie Intelu v reakci na tuto zprávu výrazně posílily. Trump minulý týden označil Tana za konfliktní osobu, a to kvůli jeho vazbám na čínské společnosti, čímž vyvolal nejistotu ohledně dlouholetého úsilí Intelu o obrat v hospodaření. Po pondělní schůzce však prezident o šéfovi Intelu hovořil příznivě.
Společnost Purism stojící za linuxovými telefony a počítači Librem má nově v nabídce postkvantový šifrátor Librem PQC Encryptor.
VirtualBox, tj. multiplatformní virtualizační software, byl vydán v nové verzi 7.2. Přehled novinek v Changelogu. Vypíchnou lze vylepšené GUI.
Eric Migicovsky, zakladatel společnosti Pebble, v lednu oznámil, že má v plánu spustit výrobu nových hodinek Pebble s již open source PebbleOS. V březnu spustil předprodej hodinek Pebble Time 2 (tenkrát ještě pod názvem Core Time 2) za 225 dolarů s dodáním v prosinci. Včera představil jejich konečný vzhled (YouTube).
Byla oznámena nativní podpora protokolu ACME (Automated Certificate Management Environment) ve webovém serveru a reverzní proxy NGINX. Modul nginx-acme je zatím v preview verzi.
Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 25.08. Přehled novinek i s náhledy a videi v oficiálním oznámení.
Společnost Perplexity AI působící v oblasti umělé inteligence (AI) podala nevyžádanou nabídku na převzetí webového prohlížeče Chrome internetové firmy Google za 34,5 miliardy dolarů (zhruba 723 miliard Kč). Informovala o tom včera agentura Reuters. Upozornila, že výše nabídky výrazně převyšuje hodnotu firmy Perplexity. Společnost Google se podle ní k nabídce zatím nevyjádřila.
Intel vydal 34 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20250812 mikrokódů pro své procesory řešící 6 bezpečnostních chyb.
Byla vydána nová verze 1.25 programovacího jazyka Go (Wikipedie). Přehled novinek v poznámkách k vydání.
Řešení dotazu:
mysql> use nase_db; ... GO! mysql> source nase_db_utf8.sqlNevím, zda tento poslední příkaz lze provést přímo z mysql a pokud ano, kde má být umístěn záložní soubor databaze.sql .
LANG=cs_CZ.UTF-8 LANGUAGE= LC_CTYPE="cs_CZ.UTF-8" LC_NUMERIC="cs_CZ.UTF-8" LC_TIME="cs_CZ.UTF-8" LC_COLLATE="cs_CZ.UTF-8" LC_MONETARY="cs_CZ.UTF-8" LC_MESSAGES="cs_CZ.UTF-8" LC_PAPER="cs_CZ.UTF-8" LC_NAME="cs_CZ.UTF-8" LC_ADDRESS="cs_CZ.UTF-8" LC_TELEPHONE="cs_CZ.UTF-8" LC_MEASUREMENT="cs_CZ.UTF-8" LC_IDENTIFICATION="cs_CZ.UTF-8" LC_ALL=Výstup v PHP je stejný, v PHP mi příkaz echo mb_internal_encoding(); stále vyjíždí ISO-8859-1 ..
mysql> select nazevfirmy from telseznam where nazevfirmy like 'P%'; P?íšern? žlu?ou?ký k?? úp?l
mysql> select * from xxxx; +----------------------------------+ | pole | +----------------------------------+ | Příšerně žluťoučký kůň | +----------------------------------+ 1 row in set (0.00 sec)je vše v pořádku.
mysql> show create database MyDatabase; mysql> show create table MyTable;
mysql> show create database pracex; +----------+---------------------------------------------------------------------------------------+ | Database | Create Database | +----------+---------------------------------------------------------------------------------------+ | pracex | CREATE DATABASE `pracex` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_czech_ci */ | +----------+---------------------------------------------------------------------------------------+ 1 row in set (0.06 sec)
mysql> show create table telseznam; +-----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | telseznam | CREATE TABLE `telseznam` ( `pismeno` char(1) CHARACTER SET utf8 COLLATE utf8_czech_ci DEFAULT NULL, `nazevfirmy` text, `FAX` text, `TEL` text, `poznamka` varchar(250) DEFAULT NULL, `datum` date DEFAULT NULL, `id` int(10) unsigned NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=1025 DEFAULT CHARSET=latin1 |Vidím, že v tabulce to stále není ono ..
CREATE TABLE
.%s/DEFAULT CHARSET=latin1//g
na dump přet zpětným nalétím do db by mohlo pomoct.
Navrhoval bych:
mysqldump -u user -p --default-character-set=utf8 DB4export > dbdump.sql
%s/DEFAULT CHARSET=latin1//g
(vi
-čkem, sed
-em nebo čím :) ) - vymazání znamená použítí defaultu DBlatin1
. (vi
-čkem, grepe
-em nebo čím :) ) - mohly by mít kódování i samotné sloupce :(CREATE DATABASE novadb DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_czech_ci;
USE novadb;
\W
zapnutí varování (to 'W' je velké! :))\T vystupnisoubor
od fčul všechno také zapíše do 'vystupnisoubor' (to 'T' je velké! a do toho soubor se to připojuje, takže by neměl existovat :))source dbdump.sql
\q
%s/DEFAULT CHARSET.latin1//g
- rozšířený zápis pro tabulku, asi je v tom dumpu použitý%s/CHARSET.latin1//g
- zkrácený zápis, který asi v dumpu nebude%s/CHARACTER SET.latin1 COLLATE.latin1[0-9a-zA-Z_-]*//g
- zápis včetně řazení pro sloupec%s/CHARACTER SET.latin1//g
- zápis bez řazení pro sloupecmysqldump -u user -p --default-character-set=utf8 --no-data --routines DB4export > dbdump-struct.sql
mysqldump -u user -p --default-character-set=utf8 --skip-triggers --no-create-info --skip-add-drop-table --disable-keys --hex-blob DB4export > dbdump-data.sql
%s/DEFAULT CHARSET.latin1//g
%s/CHARSET.latin1//g
%s/CHARACTER SET.latin1 COLLATE.latin1[0-9a-zA-Z_-]*//g
%s/CHARACTER SET.latin1//g
vi
-čkem, sed
-em nebo čím :) ) - vymazání znamená použítí defaultu DBlatin1
. (vi
-čkem, grepe
-em nebo čím :) )CREATE DATABASE novadb DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_czech_ci;
USE novadb;
\W
zapnutí varování (to 'W' je velké! :))\T vystupnisoubor
od fčul všechno také zapíše do 'vystupnisoubor' (to 'T' je velké! a do toho soubor se to připojuje, takže by neměl existovat :))source dbdump-struct.sql
SELECT '--- TADY zacianji DATA ---' AS info;
- jen pro do očí bijícího oddělení do výstupusource dbdump-data.sql
\q
mysql> select 'příšerně žluťoučký kůň' as info; +----------------------------------+ | info | +----------------------------------+ | příšerně žluťoučký kůň | +----------------------------------+ 1 row in set (0.00 sec)Nové údaje se do databáze zadávají správně, ale staré se nepřevedou.
mysqldump -u user -p --skip-set-charset --default-character-set=latin1 --skip-triggers --no-create-info --skip-add-drop-table --disable-keys --hex-blob DB4export > dbdump-data.sql
| telseznam | CREATE TABLE `telseznam` ( `pismeno` char(1) COLLATE utf8_czech_ci DEFAULT NULL, `nazevfirmy` text COLLATE utf8_czech_ci, `FAX` text COLLATE utf8_czech_ci, `TEL` text COLLATE utf8_czech_ci, `poznamka` varchar(250) COLLATE utf8_czech_ci DEFAULT NULL, `datum` date DEFAULT NULL, `id` int(10) unsigned NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=1022 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci |a dále:
mysql> select 'příšerně žluťoučký kůň' as info; +----------------------------------+ | info | +----------------------------------+ | příšerně žluťoučký kůň | +----------------------------------+ 1 row in set (0.00 sec)ale pokud zadám příkaz
select * from telseznam;dostanu m.j. "pí. Bednáøová" ...
mysqldump -u user -p --skip-set-charset --default-character-set=latin2 --skip-triggers --no-create-info --skip-add-drop-table --disable-keys --hex-blob DB4export > dbdump-data.sql
mysql> show create database prace; +----------+------------------------------------------------------------------+ | Database | Create Database | +----------+------------------------------------------------------------------+ | prace | CREATE DATABASE `prace` /*!40100 DEFAULT CHARACTER SET latin1 */ | +----------+------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql> show create table telseznam; +-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | telseznam | CREATE TABLE `telseznam` ( `pismeno` char(1) character set utf8 collate utf8_czech_ci default NULL, `nazevfirmy` text, `FAX` text, `TEL` text, `poznamka` varchar(250) default NULL, `datum` date default NULL, `id` int(10) unsigned NOT NULL auto_increment, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=1025 DEFAULT CHARSET=latin1 | +-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql>Takto se to zobrazilo na původním stroji. Vidím, že default charset je "latin1"
latin1
mohou být klidně data latin2
, vždy záleží na nastavení více faktorů: character_set_client
, character_set_connection
, charset sloupce(tabulky či databáze) či co tam opravdu pošlete.Win-1250
s character_set_connection
a character_set_client
na utf8
v tabulce latin1
budou data, jestli se nepletu ve Win-1250 ale standardně se budou třídit dle latin1. (nejsem si jist co s tím udělá v tomto případěcharacter_set_client
- prostě je třeba mít nastaveno vše správně)'ěščřžýáíéďťňúůĚŠČŘŽÝÁÍÉĎŤŇÚŮ'
a dumpne se to:
mysqldump -u user -p --skip-set-charset --default-character-set=binary --skip-triggers --no-create-info --skip-add-drop-table --disable-keys DB4export > dbdump-data.sql(znaková sada binary, a bez --hex-blob)
'ěščřžýáíéďťňúůĚŠČŘŽÝÁÍÉĎŤŇÚŮ'
, či je švihnout sem.iso-8859-1
- latin1, iso-8859-2
- latin2ěščřžýáíéďťňúůĚŠČŘŽÝÁÍÉĎŤŇÚŮ
případně plus äëïöüÄËÏÖÜ
stejnou cestou jak se data do db dostávala doposud.iconv
na převod a zkoušel varianty.SHOW CREATE TABLE t;
v původní databáziěščřžýáíéďťňúůĚŠČŘŽÝÁÍÉĎŤŇÚŮ
vloženého cestou jako doposud (mysql> SELECT pole FROM tabulkaVpuvodnidb WHERE poleid=idpoleprotest
)ěščřžýáíéďťňúůĚŠČŘŽÝÁÍÉĎŤŇÚŮ
vloženého přes mysql klienta| telseznam | CREATE TABLE `telseznam` ( `pismeno` char(1) character set utf8 collate utf8_czech_ci default NULL, `nazevfirmy` text, `FAX` text, `TEL` text, `poznamka` varchar(250) default NULL, `datum` date default NULL, `id` int(10) unsigned NOT NULL auto_increment, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=1026 DEFAULT CHARSET=latin1 |Přes vi jsem se snažil hromadně znaky 'ø' zaměnit za 'ř', což se v dumpu povedlo, ale v databázi místo toho byly jen otazníky, i když se nová databáze i tabulka hlásily jako charset utf8 ..
--skip-set-charset
)mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 301 Server version: 5.0.51a-24+lenny4 (Debian) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>Na novém stroji:
server:/home/dalibor# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 33 Server version: 5.1.49-1 (Debian) Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL v2 license Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>Obojí je pětková verze ..
binary
viz výše.
mysqldump -u user -p --skip-set-charset --default-character-set=binary --disable-keys DB4export telseznam > dbdump-telseznam.sqlMělo by to vysypat jen tabulku telseznam, promažte inserty a nechte tam jen ten „ěščřžýáí…“ a vložte to sem jako přílohu.
ALTER TABLE tabulka MODIFY sloupec TEXT CHARACTER SET cp1250;v původní db.
mysqldump -u user -p --skip-set-charset --default-character-set=utf8 --disable-keys --hex-blob DB4export > dbdump.sqla tento dump naimportovat do DB s utf8;
ALTER TABLE telefoniseznam MODIFY pismeno CONVERT TO CHARACTER SET cp1250;
(nebo tak nějak :)) v původní db.)SHOW TABLES
pak SHOW COLUMNS FROM x
a vyhodnocení nějakého regexp a pak bych vygeneroval SQl dotaz a až by se mi líbil, tak bych ho pustil :).mysqldump -u user -p --default-character-set=utf8 --no-data db | grep -i "CHARACTER SET"bo jak se zjistí, že jiné kódování než latin1 je jen u dvou sloupců v celé db, tak se lehce převedou tyto dva sloupce na cp1250 (
ALTER TABLE x MODIFY xx CONVERT TO CHARACTER SET cp1250
), udělá se binary export dat a přes iconv se převede z cp1250 na utf8 a to se naimportuje do nove vytvořené db dle tohoto (bod 1, 3, 5-prvních pět bodů)
--skip-set-charset --default-character-set=binary
/).
Tiskni
Sdílej: