update/replace vreemde codes met regexp
Die heb ik er(bijna allemaal uit) door middel van :
Maar één ding lukt me niet in de tabel zit de "code": \\xEBl
Een :
geeft aan dat het om 222 records gaat.
Als ik via het CMS/MyphpAdmin/ of in een CSV export kijk zie ik, behalve de tekst die er hoort te staan, niks vreemds in het record staan.
Hoe kan ik de \\xEBl eruit krijgen of desnoods eerst (ter controle) vervangen door bijvoorbeeld: @#$
Als je vreemde tekens ziet, dan komt dat door je encoding. Blijkbaar sta je die nu met holbewonertactieken stuk voor stuk recht te breien in plaats van dat je netjes de boel laat converteren.
Maar tijdens het converteren stop PhpmyAdmin omdat deze codes niet te converteren is!!
Zegt deze holbewoner tegen de andere holbewoner!
Misschien is dit een handig artikel:
http://fangorn.thijma.nl/news/latin1-vs-utf8
Maar mogelijk kan je hier ook wat mee doen:
https://docs.cloudbees.com/docs/cloudbees-cd-kb/latest/cloudbees-cd-kb/kbec-00385-converting-a-mysql-database-from-latin-1-to-utf-8-before-upgrading-to-electricflow-8-0-1
Het is wel van belang dat je weet wat de waardes van de settings: character-set-server en collation-server zijn. Deze kan je in phpMyAdmin vinden, zodra je inlogt.
Gewijzigd op 12/07/2024 16:24:23 door - Ariën -
PHPmyadmin gaat aan de slag, maar komt dan met de fout <code> "fout in query #1366- incorrect string value: \\xEB|rij...'for column....ad row2.</code>
Die links ga ik straks even lezen alvast bedankt!
\
en je verandert de naam in Frans.
dan worden de teksten niet vertaald.
Evenzo met de collatie. (die trouwens meer zegt over de bijkomende zaken als sorteren, en je zou eigenlijk de character set van de kolom willen aanpassen).
Waarschijnlijk is je foutmelding een gevolg van "de kolom bevat nu waarden die niet te verwerken zijn met de nieuwe collatie"/
Vergelijk met het hernoemen van de kolom van Duits naar Frans.
Je hebt nu ineens tekens als ö en ß in je tekst die in het Frans niet voorkomen.
Betere werkwijze:
nieuwe kolom met de gewenste settings aanmaken en de inhoud van de oude geconverteerd naar deze nieuwe kolom brengen.
Eens kijken of ik dat op GitHub kan zetten.
Edit:
Ik geloof dat ik deze heb gebruikt:
https://gist.github.com/hollodotme/fe24b961680e08473072
of deze:
https://gist.github.com/pobegov/f8b293fb6eb658a13feb1c318e6c07ed
Let op: Maak backups!
Gewijzigd op 12/07/2024 19:19:03 door - Ariën -
Het gaat niet om ö of ñ of welke letter dan ook. Zoals ik in eerste instantie als schreef, Er zitten ONZICHTBARE!!! gegevens in die tabel. Daarom krijg ik een error.
De tabel heb ik al als CSV geëxporteerd. Op geschoond wat betreft zichtbare karakters.
Daarna weer geïmporteerd.
daarna kreeg toch weer de melding : "fout in query #1366- incorrect string value: \\xEB|rij...'for column....ad row2.
Als ik <code> SELECT * FROM `newsitems` WHERE `NewsItem_Intro` REGEXP '\\xEBl' </code> doe dan krijg ik als resultaat 222 records. In die records is niet te zien qua karakters wat daar niet hoort.
ik hoopte op een combinatie script dat de code wel kan vinden en die kan replacen met een leeg waarde
zoiets dus:
<code> UPDATE newsitems SET NewsItem_Intro = REPLACE(NewsItem_Intro, 'REGEXP '\\xEBl'' ''); </code>
Het is gewoon vreemd dat er vreemde tekens in staan waar MySQL (ik neem aan dat je dat gebruikt?) geen raad weet. Misschien een bug, wie zal het zeggen.
Dat zou je met een query moeten kunnen verhelpen. Het enige is dat je dat op zo'n manier moet zien te communiceren naar MySQL dat-ie het snapt. Misschien dat dit helpt:
Code (php)
1
UPDATE newsitems SET NewsItem_Intro = REPLACE(NewsItem_Intro, UNHEX('EB', '')); </code>
Ik heb het voorbeeld hier vandaan gehaald. (Zelf ben ik meer van PostgreSQL)
Zelf ben ik geen fan van phpMyAdmin. Vroeger was het een drama, en ik weet niet of dat nog steeds zo is. Bij het exporteren was het altijd hoop houden dat de export goed ging. Maar tegenwoordig gebruik ik voornamelijk HeidiSQL, en als ik op de server onderhoud moet plegen, dan doe ik dat met mysql op de server. Dan heb je bovendien geen lompe limieten...
HeidiSQL is een makkelijke lichtgewicht en tool die je ook als portable kan installeren.
De enige drie minpunten die ik kan verzinnen is dat het telkens wil updaten, alleen op Windows draait, en dat de ondersteuning voor PostgreSQL features minder is dan bij pgAdmin.
Een aantal jaren geleden zat ik ook op Windows / MySQL en toen was HeidiSQL ook mijn favoriete tool.
Het is me gelukt. dank voor de hulp en tips
- Ariën - op 14/07/2024 22:32:36:
Maar tegenwoordig gebruik ik voornamelijk HeidiSQL, en als ik op de server onderhoud moet plegen, dan doe ik dat met mysql op de server.
Voor Mac gebruikers: ik heb goeie ervaringen met Sequel Ace. Gratis te downloaden via de App Store.