Non-breaking whitespace (MySQL): verschil tussen versies
Naar navigatie springen
Naar zoeken springen
(Nieuwe pagina aangemaakt met 'Tijdens verwerken van een UTF-8 import-bestand in MySQL, leek het alsof MySQL spaties niet herkende (Dec. 2019). Uiteindelijk bleken de betreffende strings geen gew...') |
|||
(Een tussenliggende versie door dezelfde gebruiker niet weergegeven) | |||
Regel 1: | Regel 1: | ||
+ | [[file:20191201-0548.png|thumb|Dit is het probleem: De eerste spatie is geen gewone spatie (<code>0x20</code>), maar ''NBSP'' (''Non-breaking whitespace''): <code>0xc2a0</code>. Hoe fix ik dat?]] | ||
Tijdens verwerken van een UTF-8 import-bestand in MySQL, leek het alsof MySQL spaties niet herkende (Dec. 2019). Uiteindelijk bleken de betreffende strings geen gewone spaties te bevatten (<code>20</code>), maar ''Non-breaking white spaces'' (<code>c2 a0</code>). | Tijdens verwerken van een UTF-8 import-bestand in MySQL, leek het alsof MySQL spaties niet herkende (Dec. 2019). Uiteindelijk bleken de betreffende strings geen gewone spaties te bevatten (<code>20</code>), maar ''Non-breaking white spaces'' (<code>c2 a0</code>). | ||
Regel 4: | Regel 5: | ||
* Hoe vervang je NBSP voor gewone spaties? | * Hoe vervang je NBSP voor gewone spaties? | ||
− | === Bronnen | + | == Niet == |
+ | |||
+ | === Regular expressions === | ||
+ | |||
+ | Filteren mbv. ASCII-codes in regular expressions, lijkt niet zomaar te werken: | ||
+ | |||
+ | <pre> | ||
+ | select device_sku from device_tmp | ||
+ | where | ||
+ | device_sku regexp "\x42"; | ||
+ | </pre> | ||
+ | |||
+ | Ongetwijfeld kunnen regular expressions overweg met karaktercodering, maar dit lijkt niet de manier te zijn (met <code>\\\</code> lukt 't ook niet). | ||
+ | |||
+ | == Bronnen == | ||
* https://stackoverflow.com/questions/5295936/whitespace-in-a-database-field-is-not-removed-by-trim - PHP | * https://stackoverflow.com/questions/5295936/whitespace-in-a-database-field-is-not-removed-by-trim - PHP |
Versie van 1 dec 2019 05:49
Tijdens verwerken van een UTF-8 import-bestand in MySQL, leek het alsof MySQL spaties niet herkende (Dec. 2019). Uiteindelijk bleken de betreffende strings geen gewone spaties te bevatten (20
), maar Non-breaking white spaces (c2 a0
).
- Hoe herken je NBSP in strings?
- Hoe vervang je NBSP voor gewone spaties?
Niet
Regular expressions
Filteren mbv. ASCII-codes in regular expressions, lijkt niet zomaar te werken:
select device_sku from device_tmp where device_sku regexp "\x42";
Ongetwijfeld kunnen regular expressions overweg met karaktercodering, maar dit lijkt niet de manier te zijn (met \\\
lukt 't ook niet).
Bronnen
- https://stackoverflow.com/questions/5295936/whitespace-in-a-database-field-is-not-removed-by-trim - PHP
- https://stackoverflow.com/questions/15214848/how-do-i-remove-non-breaking-spaces-from-a-column-in-sql-server - Sequel Server!
- https://stackoverflow.com/questions/41939514/find-non-breaking-space-in-mysql
- https://www.w3resource.com/mysql/string-functions/mysql-unhex-function.php