sql >> Databáze >  >> RDS >> Mysql

Změnit kódování seznamu objektů

mám podezření co se zde děje, je jednoduše:vaše databáze má sloupce, které nejsou Unicode, a vy se pokoušíte uložit data Unicode. Nereprezentovatelné postavy budou skutečně řecké. Správná oprava je:ujistěte se, že váš sloupec je unicode. Zásahy s kódováním sloupců mohly práce, ale sakra to je hodně práce ve srovnání s pouhým použitím unicode.

Dapper předává věci „tak jak jsou“ ADO.NET; co poskytovatel udělá, je na poskytovateli. existuje způsob, jak mu sdělit, aby si při odesílání dat do vybral mezi ANSI a Unicode databáze, nicméně - přes DbString , tj.

conn.Execute(sql, new {
    id, name,
    desc = new DbString { IsAnsi = true, Value = desc }
});

To vám také umožňuje ovládat délku atd. Nekontrolujeme však kódování tady; kódování je obvykle vlastností samotné databáze nebo poskytovatele. Pokud má MySQL nějaké přizpůsobené způsoby, jak to ovládat v ADO.NET, jsem "všechny uši", ale nejprve:musíte to zprovoznit v surovém ADO.NET.




  1. SELECT DISTINCT pouze první čtyři čísla

  2. líný dotaz clojure.java.jdbc

  3. Je toto lomítko ve skriptu Oracle PL/SQL chyba?

  4. Různé typy timezone_type na objektu DateTime