Diakritische tekens worden opeens vraagtekens

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C++ Ontwikkelaar

Functieomschrijving Ben jij toe aan een nieuwe uitdaging en werk je graag en goed in C++ en C#? Dan zijn we op zoek naar jou! Dit bedrijf is dé specialist op het gebied van automatiseringssoftware voor een specifieke branche en ze zijn per direct op zoek naar versterking in hun development team. Wat jij gaat doen binnen jouw rol als C++ ontwikkelaar; Je vertaalt de wensen van gebruikers naar een functioneel ontwerp. Je houdt je bezig met het ontwerpen, programmeren en testen van product aanpassingen. Je gaat nieuwe product releases implementeren in de projectteams. Je gaat de effecten van nieuwe

Bekijk vacature »

PHP Programmeur

Functieomschrijving Vanuit het hoofdkantoor in omgeving Breda, ontwikkel je als PHP programmeur niet alleen webapplicaties, maar ben je verder ook gefocust op het constant inspelen op nieuwe innovaties m.b.t software ontwikkeling. Naast het ontwikkelen van webapplicaties, bouwt deze toffe werkgever ook webshops en websites voor hun opdrachtgevers. Wat ga je doen? Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de eisen van de klanten; Het ontwerpen en implementeren van webapplicaties met het Symfony framework; Het schrijven van een schone en efficiënte code volgens het Symfony framework; Onderhouden en updaten van bestaande applicaties die

Bekijk vacature »

