ge�nventariseerd ipv geïnventariseerd

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Op zoek naar een gedreven Medior/Senior PHP Develo

Voor mijn opdrachtgever ben ik met spoed op zoek naar Medior/Senior Developers om het huidige e-commerce platform naar een nieuwe niveau te brengen. Onze opdrachtgever is een bedrijf die zich sinds 2004 specialiseert in het onderhouden van meerdere succesvolle webshops m.b.t exclusieve elektronica producten. Het bedrijf is internationaal actief en één van de grootste leveranciers in het leveren van exclusieve elektronica producten binnen Europa. Functie-informatie Jij zal terechtkomen in een nieuw development team, deze zal in eerste instantie bestaan uit twee ervaren Medior Developers of Junior en een Senior Developer + de IT Manager. Jouw dagelijkse werkzaamheden zullen bestaan uit:

Bekijk vacature »

Senior Angular Developer

Opdrachtomschrijving Senior Angular Developer Computer Futures is op zoek naar een senior Angular developer voor een klant in Amsterdam. Je maakt onderdeel van een scrum team in een uitdagengde omgeving. Het bedrijf is continu bezig met innovatie en het introduceren van nieuwe technieken. Heb je ervaring met JavaScript development Angular 5+ Angular-CLI RXJS NGRX TypeScript Git/Gitflow SASS CI in Visual Studio Online/Jenkins of vergelijkbaar Tools of protocollen die je moet kennen NodeJS, NPM Linting Angular-Material REST/oData Flexbox Affiniteit met Unit testing, integration en end-to-end testing Code quality UX/UI design FP Ben je geïnteresseerd in bovenstaande en herken je je in

Bekijk vacature »

Medior PHP developer Enschede

Bedrijf: Dit bedrijf specialiseert zich al meer dan 100 jaar op de transport industrie. Waar bij zij samen met 1500 medewerkers werken aan het verbeteren van hun services en producten. Dit bedrijf verhuurt en verkoopt trailers en trucks. Daarnaast verhuren zij ook chauffeurs die producten van A naar B kan vervoeren en van B naar C. Dit internationaal bedrijf is een marktleider in het transporteren van trailers naar verschillende locaties binnen Europa. Dit bedrijf heeft een platte en informele structuur waarbij er een gezellige sfeer heerst. Dit bedrijf is makkelijk bereikbaar met openbaarvervoer en auto. Will jij meer weten over

Bekijk vacature »

Android developer remote

Voor een klant van Computer Futures ben ik per direct op zoek naar een ervaren Android developer die graag remote werkt. Je zult terecht komen in een start-up omgeving waar jij het voor het zeggen hebt op Android gebied. Het design team heeft al wat moois neergezet en nu is het aan jou om hier een gave Android applicatie van te maken. Genoeg ruimte voor eigen ingeving en creativiteit. Aanvullende informatie: - Amsterdam - 32/40 uur - Grotendeels remote - Zsm starten Technieken/Skills: - Android - Java - Kotlin - iOS - Swift Geinteresseerd? Neem dan contact op via 020

Bekijk vacature »

Front-end developer

Zeer interessante vacature voor een freelance front-end developer. Werk jij graag in een scrum team met de nieuwste frameworks? Wij zijn op zoek naar een freelance front-end developer. Tijdens dit project van 6 maanden werk je vanuit het kantoor in omgeving Amersfoort. Front-end developer Fulltime Werk jij graag mee aan een groot nieuwbouw project? Samen met een senior front-end developer, senior back-end developer en een Product Owner werk jij aan een nieuw configuratietool. Eind Q1 van 2019 moet dit project worden opgeleverd en dus is het belangrijk dat je functioneel kunt programmeren en kennis hebt van productomgevingen. Projectdetails uurtarief in

Bekijk vacature »

Als C#/.NET developer werken aan softwarepakketten

