Casussen (tekencodering): verschil tussen versies
Naar navigatie springen
Naar zoeken springen
(Nieuwe pagina aangemaakt met '== Casus: Incorrect string value: \xE2\x80\xAF (aug. 2019) == Foutmelding bij import in MySQL: <pre> 6 warning(s): 1366 Incorrect string value: '\xE2\x80\xAF: 2....') |
|||
(13 tussenliggende versies door dezelfde gebruiker niet weergegeven) | |||
Regel 1: | Regel 1: | ||
− | == | + | == Incorrect string value: \xE2\x80\xAF (aug. 2019) == |
Foutmelding bij import in MySQL: | Foutmelding bij import in MySQL: | ||
Regel 16: | Regel 16: | ||
UTF-8-code <code>e2 80 af</code> staat voor ''NARROW NO-BREAK SPACE'' [https://www.utf8-chartable.de/unicode-utf8-table.pl?start=8192&number=128]. Ik vermoed dat MySQL daar niet mee overweg kan. Sois. | UTF-8-code <code>e2 80 af</code> staat voor ''NARROW NO-BREAK SPACE'' [https://www.utf8-chartable.de/unicode-utf8-table.pl?start=8192&number=128]. 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: | ||
+ | |||
+ | <pre> | ||
+ | 00000000: efbb bf73 6b75 0961 7369 6e0d 0a30 3130 ...sku.asin..010 | ||
+ | 00000010: 3009 4230 3048 5945 5549 584f 0d0a 3031 0.B00HYEUIXO..01 | ||
+ | </pre> | ||
+ | |||
+ | * Regels worden beëindigd met <code>0d 0a</code>. Dat is de gewone Windows-manier om regels te eindigen | ||
+ | * <code>0d</code> - Carriage return - <code>\r</code> | ||
+ | * <code>0a</code> - Newline - <code>\n</code> | ||
+ | * 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: | ||
+ | |||
+ | <pre> | ||
+ | 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; | ||
+ | </pre> | ||
+ | |||
+ | == Bronnen == | ||
+ | |||
+ | * https://stackoverflow.com/questions/6998506/text-file-with-0d-0d-0a-line-breaks | ||
+ | * https://stackoverflow.com/questions/33208518/difference-between-0x0a-and-0x0d/33208588 |
Huidige versie van 1 dec 2019 om 06:40
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;