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í
×
dnes 08:00 | IT novinky

Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu aktuálně činí 1,00 %. Před měsícem to bylo 0,89 %. Nejčastěji používanou linuxovou distribucí je Ubuntu 20.04.2 LTS 64 bit. Přehled her oficiálně podporujících SteamOS a Linux na stránkách Steamu. Přehled her pro Windows běžících na Linuxu díky Protonu na stránkách ProtonDB.

Ladislav Hagara | Komentářů: 0
dnes 07:00 | Zajímavý projekt

Na Humble Bundle byla spuštěna akce Humble RPG Heroes Bundle. Za 1 euro lze koupit počítačovou hru Delver. Za 7 euro lze koupit navíc hry Tower of Time a Swords & Souls: Neverseen. Za 8 euro navíc Dreadlands, Slasher's Keep a Quest Hunter. Hry Delver, Tower of Time a Quest Hunter běží na Linuxu přímo. Zbylé tři s využitím Protonu nebo Wine.

Ladislav Hagara | Komentářů: 0
dnes 06:00 | Zajímavý článek

Jiří Eischmann v příspěvku Elektronický podpis a Linux v roce 2021 na svém blogu řeší získání kvalifikovaného certifikátu pro elektronický podpis u České pošty a možnosti jeho využití v Linuxu.

Ladislav Hagara | Komentářů: 0
31.7. 16:55 | Nová verze

Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 108 (pdf), HackSpace 45 (pdf) a Wireframe 52 (pdf).

Ladislav Hagara | Komentářů: 0
31.7. 16:44 | Zajímavý projekt

Jeff Geerling, který se věnuje mj. testování kompatibility různých komponent s Raspberry Pi, oznamuje, že se mu podařilo dosáhnout povolení SATA ve výchozí konfiguraci jádra Raspberry Pi OS, oficiální distribuce pro Raspberry Pi. Zavádění systému ale zatím není připraveno na start ze SATA úložiště.

Fluttershy, yay! | Komentářů: 3
31.7. 16:33 | Zajímavý projekt

Emmanuele Bassi oznámil spuštění nového webu s dokumentací pro vývojáře aplikací pro desktopové prostředí GNOME. Web je generován pomocí nástroje Sphinx. Starý web je stále dostupný.

Fluttershy, yay! | Komentářů: 0
31.7. 02:11 | Pozvánky

Týden po online konferenci LibreOffice, ve dnech 30.9.-1.10., proběhne dvoudenní konference COOL days 2021 firmy Collabora, zaměřená na Collabora Online. Collabora Online je výkonná online kancelář založená na LibreOffice, která podporuje všechny hlavní formáty dokumentů, tabulek a prezentací a kterou můžete integrovat do vlastní infrastruktury.

… více »
Zdeněk Crhonek | Komentářů: 0
30.7. 18:11 | IT novinky

Hra, resp. interaktivní vyprávění Wanderlust: Transsiberian je na portále GOG.com zdarma, akce trvá do 3. srpna.

Fluttershy, yay! | Komentářů: 0
30.7. 18:00 | Nová verze

Dokumentační tým LibreOffice vydává příručku LibreOffice Draw 7.1. LibreOffice Draw umožňuje vytvořit cokoli od rychlého náčrtu až po složitou kresbu a poskytuje prostředky pro komunikaci pomocí grafiky a diagramů. S maximální velikostí stránky 300 × 300 cm je Draw vynikajícím balíkem pro tvorbu technických výkresů, brožur, plakátů a mnoha dalších dokumentů. Draw manipuluje s grafickými objekty, seskupuje je, ořezává, používá

… více »
Zdeněk Crhonek | Komentářů: 0
30.7. 12:00 | Komunita

Je poslední pátek v červenci, a proto všem systémovým administrátorům vše nejlepší k dnešnímu Dni systémových administrátorů (System Administrator Appreciation Day).

Ladislav Hagara | Komentářů: 15
Jak synchronizujete data mezi zařízeními?
 (29%)
 (17%)
 (13%)
 (13%)
 (29%)
Celkem 24 hlasů
 Komentářů: 3, poslední dnes 09:45
Rozcestník



Dotaz: mariadb (mysql) : invalid utf8 character string

25.6.2020 08:27 Milan Uhrák | skóre: 29 | blog: milan_at_ABC
mariadb (mysql) : invalid utf8 character string
Přečteno: 925×
Zdravím,

Mám sql příkaz, který uchovává v databázi obrázek a náhled. Po přechodu na novější verzi databáze dostávám warnings po vykonání příkazu k uložení - Invalid utf8 character string blabla.

Pole k uložení dat NEMAJÍ určený typ ( ostatní pole a tabulka utf8-czech-ci ). Nevím co změnit, aby hláška zmizela ( a přes mega soubor s hláškou ).

Vyšší utf asi nepomůže, protože to nejsou znaky. co ukládám, ale směsice - no prostě obrázek. Doposud používám fci mysqli::real-ecsape-string, ale ta nedokáže hlášce zabránit.

Díky za každou dobrou radu.

