Casussen (tekencodering)
Naar navigatie springen
Naar zoeken springen
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Incorrect string value: \xE2\x80\xAF (aug. 2019)
Foutmelding bij import in MySQL:
6 warning(s): 1366 Incorrect string value: '\xE2\x80\xAF: 2...' for column 'title' at row 132 1366 Incorrect string value: '\xE2\x80\xAF: 4...' for column 'title' at row 160 1366 Incorrect string value: '\xE2\x80\xAF: 1...' for column 'title' at row 278 1366 Incorrect string value: '\xE2\x80\xAF: 1...' for column 'title' at row 341 1366 Incorrect string value: '\xE2\x80\xAF: 2...' for column 'title' at row 352 1366 Incorrect string value: '\xE2\x80\xAF: 2...' for column 'title' at row 363
Ik weet zeker dat het bronbestand (Amazon-raport) UTF-8-gecodeerd is, en dat de data ook als zodanig geïmporteerd wordt.
UTF-8-code e2 80 af
staat voor NARROW NO-BREAK SPACE [1]. Ik vermoed dat MySQL daar niet mee overweg kan. Sois.
Line-ending 0d 0a (aug. 2019)
MySQL raakte in de war tijdens de import van een Amazon-exportbestand: Er stonden newlines of carriage returns in de geïmporteerde data.
Bronbestand - eerste regels:
00000000: efbb bf73 6b75 0961 7369 6e0d 0a30 3130 ...sku.asin..010 00000010: 3009 4230 3048 5945 5549 584f 0d0a 3031 0.B00HYEUIXO..01
- Regels worden beëindigd met
0d 0a
. Dat is de gewone Windows-manier om regels te eindigen 0d
- Carriage return -\r
0a
- Newline -\n
- Om een of andere reden verslikt MySQL zich daarin bij importeren
- Het is een UTF-8-bestand. Zou de combinatie Windows-line-endings en UTF-8 MySQL in de war brengen?
Oplossing:
load data local infile '/tmp/asin-sku-fr.csv' into table 201908_asin_sku_codes_amz_fr_imp character set utf8 fields terminated by '\t' optionally enclosed by '"' lines terminated by '\r\n' # ← ZO SIMPEL - ALS JE HET WEET ignore 1 rows;