Organisatie & Afdeling In de omgeving van Arnhem zijn wij op zoek naar junior/medior C#/.NET developers die uitdaging vinden in het maken van softwarepakketten waar bedrijven een abonnement op kunnen aanvragen. Deze businesspartner richten hun dienstverlening op een specifiek markt van advocaten en accountancy. Het doel van deze organisatie is om de productiviteit van de klant te verbeteren en daardoor de klant winstgevender te maken. Om dit te behalen maken ze hun eigen software en door een goede samenwerking kunnen klanten eenvoudig gebruik maken van bepaalde aspecten die in de markt van de klant gebruikt worden. Ze leveren innovatieve oplossingen

Bekijk vacature »

Medior C# / .NET programmeur gezocht voor internat

Al 15 jaar vertegenwoordigen zij in Nederland een internationale overkoepelende organisatie omtrent Cloud ontwikkelingen en gespecialiseerde bedrijfssoftware. Het doel van de organisatie is om het werk van hun klanten efficiënter te maken en kwalitatief te verbeteren. Inmiddels hebben zij 3 vestigingen verspreid in Nederland waar 150 werknemer actief zijn. Om de vestiging in de regio Brabant uit te breiden, zoeken zij naar gedreven en ervaren .NET developers met enige kennis van Java. Ondanks het internationale karakter van de onderneming, wordt het bedrijfscultuur gekenmerkt door zijn ontspannen en dynamische sfeer. Benieuwd naar de vereisten voor deze functie? Lees dan hieronder verder

Bekijk vacature »

Medior .Net developer Xamarin en Web development

Medior .Net developer Xamarin en Web development Wat ga je doen als medior .Net developer? Jij gaat als Medior .Net developer werken in Amsterdam bij een bedrijf dat gespecialiseerd is in ontwerp, implementatie en beheer van IT infrastructuren, ontwikkeling van custom web en mobile oplossingen afgestemd op de wensen van de klant. Het bedrijf streeft naar maatwerkoplossingen en wil haar klanten helpen door alle softwareontwikkeling en het onderhoud uit handen te nemen van bedrijven. Als .Net developer ga je deze software bouwen met technieken als: .Net, C#, Xamarin en SQL. Je werkt in een klein scrumteam van 6 man met

Bekijk vacature »

Amuserende club op zoek naar PHP Developer

Dit bedrijf is 20 jaar geleden opgericht. Destijds was de corebusiness van het bedrijf nog het simpelweg ontwikkelen van onderwijzende games. In de loop der jaren hebben zij zich gespecialiseerd in 2 takken. Enerzijds zijn ze bezig met het ontwikkelen van interactieve video’s en anderzijds ontwikkelen zij een platform waarop je verschillende cursussen en trainingen kan volgen. Deze e-learning tools worden zelf bedacht en ontwikkeld. Op dit moment zijn zij daarnaast ook bezig met een aantal interessante VR-projecten. Het bedrijf telt op dit moment zo’n 20 medewerkers. Op dit moment zijn ze hard op zoek naar een Senior PHP Developer

Bekijk vacature »

.NET Ontwikkelaar gezocht die openstaat voor ontwi

Organisatie & Afdeling Voor een heel gaaf en jong bedrijf nabij Dronten ben ik op zoek naar een .NET developer die ‘the next step’ wilt maken m.b.t. de nieuwste technieken. Deze business partner is in 2014 van de grond losgekomen en zijn uitgegroeid tot een partij van 16 personen. Ze zijn gespecialiseerd in .NET ze hebben zowel opdrachten voor intern als extern. Naast dat deze partij voor verschillende klanten in verschillende markten specialisten detacheren, ontwikkelen ze intern ook aan een eigen software die ze aanbieden op de markt. Ontwikkeling geeft men de prioriteit en het is dan ook het doel

Bekijk vacature »

Communicatieve .NET Developer voor snel groeiende