Řešení dotazu:


Odpovědi

25.6.2020 08:44 EtDirloth | skóre: 11
Rozbalit Rozbalit vše Re: mariadb (mysql) : invalid utf8 character string
Bolo by fajn spomenut verziu DB a ukazat strukturu tabulky + prikazu.

Bez tychto detailov mi napada, ze to ide do nejakeho varcharu (ktory implikuje ten charset), a teda treba pouzit typ stlpca priamo urceny pre binarne data. Napriklad blob a jeho varianty, resp. varbinary.
25.6.2020 09:31 Milan Uhrák | skóre: 29 | blog: milan_at_ABC
Rozbalit Rozbalit vše Re: mariadb (mysql) : invalid utf8 character string
Ahoj.

Verze serveru: 5.7.30-0ubuntu0.18.04.1 - (Ubuntu)

struktura tabukky
 	# 	Název 	Typ 	Porovnávání 	Vlastnosti 	Nulový 	Výchozí 	Komentáře 	Další 	Operace
	1 	IDPrimární 	varchar(64) 	utf8_czech_ci 		Ne 	Žádná 			
	2 	Data 	mediumblob 			Ano 	NULL 			
	3 	Thumb 	mediumblob 			Ne 	Žádná 			
	4 	Note 	varchar(200) 	utf8_czech_ci 		Ne 	Žádná 			
	5 	Mime 	varchar(30) 	utf8_czech_ci 		Ne 	Žádná 			
	6 	ThumbMime 	varchar(30) 	utf8_czech_ci 		Ne 	Žádná 			
	7 	Name 	varchar(128) 	utf8_czech_ci 		Ne 	Žádná 			
Data a Thumb jsou blob, bez určení typu porovnávání.

sqlko ti moc nenapoví, to jsem udělal v zápisu chyby. K serveru se dostane :
Zpráva MySQL : Warning : ( 1300 ) Invalid utf8 character string: 'FFD8FF'
INSERT INTO Images SET ID='0058a74348546954cde69c66a293d283', Note='', Mime='image/jpeg; charset=binary', ThumbMime='image/jpeg; charset=binary', Name='csc_2020_12_ZS+PL_str02.jpg', Data='����\0?JFIF......tam někde je ta chyba
na Data i Thubs použiju před ulokládaním real_escape_string

Ještě upozornění : obrázek ani náhled nevypadají poškozeně, zobrazí se bez hlášek ...
25.6.2020 09:32 Milan Uhrák | skóre: 29 | blog: milan_at_ABC
Rozbalit Rozbalit vše Re: mariadb (mysql) : invalid utf8 character string
Možná potom real_escape_string je tím problémem.
25.6.2020 09:38 EtDirloth | skóre: 11
Rozbalit Rozbalit vše Re: mariadb (mysql) : invalid utf8 character string
Ano, vyzera to tak - mysql_real_escape_string neescapuje multibyte znaky => interpretuje literal v kontexte charsetu pripojenia; preto na rozdiel od mysql_escape_string ma aj druhy parameter. Vyskusaj teda mysql_escape_string.
25.6.2020 09:41 Milan Uhrák | skóre: 29 | blog: milan_at_ABC
Rozbalit Rozbalit vše Re: mariadb (mysql) : invalid utf8 character string
To už jsem zkoušel, výsledek je stejný .. zapomněl jsem napsat.
25.6.2020 09:48 EtDirloth | skóre: 11
Rozbalit Rozbalit vše Re: mariadb (mysql) : invalid utf8 character string
Potom mozno explicitne nastavit set_charset pri pouziti mysqli_real_escape_string?
Řešení 1× (Milan Uhrák (tazatel))
25.6.2020 11:54 Milan Uhrák | skóre: 29 | blog: milan_at_ABC
Rozbalit Rozbalit vše Re: mariadb (mysql) : invalid utf8 character string
Píšu, že charset nic nemění. Nakonec jsem přes jiné otázky googlu našel funkci load_file, která zohlednuje blob pole, a nereflektuje charset ... trochu drbání levou rukou za pravým uchem, no, ale budiž.

Uhrák
Řešení 1× (Filip Jirsák)
25.6.2020 13:40 OldFrog {Ondra Nemecek} | skóre: 35 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: mariadb (mysql) : invalid utf8 character string
Binární data nemůžete vkládat jen tak v insertu, musíte je buď převést do bezpečné podoby base64 nebo hex anebo je vložit tou funkcí load_file. Koukněte na příklady do dokumentace k příslušné databázi. Taky koukněte, jak jsou ty bloby reprezentované při dumpu databáze.
-- OldFrog
20.7.2020 06:37 PetrHL | skóre: 17 | blog: petr_h | Neratovice
Rozbalit Rozbalit vše Re: mariadb (mysql) : invalid utf8 character string
Nepoužívejte utf8. Je to alias pro utf8mb3 a to nechcete. Vždy používejte utf8mb4.
"Do, or do not. There is no 'try.'" -- Jedi Master Yoda | CQRLOG | CQRPROP | HamQTH | Domů

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.