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 | Nová verze

Google Chrome 84 byl prohlášen za stabilní (YouTube). Nejnovější stabilní verze 84.0.4147.89 přináší řadu oprav a vylepšení. Vylepšeny byly také nástroje pro vývojáře. Opraveno bylo 38 bezpečnostních chyb.

Ladislav Hagara | Komentářů: 0
včera 21:55 | Zajímavý článek

Vláda v pondělí 13. července projednala Výroční zprávu o stavu otevřených dat za rok 2019. Ke stažení je na Portálu otevřených dat (pdf).

Ladislav Hagara | Komentářů: 0
včera 16:22 | Komunita

MojeFedora.cz informuje, že FESCo schválilo návrh, aby se jako výchozí editor v terminálu od Fedory 33 používalo GNU nano. Fedora doteď žádný výchozí editor pro terminál nastavený neměla a nechávala to na jednotlivých programech. Ty často používané, jako třeba git, ale ve výchozím stavu používaly editor vi, který autor návrhu nepovažuje za příliš intuitivní.

Ladislav Hagara | Komentářů: 15
včera 14:22 | Komunita

Dlouhodobá LTS podpora Debianu 8 Jessie vydaného 26. dubna 2015 skončila k 30. červnu 2020. K dispozici je placená rozšířená dlouhodobá podpora ELTS do 30. června 2022. Poslední opravné vydání Debianu 9 Stretch uvolněného 17. června 2017 bude vydáno 18. července 2020. Jeho dlouhodobá podpora je plánována do 30. června 2022. Plánujete-li ji využívat, vývojáři ocení vyplnění dotazníku ohledně této LTS podpory.

Ladislav Hagara | Komentářů: 4
včera 06:00 | Nová verze

Byla vydána nová verze 1.26.0 sady nástrojů pro správu síťových připojení NetworkManager. Novinkám se v příspěvku svém na blogu věnuje Thomas Haller.

Ladislav Hagara | Komentářů: 4
13.7. 13:00 | Zajímavý software

Laboratoře CZ.NIC zveřejnily software DNS Probe. Jeho úkolem je zachycovat DNS provoz na síťovém rozhraní (UDP i TCP), párovat DNS dotazy s příslušnými odpověďmi a exportovat konsolidované záznamy o každé jednotlivé DNS transakci, která se v síťovém provozu vyskytla.

Ladislav Hagara | Komentářů: 0
13.7. 08:00 | Nová verze

Byla vydána verze 2.2.0 svobodného softwaru HAProxy (The Reliable, High Performance TCP/HTTP Load Balancer; Wikipedie) řešícího vysokou dostupnost, vyvažování zátěže a reverzní proxy. Detailní přehled novinek v příspěvku na blogu společnosti HAProxy Technologies.

Ladislav Hagara | Komentářů: 2
13.7. 01:11 | Nová verze

Správce oken IceWM (Wikipedie) byl vydán ve verzi 1.7.0. Přehled novinek, vylepšení a oprav na GitHubu.

Ladislav Hagara | Komentářů: 9
12.7. 01:22 | Komunita

Před dvěma lety se Andrew Kelley rozhodl naplno věnovat se svému koníčku, tj. vývoji open source programovacího jazyka Zig (GitHub). Opustil své dobře placené místo v OkCupid a vytvořil si účet na Patreonu. Včera představil nadaci Zig Software Foundation zastřešující propagaci a další vývoj tohoto programovacího jazyka. Podpořit ji lze na GitHub Sponsors (aktuálně 66 % z měsíčního cíle 8 600 $).

Ladislav Hagara | Komentářů: 3
11.7. 22:11 | Nová verze

Byla vydána verze 2.0.10 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Nově využívá nedávno vydaný Free Pascal Compiler (FPC) 3.2.0.

Ladislav Hagara | Komentářů: 14
Používáte některé open-source řešení [protokol] pro šifrovaný instant messaging?
 (22%)
 (31%)
 (4%)
 (11%)
 (17%)
 (5%)
 (13%)
 (24%)
Celkem 350 hlasů
 Komentářů: 39, poslední včera 00:13
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: 135×
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
25.6. 13:40 OldFrog {Ondra Nemecek} | skóre: 33 | 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

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.