Hier kom je te werken bij een stabiele internationale organisatie met een historie van meer dan veertig jaar en kent wereldwijd meer dan 1000 medewerkers. De sfeer is informeel en er is sprake van een platte structuur met korte lijnen. Het is niet gek als je jouw directeur tegen komt bij het koffieapparaat. Eerlijkheid, open, no nonsense, direct en menselijk zijn een aantal kernwoorden die typerend zijn voor de organisatie. De core-business van deze organisatie is niet IT gerelateerd maar de E-business krijgt hier een steeds grotere en belangrijkere rol. Er zijn genoeg projecten en ideeën die op de plank

Bekijk vacature »

Cybersecurity DevOps Ontwikkelaar Automation 3.200

Functieomschrijving Cybersecurity DevOps Ontwikkelaar Automation 3.200 - 5.000 DevOps Engineer Voor de vacature als Cybersecurity DevOps Ontwikkelaar Breda Automation ga je het volgende doen: Als DevOps Engineer maak je deel uit van ons internationaal team dat verantwoordelijk is voor het platform waarmee wij onze services leveren aan onze klanten. Je werkt mee aan de ontwikkeling van ons core platform. Je monitort de systemen en infrastructuur operationeel en draagt bij aan de ontwikkeling van procesautomatisatie. Je bouwt aan de testing en CI omgeving, ontwikkelt scripts en web based applicaties. Je maakt deel uit van een 7 dagen per week, 24 uur

Bekijk vacature »

Senior .NET Developer

Senior .NET ontwikkelaar Den Bosch Nog niet geheel up to date met alle moderne Tech die we momenteel op de markt hebben…. Maar zodra jij bent gestart in deze rol krijg je de vrijheid om strategische beslissingen te nemen aangaande nieuwe technologieën, daarnaast is er ook nog ruim budget! Hoe mooi is dat?!! Jij zal samen met jouw Devops team gaan bouwen aan automatie services en producten die direct door eindgebruikers zullen gaan worden gebruikt. Geheel nieuwe MS applicaties ontwikkelen maar ook zeker het verbeteren en optimaal laten werken van bestaande web applicaties behoren tot het takenpakket. Informele maar professionele

Bekijk vacature »

Junior C#.NET software developer voor maatsoftware

Dit bedrijf is een maat-software bedrijf dat zich richt op projecten van allerlei soorten en maten. Ze zetten zich apart door hun transparante en open werkwijze. Dit in combinatie met jaren ervaring en toewijding die hun huidige team meebrengt zorgt voor een moeilijk te evenaren kwaliteitstandaard die bij onze opdrachtgever speelt. Je zal terecht komen in een jong en enthousiast team met 4 collega’s. De projecten waaraan je zal werken lopen enorm uiteen. Zowel in inhoud als in looptijd. Denk hierbij aan projecten als webshops tot mobiele applicaties. Dit komt uiteraard door de enorm uiteen lopende klantwensen. Van multinationals tot

Bekijk vacature »

IT Traineeship junior software ontwikkelaar

