Foute karakters

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C#.NET Developer Innovatie Techniek Duurzaam Azure

Functieomschrijving Ben jij een C# .NET software ontwikkelaar die graag zijn steentje bijdraagt aan de maatschappij? Ben jij daarnaast geïnteresseerd in technische hardware en weet jij als geen ander gebruikerswensen te vertalen naar technische oplossingen? Reageer dan snel! Jij zult samen met het team verantwoordelijk zijn voor het bedenken, oppakken en coördineren van het gehele ontwikkeltraject voor de nieuwbouw en verbeteringen van de applicaties. Dit houdt in: Het vertalen van gebruikerswensen naar functionele requirements en het maken van ontwerpen; Bedenken van passende inzet van tools en technieken; Het bouwen in C#.NET en maken van koppelingen naar verschillende platformen; Denk ook

Bekijk vacature »

Oracle SOA-OSB Developer

Jouw uitdaging als Oracle SOA-OSB Developer Integratie is het hart in alle projecten. Zowel on-premise als in de Cloud of met hybride oplossingen kom je Oracle SOA Suite en de Oracle Service Bus bij vele klanten tegen. Jij ben als SOA-OSB ontwikkelaar onderdeel van dat integratie hart en zorg je dat binnen Oracle en niet-Oracle implementaties dat integraties zo efficiënt en onderhoudbaar mogelijk worden gerealiseerd. Je werkt op een prettige manier samen in teams met ervaren professionals van Capgemini middel SCRUM/Agile. Met jouw specialistische integratie kennis voeg je concrete waarde toe door je hands-on ervaring. Met jouw overzicht en sterke

Bekijk vacature »

ACCENTURE TECH ACADEMY

ACCENTURE TECH ACADEMY Heerlen Technology 13th month pay & Holiday allowance Bonus Program 26 holidays Training & Learning opportunities Laptop & Smartphone 32-40 hours p.w. Do you want to kick-start your career within Accenture? Do you get excited about the latest technological innovations? Do you like to learn, collaborate and create your own opportunities? Do you want to work with people from different cultures and with companies across a wide range of industries? Then apply to Accenture’s newest traineeship – The Tech Academy. This traineeship offers a great opportunity to launch your career to technology. Accenture organizes a two-month training

Bekijk vacature »

Senior Front-end Developer

Senior Front-end Developer bij Capgemini Bij Capgemini bouwen we niet zomaar webapplicaties en mobiele apps waar onze opdrachtgevers en hun klanten mee overweg kunnen. Nee, we ontwikkelen applicaties voor miljoenen gebruikers en dan ook nog apps waar men écht gelukkig van wordt. Van de medewerkers in de organisatie zelf tot aan de eindgebruikers. En als Senior Front-end Developer ben jij hierbij onmisbaar! De rol Van het bouwen van nieuwe functionaliteiten, het behouden, bewaken en verbeteren van de huidige infrastructuur en applicaties tot aan het ontwikkelen van nieuwe innovaties. Als Front-end Developer ben je de lead developer binnen jouw scrumteam en

Bekijk vacature »

C# (WPF) developer gezocht, omgeving Ridderkerk

Voor een softwarebedrijf in de omgeving van Ridderkerk, dat zich richt op een specifieke branche binnen de logistieke sector, zijn we op zoek naar een .NET C# developer met bij voorkeur kennis van WPF en MVVM. Het gaat hier om een bedrijf van circa 20 mensen met een informele leuke bedrijfscultuur en korte lijnen. Er werken meerdere .NET developers maar het team waarbinnen je komt te werken bestaat uit 3 .NET C# developers. Het product waar je aan werkt is bedrijfskritisch en wordt 24/7 gebruikt. Het is een innovatief product dat recentelijk in de markt is gezet maar waar nog

Bekijk vacature »

Senior Microsoft Dynamics Developer

