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 07:00 | Zajímavý projekt

Společnost Clockwork Tech představila DevTerm aneb open source přenosný terminál pro všechny vývojáře. Předobjednat jej lze v několika konfiguracích. K zájemcům by se měl dostat do dubna 2021. I s termální tiskárnou.

Ladislav Hagara | Komentářů: 9
včera 23:11 | Nová verze

Po více než roce od vydání verze 13.0 byla vydána nová verze 14.0 zvukového serveru PulseAudio. Přehled novinek v poznámkách k vydání. Vývojáři Fedory aktuálně řeší, zda zvukový server PulseAudio nenahradit již ve Fedoře 34 multimediálním serverem PipeWire (Wikipedie).

Ladislav Hagara | Komentářů: 7
včera 16:33 | Nová verze

Po sedmi měsících vývoje od vydání verze 1.1.0, v den osmého výročí představení projektu, byla vydána nová verze 1.2.0 správce balíčků GNU Guix a na něm postaveném stejnojmenném operačním systému GNU Guix. Tentokrát i s písní "Ode to One Two Oh" (ogg, txt). Na vývoji se podílelo 200 vývojářů. Přibylo 2 000 nových balíčků. Jejich aktuální počet je 15 329. Aktualizována byla také dokumentace. Včera proběhla Online Guix Day Conference. Odkazy na videozáznamy přednášek jsou na stránce konference.

Ladislav Hagara | Komentářů: 3
včera 14:22 | Zajímavý článek

Jiří Eischmann v článku Rygel: DLNA server, který je po ruce na MojeFedora.cz představuje DLNA (Digital Living Network Alliance) server Rygel, jenž je obsažen ve výchozí instalaci Fedora Workstation. Spuštění a nastavení Rygelu v GNOME je jednoduché, ale ve skutečnosti to je celkem pokročilý DLNA server, který nabízí řadu funkcí a nastavení.

Ladislav Hagara | Komentářů: 1
včera 00:55 | Nová verze

Po půl roce vývoje od vydání verze 4.12 byla vydána nová verze 4.13 svobodné náhrady proprietárních BIOSů a UEFI coreboot (Wikipedie). Na vývoji se podílelo 234 vývojářů. Provedli 4 200 commitů. Aktualizována byla také dokumentace.

Ladislav Hagara | Komentářů: 0
včera 00:44 | Nová verze

Byla vydána nová verze 6.4 multiplatformní digitální pracovní stanice pro práci s audiem (DAW) Ardour. Přehled novinek i s náhledy v oficiálním oznámení. Zdůraznit lze podporu VST3 pluginů.

Ladislav Hagara | Komentářů: 1
včera 00:33 | Nová verze

Multimediální přehrávač mpv byl vydán ve verzi 0.33.0. Jde o větší balík změn po bezmála 10 měsících.

Fluttershy, yay! | Komentářů: 0
22.11. 07:00 | Komunita

GIMP slaví 25 let (jpg). Peter Mattis a Spencer Kimball jej představili 21. listopadu 1995. Tenkrát to byla zkratka pro General Image Manipulation Program. Dnes je to GNU Image Manipulation Program. První verze byly postaveny nad tenkrát ještě proprietárním grafickým toolkitem Motif. Později si autoři vytvořili vlastní grafický toolkit GIMP ToolKit aneb GTK.

Ladislav Hagara | Komentářů: 39
20.11. 23:44 | Komunita

Vývojáři svobodného 3D softwaru Blender představili (Tweet) dalšího firemního sponzora Blenderu. Je jím společnost Facebook a úroveň sponzoringu je Patron, tj. minimálně 120 tisíc eur ročně.

Ladislav Hagara | Komentářů: 0
20.11. 15:22 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostní chybě CVE-2020-4788 v procesoru IBM POWER9. Lokální uživatel může získat citlivé informace z L1 cache.

Ladislav Hagara | Komentářů: 0
Jak nakládáte s řetězovými e-maily?
 (6%)
 (41%)
 (3%)
 (3%)
 (4%)
 (9%)
 (58%)
Celkem 279 hlasů
 Komentářů: 8, poslední 16.11. 22:50
Rozcestník

Dotaz: mariadb (mysql) : invalid utf8 character string

25.6. 08:27 Milan Uhrák | skóre: 29 | blog: milan_at_ABC
mariadb (mysql) : invalid utf8 character string
Přečteno: 782×
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. 08:44 EtDirloth | skóre: 10
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. 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. 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. 09:38 EtDirloth | skóre: 10
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. 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. 09:48 EtDirloth | skóre: 10
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. 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. 13:40 OldFrog {Ondra Nemecek} | skóre: 34 | 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. 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.