Zoek jij een stevige uitdaging en de mogelijkheid om veel nieuwe dingen te leren in een dynamisch vakgebied? Doe mee aan ons IT Professional Program en ontwikkel jezelf tot software engineer! Je begint met een opleidingstraject van 2 tot 4 maanden. Hierin ga je aan de slag met verschillende technieken die je op conceptueel niveau leert te overzien en interpreteren. Onderwerpen die aan bod komen zijn o.a. programmeren (Java / C#/ Python), Object Oriëntatie, Databases, Webservices & webtechnologieën, Domain Driven Design en Continuous Integration/Continuous Delivery. Sommige van deze onderdelen sluit je af met een examen en bijbehorende certificering. Na de

Bekijk vacature »
Jan te Pas

Jan te Pas

11/10/2018 19:04:16
Quote Anchor link
Ik heb een database overgezet. Draaide op PHP 7 en gaat naar PHP 7. Ik heb de data geimporteerd. In de myPHPmanager zie ik de tekst goed in het veld staan. De codering van het veld is utf8mb4_bin. Nu roep ik de inhoud op in een pagina. En dan krijg ik ge�nventariseerd te zien ipv geïnventariseerd.

De codering in de pagina is utf-8.

Weet iemand hoe ik dit rechtzet, of wat er gebeurd is?
Gewijzigd op 11/10/2018 19:05:17 door Jan te Pas
 
PHP hulp

PHP hulp

14/12/2018 12:26:09
 
- Ariën -
Beheerder

- Ariën -

11/10/2018 19:07:48
Quote Anchor link
Is de encoding van de bestanden ook op UTF-8 ingesteld, en gebruikt de verbinding naar de database ook het kenmerk dat er UTF-8 wordt gebruikt? Enkel een collatie aanpassen is niet voldoende.
Gewijzigd op 11/10/2018 19:08:24 door - Ariën -
 
Jan te Pas

Jan te Pas

11/10/2018 19:20:47
Quote Anchor link
Hoi Ariën, dank alvast, maar zou ik dat moeten doen? Voordat ik de data wegschrijf? Welke opdracht moet ik DNA meegeven? Svp jouw hulp.
 
- Ariën -
Beheerder

- Ariën -

11/10/2018 19:23:39
Quote Anchor link
Hoe connect je nu met je database?
 
Jan te Pas

Jan te Pas

11/10/2018 19:28:05
Quote Anchor link
Dit is mijn connectie:

$servername = "localhost";
$username = "xxxxx";
$password = "xxxxxx";
$dbname = "xxxxxxx";
$servername = "localhost";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
 
Thomas van den Heuvel

Thomas van den Heuvel

11/10/2018 19:32:03
Quote Anchor link
Jan te Pas op 11/10/2018 19:04:16:
Weet iemand hoe ik dit rechtzet, of wat er gebeurd is?

Je zult eerst een inventarisatie moeten maken van wat er precies aan de hand is, dit kan een kwestie zijn van het document voorzien van een Content-Type header of meta-tag, maar aan de bovenstaande code te zien selecteerde je bij het maken van een database geen character encoding dus mogelijk is de data in je database "corrupt". Dit komt dan vaak pas naar boven als je een export doet en dan in een nieuwe opzet vervolgens wel op de goede manier een verbinding maakt met je database.

Maar eerst zul je dus de situatie moeten hercreëren om precies na te gaan hoe je data verkeerd geëncodeerd in je database zit om vervolgens een eenmalige omzetting te doen. Maar dat is niet bepaald een sinecure en vereist wel wat kennis van zaken.
 
Jan te Pas

Jan te Pas

11/10/2018 19:35:17
Quote Anchor link
Hoi Thomas,
Ik had de data geïmporteerd. En toen zag ik het. Gelukkig alleen testdata. Ik heb content-type en mega wel goed staan. Ik gooi het een keer leeg en ga nieuwe testdata inoeren. Dank.
 
- Ariën -
Beheerder

- Ariën -

11/10/2018 19:41:38
Quote Anchor link
Thomas van den Heuvel op 11/10/2018 19:32:03:
....dus mogelijk is de data in je database "corrupt". Dit komt dan vaak pas naar boven als je een export doet en dan in een nieuwe opzet vervolgens wel op de goede manier een verbinding maakt met je database.

Maar eerst zul je dus de situatie moeten hercreëren om precies na te gaan hoe je data verkeerd geëncodeerd in je database zit om vervolgens een eenmalige omzetting te doen. Maar dat is niet bepaald een sinecure en vereist wel wat kennis van zaken.

Dus met een export en import trek je dat weer recht, wil je zeggen?

Ik ga binnenkort een omzetting doen van iso-8859-1 naar UTF-8, maar ik heb geen idee of de data corrupt kan zijn. 40 MB aan data die 12 jaar lang is toegevoegd. Toen hield ik mij net als velen nog niet bezig met encoding.

Heb je misschien tips en trucs? En ja, backups staat heel dikgedrukt op mijn lijstje. ;-)
Gewijzigd op 11/10/2018 19:42:38 door - Ariën -
 
