Non-breaking whitespace (MySQL): verschil tussen versies

Uit De Vliegende Brigade
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 06:49

Dit is het probleem: De eerste spatie is geen gewone spatie (0x20), maar NBSP (Non-breaking whitespace): 0xc2a0. 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 (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