Jouw uitdaging: Ben jij sterk in het succesvol ontwikkelen van maatwerk componenten op het Dynamics platform? En wil je actief meewerken aan de ontwikkeling van ons Digital Customer Experience portfolio? Dan is dit iets voor jou! Voor de Digital Customer Experience afdeling (DCX) zijn we op zoek naar een Senior Microsoft Dynamics Developer. In deze functie ben je verantwoordelijk voor de succesvolle ontwikkelen van maatwerk componenten op het Dynamics platform bij toonaangevende organisaties. Denk daarbij aan het realiseren van integratie met front en backoffice systemen op basis van Azure PaaS of het ontwikkelen van complexe plug-ins. Daarnaast werk je actief

Bekijk vacature »

PHP ontwikkelaar / Innovatie / Creativiteit

Functieomschrijving Ben jij de ontwikkelaar die op de hoogte is van de laatste ontwikkelingen en sta jij te springen om de nieuwste tools en technieken toe te passen in jouw werk? Trek dan nu aan de bel! Deze organisatie is al meer dan 20 jaar actief in het verzamelen en doorsturen van grote hoeveelheden data. Dit gebeurt doormiddel van hun zelf ontwikkelde platform die verschillende communicatieoplossingen biedt. Met bijna 600 gebruikers kan je jezelf wel inbeelden hoe groot de hoeveelheid data aan tekst, afbeeldingen en voicerecords is. Om er voor te zorgen dat de applicatie up-to-date, innovatief en vernieuwend is,

Bekijk vacature »

.NET C# developer gezocht, Dordrecht

Ben je een .NET C# developer die in Dordrecht woont, of in de omgeving hiervan, en op zoek is naar een nieuwe baan? Bij een bedrijf met betrokken collega’s, die elkaar graag helpen, binnen een informele cultuur? En aan een succesvol product wilt werken dat constant verder ontwikkeld wordt? Voor een bedrijf in Dordrecht zijn we op zoek naar verschillende C# developers. Het bedrijf richt zich op de ontwikkeling van software voor een specifieke branche en heeft circa 5000 gebruikers. De organisatie bestaat uit circa 20 mensen waarvan 6 .NET developers, 1 architect en 3 software testers. Het werk bestaat

Bekijk vacature »

Fullstack Developer

WE ARE WORKING WITH A DATA DRIVEN MARKETING COMPANY WHO ARE LOOKING FOR A FULL STACK DEVELOPER TO JOIN THEIR THRIVING TEAM, WHERE YOU CAN DISPLAY AMBITION AND CREATIVE SKILLS. THIS COMPANY IS ON A MISSION, THEY PROVIDE MARKETING TEAMS WITH A DATA OPTIMIZATION PLATFORM, COMPLETELY DEVELOPED IN HOUSE. WHAT TO EXPECT YOU WILL BE WORKING CLOSELY WITH THE DATA SCIENCE TEAM, TOGETHER REPRESENTING THE BUSINESS NEEDS BY CREATING SOLUTIONS USING BIG DATA TOOLS AND FRAMEWORKS. AS A DEVELOPER, YOU WILL ALSO BE WORKING WITHIN CONVENTIONAL ENVIRONMENTS AND FRAMEWORKS SUCH AS SCRUM/AGILE METHODOLOGIES. PERKS Amsterdam based company Joining a team

Bekijk vacature »

Oracle SOA-OSB Developer

Jouw uitdaging als Oracle SOA-OSB Developer Integratie is het hart in alle projecten. Zowel on-premise als in de Cloud of met hybride oplossingen kom je Oracle SOA Suite en de Oracle Service Bus bij vele klanten tegen. Jij ben als SOA-OSB ontwikkelaar onderdeel van dat integratie hart en zorg je dat binnen Oracle en niet-Oracle implementaties dat integraties zo efficiënt en onderhoudbaar mogelijk worden gerealiseerd. Je werkt op een prettige manier samen in teams met ervaren professionals van Capgemini middel SCRUM/Agile. Met jouw specialistische integratie kennis voeg je concrete waarde toe door je hands-on ervaring. Met jouw overzicht en sterke

Bekijk vacature »

RPA Developer