Adoptive Solution

Adoptive Solution

11/10/2018 19:44:09
Quote Anchor link
Ik gebruik dit :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$conn
= new mysqli($servername, $username, $password, $dbname);
$conn->set_charset("utf8mb4");
?>
 
Jan te Pas

Jan te Pas

11/10/2018 19:45:29
Quote Anchor link
Hier leer ik van. Dank.
 
Thomas van den Heuvel

Thomas van den Heuvel

11/10/2018 21:59:03
Quote Anchor link
- Ariën - op 11/10/2018 19:41:38:
Dus met een export en import trek je dat weer recht, wil je zeggen?

Nee.

Hier zijn al meerdere topics over geweest.

EDIT: een ALTER TABLE statement kun/zou je alleen moeten uitvoeren als de DATA ook echt van de voorgeschreven character encoding is, anders kan MySQL dit met geen fatsoen omzetten.

EDIT: het zomaar toevoegen van een set_charset() statement is een heel slecht idee, en wel om de volgende reden. Op dit moment is er mogelijk data verkeerd weggeschreven naar de database. Dit is -nadat je bent nagegaan wat het euvel precies is- waarschijnlijk toch redelijk eenvoudig te herstellen met een eenmalige (handmatige) conversie. Maar wat gebeurt er nu als je een set_charset() statement toevoegt en vervolgens vrolijk verdergaat met het vullen van data? De kans bestaat dan dat je dadelijk een mix van data met kloppende en niet-kloppende character encoderigen hebt, wat het praktisch onmogelijk (of in ieder geval een stuk moeilijker) maakt om alles in één keer recht te trekken.

Nogmaals, het is éérst zaak dat je uitzoekt wat er aan de hand is, en hoe je dat oplost, voordat je allerlei toverformules in je code zet waarvan je de impact niet kunt overzien...

EDIT: het belangrijkste is eigenlijk (nog steeds) het expliciet instellen van een character encoding bij het maken van een verbinding. Dit vormt in wezen een tweezijdig contract met jouw database. Enerzijds dien jij er zorg voor te dragen dat jij DATA aanlevert in die character encoding en anderzijds doet MySQL haar best om DATA in die character encoding vanuit de database terug te geven. Hierbij mag de character encoding die je wilt gebruiken en de character encoding waarmee de DATA is opgeslagen best van elkaar afwijken (al is dit niet aan te raden, MySQL zal de omzettingen onder water weliswaar prima kunnen verzorgen, maar dit is in principe overhead). Wat je hiervan moet onthouden is: de character encoding die je instelt bij/na het maken van een verbinding is de character encoding waarin je vervolgens communiceert/dient te communiceren met je database.
Gewijzigd op 13/10/2018 14:23:44 door Thomas van den Heuvel
 
Jan te Pas

Jan te Pas

12/10/2018 08:09:32
Quote Anchor link
@Thomas,
Helder. Ik ga de tabel in ieder geval opnieuw opzetten en er op letten de character encoding uniform te maken. Ik loop morgen de code voor ze zekerheid nog eens door. Dankallen voor de informatie.
 
- Ariën -
Beheerder

- Ariën -

12/10/2018 10:20:24
Quote Anchor link
Als je tussentijd dus een set_charset() gebruikt, en je dus 'je data mee om zeept helpt'. Wat zijn dan de stappen om het te kunnen analyseren en te debuggen. Ik vind het zonde van mijn tijd om 10.000 records aan berichten door te spitten.

En hoe kom je vooraf te weet dat je 'om zeep geholpen' data in je database hebt?

Daar ben ik vooral benieuwd naar, omdat ik niet kan garanderen of er sprake van is.
 
Thomas van den Heuvel

