» »

[MariaDB] Insert unicode chars... FIX-ed

[MariaDB] Insert unicode chars... FIX-ed

HotBurek ::

Dobro jutro.


Evo, nov dan, nov izziv.

Pri vnosu podatkov v tabelo pri nekaterih vnosih dobim sledeč error:
sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError)
(1366, "Incorrect string value: '\\xF0\\x9F\\x8E\\x81 t...' for column ``.``.`p_name` at row 1")

Sedajle sem telovadil na bazi. Nekaj dokumentacije:
https://stackoverflow.com/questions/2108824/mysql-incorrect-string-value-error-when-save-unicode-string-in-django
https://sebhastian.com/mysql-incorrect-string-value/
https://code.djangoproject.com/ticket/18392#comment:19
https://mariadb.com/kb/en/innodb-system-variables/#innodb_large_prefi

Porihtal sem vse:
V /etc/mysql/mariadb.conf.d/50-server.cnf sem vnesel innodb_large_prefix = 1, ter service mariadb restart
Tabela ima charset utf8mb4, collation utf8mb4_general_ci
Pognal OPTIMIZE TABLE `table`;

Pa mi še kar javlja error.

Zanimivo je, da če naredim novo testno tabelo z istimi podatki za charset in collation kot zgoraj, tam pa dela.


Sedaj pa. Ker nimam nobene potrebe po shranjevanju teh znakcev (vsaj zaenkart ne), me zanima, kako bi lahko v Python-u nek string peljal žez proceduro, in iz stringa odstranil vse te znakce?

Primer:

input = HOGO sprchový gel + ZDARMA 🎁 textilní houbička na mytí, 500 ml
output = HOGO sprchový gel + ZDARMA textilní houbička na mytí, 500 ml

Se pravi, da odstrani tisto škatlco.

-----------------------------------------------------------------------------------------------------------------

UPDATE

Zdej sem ugotovil, da če ta query, ki faila, poženem direk (preko DBeaver klienta), pa naredi insert. Se prav, da je Sqlalchemy problem.

----------------------------------------------------------------------------------------------------------------

FIX

Potrebno je bilo nastavit charset na client strani, in spremenit utf8 v utf8mb4.

sqlhost = "mysql://user:password@localhost:3306/database?autocommit=true&charset=utf8";
sqlhost = "mysql://user:password@localhost:3306/database?autocommit=true&charset=utf8mb4";

Info vir: https://stackoverflow.com/questions/247...

Zarad bogih 3 črk ni delal. Krneki so ti računalniki. 8-O
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
  • spremenilo: HotBurek ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[MariaDB] Kje se nahaja nastavitev za "innodb_file_per_table"?

Oddelek: Programiranje
6537 (466) HotBurek
»

Postavitev mySQL

Oddelek: Programiranje
92269 (1847) M01O
»

[UWP] [C#]

Oddelek: Programiranje
424233 (2263) BivšiUser2
»

[php] encoding niza

Oddelek: Izdelava spletišč
173942 (1857) BivšiUser2
»

Šumniki v php-ju

Oddelek: Izdelava spletišč
214775 (3278) JoSmo

Več podobnih tem