Job Title: RPA Developer Job Location: Amsterdam / Eindhoven Salary & Benefits: Competitive RPA Developer Job Description We have exciting opportunities for exceptional individuals in various technical roles to grow our Intelligent Automation and Technology practice within our Digital Operations business in Europe General RPA Developer Responsibilities Analyze business processes, identify automation opportunities, and assess automation feasibility Document detailed business requirement, develop ‘as-is’ and ‘to-be’ process flows Contribute in knowledge management activities by creating case studies and domain artefacts. Identify and communicate the technical infrastructure requirements to deploy automation solutions. Design solutions (with toolings like UiPath, Blueprism, Automation Anywhere, Redwood

Bekijk vacature »

Java Developer AWS Financiële sector 5500,-

Functieomschrijving Ben jij een ervaren Java Developer, daagt een dynamische omgeving jou uit en bouw je graag innovatieve oplossingen? Werk je graag in de financiele sector en in een familiaire omgeving waar groei centraal staat? Lees dan snel verder! Het ontwikkelen van financiële applicaties in Java o.b.v. microservices architectuur; Software ontwikkelen specifiek voor het AWS platform om het maximale uit Amazon Webservices te halen; Werken aan een zeer veeleisende omgeving en continu veranderende applicaties; Het werken in een multidisciplinair team dat continu werk oplevert middels CI/CD; Deelnemen aan designsessies; Het schrijven van diverse automatische tests; Op de hoogte blijven van

Bekijk vacature »

Front-end developer voor software in het onderwijs

Functieomschrijving Jij gaat werken in een team van developers om de Front-end naar een hoger niveau te tillen! Samen met een andere collega op de Front-end zal je een bijdrage leveren aan de gebruiksvriend van de mobiele en webapplicaties die ze hier bouwen. Je krijgt hier ontzettend veel vrijheid als developer en ook de mogelijkheid om richting de Backend te groeien. Je werkt hier voornamelijk met HTML5, CSS3/SASS, Javascript/jQuery en Bootstrap en het zou fijn als je ervaring hebt met AJAX. Mocht je ervaring hebben op de Backend binnen C#, ASP.NET en MVC5 dan is de een grote pré. Functie-eisen

Bekijk vacature »

Business Developer / France

Discipline Marketing & Sales Location Utrecht (NL) Hours a week 40 As our Business Developer France You must love sales! Because YOU will make it your goal to successfully promote and expand our B2B drop shipment program. You will make this a success because you are commercially driven and convinced of online B2B sales. We trust you to work independently. You have an enthusiastic international team that can get you up to speed. What you will do Generates new business by attracting new partners to the vidaXL B2B Drop-shipping Platform, focusing on the German speaking markets; Analyzes the market and

Bekijk vacature »

Applicatiebeheerder / informatieanalist 20 uur per

Nieuwe Veste is een ambitieuze culturele instelling die zich inzet voor het verbeteren en verduurzamen van cultuureducatie en cultuurparticipatie in de stad. Nieuwe Veste maakt daartoe momenteel een transitie door naar een netwerkorganisatie en expertisecentrum. In 2020 wil de organisatie met en voor de stad een dienstverlening hebben geformuleerd waarin alle kinderen kennismaken met taal, creativiteit en kunst, alle jongeren hun creatieve en kunstzinnige vaardigheden kunnen inzetten voor het verbreden van hun blik op de wereld en alle volwassenen een bijdrage kunnen leveren aan het culturele klimaat van de stad. Voor het team ICT en informatiemanagement zijn wij per direct

Bekijk vacature »
Aad B

Aad B

02/12/2019 12:12:34
Quote Anchor link
Na complete migratie/upgrade van het OS (Debian) en dus naar MariaDB en php7 worden bijzondere karakters niet meer juist getoond op de webpagina. Het gaat hier om de simpele e-trema zoals in: België
In de database is het nog steeds okee, althans voor zover ik kan inschatten. Een select van de tabel, vanuit een ascii terminal (putty) geeft dit:

MariaDB [vaarweginfo]> select distinct land from vaarweginfo;

land
+-----------+
Nederland
België
Frankrijk

(als ik code tags hier omheen zet verdwijnt de ë compleet??)

De webpagina haalt het land op uit een tabel en toont België dan als België
Heeft onder MySQL en php5 tot dan toe goed gewerkt. Waar moet ik dit zoeken?
Gewijzigd op 02/12/2019 12:20:38 door Aad B
 
PHP hulp

PHP hulp

07/12/2019 14:32:18
 
- Ariën -
Beheerder

- Ariën -

02/12/2019 12:24:18
Quote Anchor link
In de wereld van UTF-8 moet je dit zoeken.
Hoe heb je dit ingesteld in je site?
Gewijzigd op 02/12/2019 12:25:00 door - Ariën -
 
Aad B

Aad B

02/12/2019 12:33:55
Quote Anchor link
Ariën, wat bedoel je met ingesteld in je site?? Iets in het OS of Apache config of iets in de html pagina's zelf??
Gewijzigd op 02/12/2019 12:34:07 door Aad B
 
- SanThe -

- SanThe -

02/12/2019 12:43:51
Quote Anchor link
In <head> <meta charset="utf-8">
 
- Ariën -
Beheerder

- Ariën -

02/12/2019 13:03:10
Quote Anchor link
Ik heb het over je site, en niet over je OS (Linux, Windows) of Apache (Webserver).
Ik neem aan dat je daar ook netjes UTF-8 afdwingt? Of gebruik je nog het beperkte iso-8859-X? En hoe staan de collaties van je databasetabellen?
Gewijzigd op 02/12/2019 13:04:22 door - Ariën -
 
Aad B

Aad B

02/12/2019 13:40:05
Quote Anchor link
SanThe en Ariën dank voor de tips, het was inderdaad charset=iso-8859-1 in plaats van utf-8 in de gegenereerde HTML pagina. Probleem opgelost.
 
- Ariën -
Beheerder

- Ariën -

02/12/2019 13:43:24
Quote Anchor link
Maar de vraag is: Hie kan dit opeens aangepast zijn? Een verhuizing hoort niet te zorgen voor een verandering van je charset. Ik kan me wel indenken de encoding van je database aangepast kan zijn toen deze gedumpt werd, maar dat zou niet mogen.

Als ik jouw was zou ik het toch even goed uitzoeken voordat je allemaal rotzooi in je database staat te pompen en je nog verder van huis bent....
Gewijzigd op 02/12/2019 13:54:45 door - Ariën -
 
Verwijderd 31683

Verwijderd 31683

02/12/2019 14:30:48
Quote Anchor link
Wat @Ariën zegt.

NB: het volgende verhaal gaat uit van een database(tabel) met een utf8(mb4) encodering. Idealiter lopen alle character encoderingen (HTML document, database-connectie, database, database-tabel, database-kolom en last but not least de encodering van de data in deze kolom zelf) alle in de pas. GA DIT NA. Je kunt niet zomaar ergens "UTF-8" neerzetten in plaats van "ISO-whatever" en dan doen alsof daarmee de kous af is :p. Dit is echt het onheil over je afroepen.

---

De makkelijkste manier om na te gaan of alles ok is is door een check te doen hoe dit op byteniveau staat opgeslagen. Dit is namelijk een test die niet afhankelijk is van een specifieke character encoding en onafhankelijk van een ingestelde character encodering altijd hetzelfde resultaat oplevert. Dit stelt je dus in staat afwijkingen te constateren op het moment dat er op verschillende plekken verschillende encoderingen worden gebruikt. Dit is onwenselijk.

In MySQL doe je dit met de functie HEX() en in PHP is dit bin2hex().

Het is zaak dat je dit zowel in MySQL als PHP controleert. Het kan namelijk zo zijn dat je niet op de goede manier met de database communiceert. MySQL compenseert dit achter de schermen, maar dit kan dus inderdaad wel resulteren in het wegschrijven van verkeerd geëncodeerde data. Dit komt dan pas naar buiten op het moment dat er wijzigingen (die mogelijk reparaties zijn omdat je dus voorheen op een verkeerde manier met je database sprak) worden aangebracht in de communicatie met je database. Of wanneer je je tabellen exporteert/migreert.

Om dit alles goed te simuleren is het dus ook zaak dat als je deze tests aan de PHP-kant uitvoert dat je op dezelfde manier een verbinding maakt met je database zoals je dat ook in je applicatie/website zou doen.

Wat je doet is het volgende: haal de kolom waarin de landnaam België staat opgeslagen als volgt op:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
SELECT land, HEX(land) AS hex_land
FROM <tabelnaam>


Vervolgens controleer je de waarden in PHP. Hierbij geef je de hex-waarde uit de database weer en tevens het aan de PHP-kant gegenereerde equivalent met de oorspronkelijke land-kolom. Als het goed is komen deze twee waarden overeen. Indien dit niet het geval is houdt dit in dat de database zich genoodzaakt zag om vertalingen uit te voeren omdat de character encoding van de connectie afweek van de character encoding van de database-, tabel- of kolom-definitie.

Als $row het (associatief) record bevat toon je dit als volgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
echo 'waarde in MySQL: '.$row['land_hex'].'<br>';
echo 'waarde in PHP: '.strtoupper(bin2hex($row['land']));
?>

Beide waarde zouden -met een utf8(mb4) encodering- gelijk moeten zijn aan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
42656C6769C3AB

Hierbij gaat het eigenlijk uitsluiten om de laatste 4 karakters.

Mochten de waarden die uit worden gespuugd hiervan verschillen, of als de waarden onderling afwijken, dan zou ik je met klem aanraden om wat verder te graven om te zien waar deze verschillen vandaan komen.

En misschien loont het ook de moeite om de tabel "vaarweginfo" verder uit te normaliseren. Het lijkt mij beter om één landentabel aan te houden en hier middels id's aan te refereren, in plaats van letterlijke landnamen in de vaarweginfo-tabel op te slaan.

Aad B op 02/12/2019 12:12:34:
(als ik code tags hier omheen zet verdwijnt de ë compleet??)

Dit is waarschijnlijk een bug in deze website (interne link).

**snip**
Gewijzigd op 05/12/2019 08:31:27 door - Ariën -
 
Aad B

Aad B

04/12/2019 11:21:19
Quote Anchor link
Thomas, dank voor je uitgebreide toelichting, ik ga ermee aan de slag. Ik krijg sowieso al een andere uitkomst op de eerste query: 42656C6769EB. Het is me duidelijk dat er ergens wat discrepantie is in het traject database laden en presenteren met html/php. De (enige) tabel in de database wordt 2x per dag geladen vanuit een API van Rijkswaterstaat (middels lokale linux cron/mysql scripting, geen php). Het gaat om ongeveer 750 records per keer en vooraf wordt de tabel ge-truncate. Je opmerking om te normaliseren (land-landcode) is uiteraard juist maar gezien deze kleine tabel die alleen voor presentatie wordt gebruikt voor +/- 3 gebruikers niet nodig. Ik ga in ieder geval op zoek om de encoding in de hele keten consistent te krijgen. Best interessant en nogmaals dank!
 
Verwijderd 31683

Verwijderd 31683

04/12/2019 16:32:09
Quote Anchor link
42656C6769EB (dus EB in plaats van C3AB) is de latin1 encoding van de ë.

Als je dit vervolgens encodeert als UTF-8 dan resulteert dit in België.

Het is waarschijnlijk interessant om deze import verder onder de loep te nemen. Vraag is wat de character encoding is van de aangeleverde data (A), wat de charset is van de tabel(len) waarin je deze data wegschrijft (B), en welke character encoding wordt verondersteld bij het maken van de connectie (C).

Stel dat je doel is om alles weg te schrijven als UTF-8 (utf8(mb4) in MySQL) omdat je applicatie en tabeldefinities (B) van UTF-8 gebruik maken. Maar tegelijkertijd weet je dat de aangeleverde data (A) een of andere ISO-encodering heeft. Dit kun je dan automatisch laten vertalen naar UTF-8 door bij het maken van de verbinding aan te geven (C) dat er data met een ISO-encodering over de lijn dient te gaan. Dit doe je met set_charset().

set_charset() vormt in wezen een contract tussen jouw applicatie en de database. Dit contract valt in twee delen uiteen:
- jij moet er voor zorgen dat alle data die je aanlevert aan de database van deze character encoding is
- de database draagt er zorg voor dat deze, naar beste vermogen, data teruggeeft in deze voorgeschreven character encoding

En dit staat los van de character encoding die wordt gebruikt in de database, tabel of kolom van deze data. Dit houdt in dat als er een discrepantie bestaat tussen de ingestelde character encoding van de verbinding en de definities van de database MySQL zelf vertalingen uitvoert. Dit geldt zowel voor het uitlezen als het wegschrijven. Dit kun je bij een import in jouw voordeel gebruiken.

Maar wat dus heel belangrijk is is dat je weet (met name bij het wegschrijven dus) welke character encoding deze data heeft (en deze wat mij betreft altijd expliciet instelt, om geen enkele ruimte open te laten voor een andere interpretatie). Als de data ISO-whatever is (is min of meer equivalent met latin1) en je middels set_charset() utf8 of equivalent instelt, en de tabel waarin je dit wegschrijft dezelfde charset heeft als in de connectie is ingesteld, dan gaat MySQL dus geen vertalingen uitvoeren en wordt je data weggeschreven als latin1 in een utf8 tabel.

Dit is ook hetgene wat waarschijnlijk is veranderd. Voorheen had je mogelijk geen set_charset() ingesteld, de default van MySQL (en zelfs MariaDB) was een hele tijd -en is dit misschien nog steeds- latin1. Dus de hierboven beschreven automatische vertaling verliep automatisch. De default character encoderingen in Debian zijn mogelijk al utf8(mb4), dus dan worden die vertalingen dus niet meer uitgevoerd omdat die al gelijk lopen met je database. Dit zou een verklaring kunnen zijn voor wat er nu gebeurt.

Dus omdat de defaults zijn veranderd werkt dit niet meer. Dit onderstreept wat mij betreft het belang om altijd expliciet een character encoding in te stellen bij het maken van een database-connectie.
Gewijzigd op 04/12/2019 16:36:40 door Verwijderd 31683
 
Aad B

Aad B

04/12/2019 21:15:24
Quote Anchor link
Thomas, dank voor je wijze les. Mijn doel is nu om om alles weg te schrijven als UTF-8 (utf8(mb4) in MySQL.
In het huidige script, dat overigens geheel naar wens werkt, kan ik geen set_charset() doen. Het ophaalscript is geen php. De methode van ophalen van de data via de Rijksawaterstaat API is in een bash script, een eenvoudige wget met wat parameters in .wgetrc
Wellicht kan ik daar nog een parameter opgeven zoals --header='Accept-Charset:
Ik ontvang een .csv file en als ik in linux in vi of cat de file bekijk zie ik netjes: België
Lokaal ben ik nu alles aan het afstemmen op UTF-8 (utf8(mb4)

De presentatie, een middels php gegenereerde web pagina, is sinds gisteren al in orde nadat ik de tip van SanThe en Arien kreeg om de header aan te passen.
Gewijzigd op 04/12/2019 21:17:21 door Aad B
 
Verwijderd 31683

Verwijderd 31683

05/12/2019 01:36:01
Quote Anchor link
@Aad hm, maar je kiept dat middels een bashscript wel de database in denk ik? Mogelijk kun je daar dus wat dingen aanpassen. Als dit een LOAD DATA ... commando is dan kun je hierbij een CHARACTER SET opgeven als je weet wat de character encoding van de bron is. Uit de documentatie:
Quote:
If the contents of the input file use a character set that differs from the default (noot: die van de server), it is usually preferable to specify the character set of the file by using the CHARACTER SET clause.


*knip*
Edit:
Zo, en hier stopt de discussie over deze site. Dit is dus geen aanwinst voor andermans topic. Dat iets niet werkt kan je melden op de juiste plek, maar een hele discussie of negatieve off-topic hierover hoort hier NIET!
Gewijzigd op 05/12/2019 08:30:31 door - Ariën -
 
Aad B

Aad B

05/12/2019 09:39:36
Quote Anchor link
Thomas, het werkt inderdaad via een load data configuratie. De parameter [CHARACTER SET charset_name] staat er niet in, ik neem dat ook mee. Nogmaals dank voor de uitgebreide toelichting over charset issues.

@Ariën: De "knip" en edit????
Gewijzigd op 05/12/2019 09:40:27 door Aad B
 
- Ariën -
Beheerder

- Ariën -

05/12/2019 09:50:56
Quote Anchor link
Dat was enkel een discussie die niks hiermee te maken had.
 



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.