Thomas van den Heuvel

12/10/2018 14:13:12
Quote Anchor link
EDIT: vragen gesplitst
- Ariën - op 12/10/2018 10:20:24:
En hoe kom je vooraf te weet dat je 'om zeep geholpen' data in je database hebt?

Hier loop je meestal -in ieder geval de eerste keer :)- op een gegeven moment gewoon tegenaan, vaak omdat je in het begin nog niet alle spelregels en interacties kent.

Dit is waarschijnlijk niet iets wat je van tevoren kunt afvangen, tenzij je voor het wegschrijven al een soort van character encoding controle verricht op de DATA die de database in gaat. Maar zelfs dan, als dit "verkeerd" geëncodeerd zou zijn (op een manier die er voor zorgt dat je tekst niet wordt weergegeven zoals je zou verwachten), dan kan een machine dat mogelijk niet detecteren want die zou de data dan ook echt moeten interpreteren. De bytereeksen kunnen namelijk best legaal zijn voor de gebruikte character encoding. In tegenstelling tot een machine kunnen wij direct op ons scherm zien wanneer een tekst door de vleesmolen is gegaan :).

- Ariën - op 12/10/2018 10:20:24:
Wat zijn dan de stappen om het te kunnen analyseren en te debuggen. Ik vind het zonde van mijn tijd om 10.000 records aan berichten door te spitten.

Je hebt geen 10.000 records nodig, maar slechts één of enkele instanties waar het misgaat om te kunnen hercontrueren wat er gebeurt.

Dit heb ik ook al min of meer eerder uitgelegd, maar ik zal nogmaals een poging ondernemen.

Gegeven een tekstpassage waar iets mis mee is, deze staat waarschijnlijk ergens in een kolom in een databasetabel. Noem dit opzet A.

Wat je nu vervolgens doet is deze situatie opnieuw creëren maar dan op de goede manier door alle character encoderingen in de pas te laten lopen en expliciet in te stellen. Dus alles van het opbouwen van de pagina tot het weergeven van de data zorg je gewoon dat dit van begin tot eind klopt. Dat kan redelijk eenvoudig. Nu heb je dus een (minimale) kloppende opzet B.

Vervolgens kun je deze situaties met elkaar gaan vergelijken. Dit zonder de werking van opzet A te veranderen, we hebben immers nog niet vastgesteld wat er mis is!

Wat we hier concreet doen is kijken naar de wijze waarop de tekst daadwerkelijk staat opgeslagen in het geheugen. Dit doen we met de PHP-functie bin2hex(), hiermee kun je binaire data hexadecimaal representeren. Het equivalent in MySQL is HEX(). Bijkomend voordeel is dat deze hexadecimale representatie ongevoelig is voor nuances tussen character encoderingen.

Nu kunnen we dus:
- met HEX() aan de database-zijde kijken (in zowel opzet A als B) hoe de oorspronkelijke organisatie is
- met bin2hex() aan de PHP-zijde kijken (in zowel opzet A als B) hoe het uiteindelijk de database uitkomt

In opzet B zou de HEX() waarde van de tekstkolom in de database hetzelfde moeten zijn als de bin2hex() waarde van de uitgespuugde tekst omdat er nergens in dat hele verhaal onder water vertalingen uitgevoerd zouden moeten zijn, alle character encoderingen waren immers gelijk geschakeld.

Dan kun je dat dus vergelijken met opzet A en na kunnen gaan waar er een verandering plaatsvindt, en hoe deze afwijkt van opzet B.

Daarna is het zaak om de "foute" vertaling van B naar A opnieuw te creëren waarmee je in principe bewijst hoe het precies fout is gelopen. En dit kun je controleren aan de hand van de hexadecimale waarden.

Tot slot verzin je iets waarin je de omgekeerde vertaalslag (van A naar B) bewerkstelligt. Dit is dan de eenmalige conversie die je uitvoert.

