Karaktersets & collation (MySQL): verschil tussen versies
Naar navigatie springen
Naar zoeken springen
Regel 1: | Regel 1: | ||
− | + | Amazon en Bol.com gebruiken uitsluitend ''ISO-8850-1 (Latin-1)-''karaktersets voor importbestanden. Ik hoef dus enkel in die karakterset te exporteren. | |
− | + | In MySQL wordt de gebruikte karakterset op twee plekken gespecificeerd: | |
− | |||
− | |||
− | |||
− | + | * Op tabelniveau | |
+ | * Per kolom. | ||
− | + | Het is goed mogelijk om in een tabel verschillende kolommen in verschillende tekencoderingen te hebben. Sterker nog: Dat gebeurt bij mij voortdurend. | |
+ | |||
+ | == De oplossing - Wat == | ||
+ | |||
+ | * Intern met UTF-8 werken, want open source | ||
+ | * Tijdens exportprocedures wordt meestal een tabel aangemaakt zoals <code>amazon_export</code>. Als ik direct na aanmaken van deze tabel zorg dat-ie 100% Latin 1 is, ben ik klaar. | ||
+ | |||
+ | == De oplossing - Hoe == | ||
+ | |||
+ | ''' Codering van een tabel uitlezen ''' | ||
+ | |||
+ | <pre> | ||
+ | SELECT default_character_set_name | ||
+ | FROM information_schema.SCHEMATA | ||
+ | WHERE schema_name = "schemaname"; | ||
+ | </pre> | ||
+ | |||
+ | == Zie ook == | ||
+ | |||
+ | * [[Bestandscodering achterhalen]] | ||
== Bronnen == | == Bronnen == |
Versie van 14 mei 2016 11:42
Amazon en Bol.com gebruiken uitsluitend ISO-8850-1 (Latin-1)-karaktersets voor importbestanden. Ik hoef dus enkel in die karakterset te exporteren.
In MySQL wordt de gebruikte karakterset op twee plekken gespecificeerd:
- Op tabelniveau
- Per kolom.
Het is goed mogelijk om in een tabel verschillende kolommen in verschillende tekencoderingen te hebben. Sterker nog: Dat gebeurt bij mij voortdurend.
De oplossing - Wat
- Intern met UTF-8 werken, want open source
- Tijdens exportprocedures wordt meestal een tabel aangemaakt zoals
amazon_export
. Als ik direct na aanmaken van deze tabel zorg dat-ie 100% Latin 1 is, ben ik klaar.
De oplossing - Hoe
Codering van een tabel uitlezen
SELECT default_character_set_name FROM information_schema.SCHEMATA WHERE schema_name = "schemaname";
Zie ook
Bronnen
- http://mysql.rjweb.org/doc.php/charcoll → Leuk achtergrondartikel + practisch, maar beetje oud
- https://docs.python.org/2/howto/unicode.html → Leuk achtergrondartikel
- http://www.whitesmith.co/blog/latin1-to-utf8/ → Leuk geschreven en mooie vormgeving
- http://www.garethsprice.com/blog/2011/fix-mysql-latin1-utf-character-encoding/
- http://blog.codekills.net/2012/03/20/in-mysql-latin1-isnt-actually-latin1/ → Oei, moeilijk!
- http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html