TypeScript developer (tot € 6.000, - bruto pe

Functie Om bovenstaande ambities waar te kunnen maken zijn ze op zoek naar een ervaren Typecript developer die niet alleen zichzelf verder ontwikkelt, maar het ook leuk vinden om op termijn meer junior collega’s op pad te helpen. Je zult aan de slag gaan met het migreren van hun bestaande UI in Angular. Maar ook het ontwikkelen van een mobiele app. Hierbij hechten ze veel waarde aan User Experience en kiezen ze duidelijk voor kwaliteit i.p.v. snelheid. Je krijgt dus de ruimte om vanuit gedegen onderzoek te werk te gaan en het borgen van kwaliteit staat hoog in het vaandel.

Bekijk vacature »

Software Developer

Functie omschrijving In deze functie ga je aan de slag met het door ontwikkelen van de interne software. Zij maken gebruik van een CRM, wat door de hele organisatie gebruikt wordt. Andere taken: Je gaat het CRM-systeem door middel van PHP verder ontwikkelen; Verder bouw je verschillende API's en koppelingen tussen systemen; Ook ga je collega's ondersteunen bij vragen over de software en applicaties; Deelnemen aan overleggen met het development team; Bij interesse is er de mogelijkheid om junioren te gaan begeleiden. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er

Bekijk vacature »

C++ Developer

Functieomschrijving Ben jij als software engineer toe aan een nieuwe uitdaging? Dan zijn wij op zoek naar jou! Voor het maken van de procesbesturingsoftware gebruiken onze projectteams een in C++ en C# geschreven tool. Dit is een gedistribueerd object framework wat alle kernfuncties biedt voor een procesautomatisering. Verder zullen jouw werkzaamheden o.a. bestaan uit: Analyseren van vragen en wensen van gebruikers en deze vertalen naar een functioneel ontwerp; Ontwerpen, programmeren en testen van productaanpassingen; Implementeren van nieuwe productreleases in de projectteams; Continu toetsen van het effect van nieuwe releases op andere tools en processen; Inzichtelijk maken van voortgang omtrent softwarewerkzaamheden,

Bekijk vacature »

Webshop beheerder / Fullstack developer

Functie omschrijving Wij zijn op zoek naar een full stack developer die zich bezig gaat houden met het uitbreiden en verbeteren van de online webshop. Een onderdeel van jouw werkzaamheden is naast het beheren van de webshop ook om de processen en structuren te stroomlijnen. Ben jij een leergierige en ambitieuze junior developer met technische skills? Ben jij op zoek naar een werkgever die jouw de volledige vrijheid geeft om jezelf tot een volwaardige senior te ontwikkelen? Lees dan snel verder! Werkzaamheden Onderhouden van de webshop (denk aan het bijhouden van de voorraad); Nieuwe functies toevoegen aan de product configurator

Bekijk vacature »

Software Programmeur PHP

Functie Wij zijn op zoek naar een PHP programmeur voor een leuke opdrachtgever in omgeving Alblasserdam. Heb jij altijd al willen werken bij een bedrijf dat veilige netwerkverbindingen levert door middel van veilige oplossingen? Lees dan snel verder. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op het gebied van geleverde software en webapplicaties. Tevens

Bekijk vacature »

PHP Laravel developer

Functie omschrijving Weet jij alles van Laravel en krijg je energie van het ontwikkelen van software hiermee? Laat snel wat van je horen want wij zoeken een PHP/Laravel developer in regio 's-Hertogenbosch. Jouw taken zullen bestaan uit: Softwareapplicaties ontwikkelen en verder optimaliseren in veel diverse projecten op basis van Agile/Scrum. Uitleg geven over software en applicaties Klantcontact hebben over bestaande applicaties. Documentatie schrijven over applicaties. Techstack: PHP, Laravel, HTML, CSS, Javascript. Bedrijfsprofiel Deze organisatie zit in de regio van 's-Hertogenbosch en is een klein softwarebedrijf. Er werken ongeveer 15 medewerkers, verdeeld in meerdere teams, zoals back-end en front-end development, projectmanagement

Bekijk vacature »

Freelance JAVA / C# Developer

Functieomschrijving Voor een opdrachtgever in omgeving Zoetermeer zijn wij op zoek naar ervaren JAVA of C# Developers die graag op projectbasis willen werken. Je komt terecht bij een informele developers club die mooie projecten uitvoeren voor grote klanten. Ben je een ervaren freelancer of werk je in loondienst en ben je toe aan een nieuwe uitdaging? Lees dan snel verder want wie weet is dit een leuke vacature voor jou! Het fijne van deze werkgever is dat je zelf mag beslissen hoe je te werk wilt gaan. Wil je als freelancer werken dan is dat OK. Wil je de zekerheid

Bekijk vacature »

Low Code Developer voor o.a. overheidsprojecten!

Bedrijfsomschrijving Wil jij ook behoren tot de specialist in Low Code? Dan zou ik zeker aanraden om verder te lezen. Deze organisatie is ooit opgericht door twee studenten en is inmiddels uitgegroeid tot een serieuze werkgever met een groot aanzien op Low Code projecten. De sfeer is echter niet veranderd, er heerst een informele sfeer met een open deuren beleid, en hierin mag de eigen bar natuurlijk niet ontbreken. Momenteel maakt deze organisatie een flinke groei door en hier kan jij natuurlijk niet bij ontbreken. Daarom ben ik op zoek naar Low Code Developers met een degelijke technische achtergrond. Kennis

Bekijk vacature »

Medior Front end developer React

Functie Voor deze functie ben ik op zoek naar een enthousiaste front end developer die communicatief vaardig is. Jij wordt onderdeel van een enthousiast jong team dat werkt aan grote websites. Binnen jouw rol ben jij diegene die de vertaling maakt van design naar functionele code en zorg jij voor goede experience op meerdere platformen. Dit doe je natuurlijk door gebruik te maken van Javascript, HTML, CSS en React. Daarnaast wordt er gebruik gemaakt van Webcomponents en verschillende authenticatie tools. Doordat er hier gestreefd wordt naar de beste gebruikerservaringen, wordt het product constant doorontwikkeld. Hierdoor blijven ze voor op de

Bekijk vacature »

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus 2023 bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je

Bekijk vacature »

Java developer

Functie Je gaat aan de slag als Tester voor een aantal mooie projecten. Je komt terecht in een DevOps team waar jij aan de slag gaat om de kwaliteit te waarborgen omtrent de maatwerk software voor de klanten. Je draait je hand er niet voor om de adviserende rol te bekleden op het gebied van testautomatisering en het opzetten van testframeworks. Zoals aangegeven ga je daadwerkelijk in het eigen team aan de slag en is het daarnaast ook gebruikelijk bij de klanten op locatie te komen om te werken aan de opdrachten. Je krijgt zodoende echt een mooie kijk in

Bekijk vacature »

Fullstack developer

Functie omschrijving We are looking for a dutch native speaker Wil jij werken als Senior Developer en werken aan een applicatie die duizenden marketingcampagnes automatisch aanstuurt? Dit is je kans! Kom werken voor onze opdrachtgever en in deze rol zul je veel vrijheid en verantwoordelijkheid krijgen om gezamenlijk de applicatie naar een hoger plan te tillen. Wat ga je verder doen: Optimaliseren, beheren en uitbreiden van onze applicatie; Het bouwen van aansluitingen op de systemen van partners middels API’s; Meedenken over de technische/ontwikkel-standaarden; Proactief verbeterpunten voorstellen. Bedrijfsprofiel Het is een organisatie die met een team van verschillende developers én marketeers

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »
MV Tol

MV Tol

27/03/2024 19:32:18
Quote Anchor link
Ik weet dat hierover al eerder vragen gesteld zijn, maar toch wil ik mijn specifieke situatie even voorleggen.

Ik heb een website met grote database.
- Apache
- Clientversie van database: libmysql - 5.5.68-MariaDB
- PHP-uitbreiding: mysqli Documentatie
- PHP-versie: 5.4.16
Deze draait prima, maar binnenkort moet de website verhuizen naar een nieuwere server.

Ik heb een exacte kopie van de database op de nieuwe server gezet. Daar zijn de eigenschappen:
- Apache
- Cliëntversie van database: libmysql - mysqlnd 8.0.30
- PHP-uitbreiding: mysqli Documentatie curl Documentatie mbstring Documentatie
- PHP-versie: 8.0.30

Iets wat op de oude server prima werkt, gaat op de nieuwe fout.
In sommige tabellen komen letters met accenten voor, zoals in het woord "één". Deze speciale tekens staan in de database ook werkelijk als é opgeslagen (en niet met de html-code é).

Op de huidige (oude) website worden de speciale tekens keurig afgebeeld.
Op de nieuwe website veranderen deze tekens in een zwart vierkantje met een wit vraagteken erin.

DATABASE (oud en nieuw):
- Collatie van de serververbinding: utf8mb4_unicode_ci
- Collatie van de database: latin1_swedish_ci
- alle tekstvelden in een tabel: Collatie latin1_swedish_ci

In de html-header van de website (oud en nieuw):
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">

Een veel gehoorde tip (ook op dit forum) is: je moet alles instellen op UTF-8 en dan komt dit probleem niet voor.
Maar voordat ik me in dat soort veranderingen stort, zou ik willen weten waarom ik op de oude website met dezelfde instellingen de juiste tekens zie en op de nieuwe website niet.

Is er ergens een instelling voor de nieuwe server/database, die ervoor kan zorgen dat de é uit de database ook weer een é op de website wordt? Dat zou mij enorm helpen.
 
PHP hulp

PHP hulp

28/04/2024 10:10:40
 
- Ariën  -
Beheerder

- Ariën -

27/03/2024 19:36:44
Quote Anchor link
Gaat het om content uit een database? Of om hardcoded content met een é in een echo bijvoorbeeld?
 
MV Tol

MV Tol

27/03/2024 20:02:00
Quote Anchor link
Het is content in de database.
Tekst die in de database is opgeslagen en die op de website moet verschijnen.
 
- Ariën  -
Beheerder

- Ariën -

27/03/2024 20:39:06
Quote Anchor link
Gebruik je ook een characterset bij de connectie met je database?
 
Adoptive Solution

Adoptive Solution

27/03/2024 21:54:09
Quote Anchor link
Ik gebruik utf8mb4_general_ci voor database en tabellen.

En dit in de webpagina :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />


Je kan er de hele unicode tekenreeks in kwijt.

https://en.wikipedia.org/wiki/List_of_Unicode_characters
 
- Ariën  -
Beheerder

- Ariën -

27/03/2024 22:07:36
Quote Anchor link
Waarom zou je eigenlijk nog op de oude iso-8859-1-characterset en de collatie latin1_swedish_ci willen blijven leunen? Met een goede aanpak zou je prima naar UTF-8 kunnen gaan. Maar dan moet je niet teveel rare fratsen en 'hacks' in je code hebben staan die je data uiteindelijk kunnen vernachelen.

En ja, ook daar wil ik ook komende tijd naar kijken voor PHPhulp. Wat volgens mij niet veel moeite lijkt te zijn.
Gewijzigd op 27/03/2024 22:10:33 door - Ariën -
 
MV Tol

MV Tol

27/03/2024 23:22:48
Quote Anchor link
- Ariën - op 27/03/2024 22:07:36:
Waarom zou je eigenlijk nog op de oude iso-8859-1-characterset en de collatie latin1_swedish_ci willen blijven leunen?


Er staat heel veel content in de database. Dat bouw je niet zomaar even om.
De oude php5 en oude server konden er fantastisch mee uit de voeten. Dan moet het toch een setting zijn die bij php8 en de nieuwe server hetzelfde effect geven?
 
- Ariën  -
Beheerder

- Ariën -

28/03/2024 00:10:39
Quote Anchor link
Hoezo bouw je dat niet zomaar even om?
Als ik zoek op internet naar 'iso to utf-8 converter' kom ik wel wat scripts tegen. Ik heb op mijn laptop ook een dergelijk script liggen die ik ooit met succes gebruikt heb.

Als ik tijd vind zal ik het morgen of eerdaags even in de Scripts-sectie plaatsen.
Maar in dit topic vind je vast goede tips:

https://www.phphulp.nl/php/forum/topic/overstap-van-iso88591-naar-utf8/102227/

Ga je er mee spelen: MAAK BACKUPS!
Bij sterke voorkeur in een testomgeving.

Ik zie wel verschillen in je database versie, en het gebruik van de oude PHP 5. Misschien dat daar ergens net iets anders werkt in combinatie van door jouw gebruikte functies? Maar stap gewoon meteen over naar UTF-8.
Gewijzigd op 28/03/2024 00:17:06 door - Ariën -
 
Ad Fundum

Ad Fundum

28/03/2024 07:27:49
Quote Anchor link
- Ariën - op 27/03/2024 22:07:36:
Waarom zou je eigenlijk nog op de oude iso-8859-1-characterset en de collatie latin1_swedish_ci willen blijven leunen?

Goede vraag. Voordelen:
- alle 'string'-functies werken dan, omdat die stiekem op byte-level werken
- je kunt 'gewoon' met de byte index van een array werken om karakters aan te wijzen
- het is sneller
- je hebt geen extensies nodig
- je hoeft je niet bewust te zijn van hoe Unicode en UTF-8 werkt, je kunt je niet vergissen

MV Tol op 27/03/2024 19:32:18:
Is er ergens een instelling voor de nieuwe server/database, die ervoor kan zorgen dat de é uit de database ook weer een é op de website wordt?

Nee, die is er niet.

Het traject PHP tot en met de browser bestaat uit vele instellingen.
Omdat UTF-8 de standaard is in PHP sinds versie 5.x (kennelijk was het nog niet versie 5.4) is de tutorial over Unicode slechts gedeeltelijk van toepassing.
Let wel: de standaard van HTML5 is Unicode (UTF-8) en die van JavaScript ook (UTF-16). Maar dat neemt niet weg dat browsers ook gewoon SBCS ondersteunen.

Ik kan op dit moment een weloverwogen gok doen wat er mis gaat. Wanneer de browser een blokje met een vraagteken weergeeft, dan is dat het Replacement karakter. Wanneer de browser de pagina zou renderen met de juiste encoding, zou dat karakter niet verschijnen. Ofwel, de browser denkt dat je website in Unicode staat. Dat kan komen wanneer je HTTP-header van de webserver zegt dat je pagina Unicode is.

Mocht je tegen meer problemen aanlopen, check dan je php.ini in de sectie van mbstring (die op je nieuwe server staat). Het gaat om deze instellingen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
[mbstring]
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;

Zie voor de details:
- https://www.php.net/manual/en/mbstring.http.php
- https://www.php.net/manual/en/mbstring.configuration.php
 
B a s
Beheerder

B a s

28/03/2024 18:09:27
Quote Anchor link
Heb je dit geprobeerd?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$string
= mb_convert_encoding($string, 'UTF-8', mb_detect_encoding($string));

var_dump(htmlspecialchars($string, ENT_NOQUOTES, 'UTF-8'));[/code]
 
MV Tol

MV Tol

29/03/2024 15:49:06
Quote Anchor link
De gouden tip kwam van B a s, want hij noemde mb_detect_encoding.
Dat bracht mij op deze pagina:
https://www.php.net/manual/en/function.mb-detect-encoding.php

Voor deze test heb ik in de database deze onzinnige tekst met veel accenttekens opgeslagen:
reële reçu's à la café.
Ik haal de tekst op met php:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
    $query = "SELECT `tekst` FROM `tabelnaam` WHERE `id` = 3756";
    $res = mysqli_query($db_conn, $query);
    while ($tabel = mysqli_fetch_array($res))
    {
        $tekst   = $tabel['tekst'];
    }


Als ik hierop deze test loslaat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
    var_dump(mb_detect_encoding($tekst, ['ASCII', 'UTF-8', 'ISO-8859-1'], false));
    var_dump(mb_detect_encoding($tekst, ['ASCII', 'UTF-8', 'ISO-8859-1'], true));


is het resultaat:
ISO-8859-1
ISO-8859-1
Er is dus wel ISO-chocola van te maken.
Het blijkt inderdaad mogelijk om de als UTF-8 geïnterpreteerde tekst te presenteren als ISO-8859-1.

Het volgende php-script beeldt de opgehaalde tekst op twee manieren af: de verminkte (met vraagtekens) en de gecorrigeerde versie:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4

    print $tekst;
    print "<br/>";
    print mb_convert_encoding($tekst, 'UTF-8', 'ISO-8859-1');


Dit geeft als output:
re?le re?u's ? la caf?
reële reçu's à la café

Om de iso-teksten te corrigeren, is de volgende functie iso() de oplossing:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
    
function iso($data)
{
    $data = mb_convert_encoding($data, 'UTF-8', 'ISO-8859-1');
    return $data;
}    


Hiermee kan ik verder, denk ik. Ik zocht immers naar een hulpmiddel om de correct gespelde tekst uit de database ook correct op het scherm te krijgen.
Allemaal bedankt voor jullie suggesties.
 
Ivo P

Ivo P

29/03/2024 15:55:33
Quote Anchor link
Ik zou voor je steeds blind de functie iso() overal op los laat deze functie ook voorzien van die mb_detect_encoding() om te controleren of de tekst in kwestie inderdaad iso-8859-1 is.

Voor hetzelfde is dat niet op al je teksten van toepassing,
of voer je straks op je nieuwe server teksten als iets anders dan iso-8859-1 toe.
 
MV Tol

MV Tol

29/03/2024 16:04:16
Quote Anchor link
Ja, natuurlijk. Maar goed dat je het nog even noemt.
Ik bouw nog een controle in, in de functie iso(), gebaseerd op de proef met var_dump, die ik gebruikte om vast te stellen dat de tekst ISO-8859-1 was.
 



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.