En dan moet je er natuurlijk voor zorgen dat vanaf dat moment de DATA op de goede manier de database in gaat door het repareren van set_charset(), meta-tag of header(), accept-charset in formulieren et cetera (dus in wezen wat je in opzet B deed).

Nota bene: als er na al deze tests uitrolt dat er niets fout gaat dan betekent dat dus dat er op een andere plek iets (grandioos) misgaat.

Enne, dit is nog steeds actueel (2003):
The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
Gewijzigd op 13/10/2018 15:20:31 door Thomas van den Heuvel
 
Thomas van den Heuvel

Thomas van den Heuvel

13/10/2018 14:34:13
Quote Anchor link
Wat toevoegingen gedaan in de eerdere reactie om afzonderlijke vragen beter te beantwoorden.
Gewijzigd op 13/10/2018 14:34:25 door Thomas van den Heuvel
 
- Ariën -
Beheerder

- Ariën -

13/10/2018 15:20:14
Quote Anchor link
Inmiddels heb ik gezien dat ik nog geen character-encoding meegeef aan mijn data, en dat deze in MySQL als latin1-collatie opgeslagen staat. Volgens mij moet de stap naar UTF-8 niet zo heel groot zijn, als ik mij niet vergis na alles door te hebben gelezen.
 
Thomas van den Heuvel

Thomas van den Heuvel

13/10/2018 15:27:12
Quote Anchor link
- Ariën - op 13/10/2018 15:20:14:
Inmiddels heb ik gezien dat ik nog geen character-encoding meegeef aan mijn data, en dat deze in MySQL als latin1-collatie opgeslagen staat. Volgens mij moet de stap naar UTF-8 niet zo heel groot zijn, als ik mij niet vergis na alles door te hebben gelezen.

Niet helemaal. Als je geen character encoding meegeeft na het maken van een verbinding, dan wordt een default character encoding verondersteld, dit is doorgaans latin1, tenzij anders geconfigureerd. Omdat je niet uit kunt gaan van een "standaard" default is het eigenlijk bijna altijd beter om deze expliciet in te stellen.

Dit heeft wel een aantal consequenties.
Indien je tabellen gedefinieerd zijn als utf8 (of equivalent) dan zal MySQL automatisch alle data die zij binnen krijgt voor wegschrijven converteren naar utf8. Immers: MySQL gaat er vanuit dat jij alles in latin1 aanlevert. Gevolg: alle data staat dubbel utf8-geëncodeerd in de database. Nu heb je daar op heden mogelijk geen last van gehad omdat als jij data opvraagt uit je database MySQL ziet dat je wilt communiceren middels latin1. De dubbele encoding wordt dan weer ongedaan gemaakt omdat er een eenmalige vertaling terug plaatsvindt van "utf8" naar "latin1".
Daarnaast werkt je escaping-functionaliteit mogelijk niet goed, omdat deze latin1 veronderstelt terwijl je met (dubbel geëncodeerde) utf8-data werkt.

Als je nu klakkeloos een set_charset() statement toevoegt kom je in de situatie terecht waarin je data op den duur mogelijk deels verkeerd en deels juist geëncodeerd is waardoor het een hels karwei wordt om alles recht te trekken. Het is daarom zaak de goede volgorde aan te houden:
1. identificeer het precieze probleem
2. voer een eenmalige conversie uit en tegelijkertijd
3. repareer je code zodat alles vanaf dat moment juist wordt weggeschreven

Een collatie is trouwens iets compleets anders als een character encoding. (interne link)

EDIT: MySQL werkt eigenlijk best vlekkeloos MITS jij er zorg voor draagt dat je communiceert volgens de ingestelde character encoding. Als deze niet klopt, dan kan MySQL op geen enkele manier haar werk goed verrichten, en ben je in principe zelf diegene die alle stront veroorzaakt.
Gewijzigd op 13/10/2018 16:56:07 door Thomas van den Heuvel
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.