Diakritische tekens worden opeens vraagtekens

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Developer C# .NET

Functie omschrijving Zoek jij een nieuwe uitdaging binnen development waar je komt te werken binnen een flexibel, jong en ondernemend bedrijf? Wij zijn voor deze functie op zoek naar een C# .NET Developer die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Verder begeleid je complexe projecten, ben jij iemand die altijd kansen ziet? Dan zoeken wij jou! Verder ga jij je bezighouden met: Het verbeteren van functionaliteiten binnen het dataplatform; Meedenken in oplossingsrichtingen; Werken aan de architectuur; Ontwikkelen van nieuwe technologieën. Bedrijfsprofiel Waar ga je werken? De organisatie waar je voor gaat werken heeft een onafhankelijk

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET ontwikkelaar start jij in ons development team met twee andere .NET developers. Als team werken jullie in scrum en is er iedere ochtend om 11.00 een standup. Jij krijgt als junior .NET ontwikkelaar een inwerk traject dat echt specifiek wordt ingericht op basis van wat jij nodig hebt. Een van de grootste pluspunten bij ons is dat wij binnen ons bedrijf veel (technische) vrijheid geven en juist eigen initiatieven erg stimuleren. Jouw werkzaamheden gaan er bij ons als volgt uit zien: – Het ontwikkelen van nieuwe software samen met interne en eventueel externe ontwikkelaars; – Het

Bekijk vacature »

Medior/Senior Front-end Developers gezocht (Utrech

Functie Het team bestaat uit 10+ gespecialiseerde (veel senior) front-end ontwikkelaars en ontwerpers die werken aan projecten voor klanten van verschillende groottes (kan twee jaar bezig zijn met 1 klant). Je helpt klanten met ingewikkelde front-end vraagstukken, hierbij kun je denken aan: UX/UI design, CI/CD, architectuur en integratie met back-end systemen. De werkzaamheden verricht je op locatie bij de klant, dit is vaak in de Randstad. De organisatiestructuur is plat en er heerst een informele sfeer, zo kun je met vragen dus terecht bij de directie. Er wordt veel nadruk gelegd op het bevorderen van persoonlijke ontwikkeling door middel van

Bekijk vacature »

Software Ontwikkelaar PHP

Functie omschrijving Software Ontwikkelaar PHP gezocht! Wij zijn op zoek naar een ervaren PHP Software Ontwikkelaar om het team van onze opdrachtgever te versterken! De ideale kandidaat zal fungeren als verlengstuk van klanten en complexe technische vraagstukken met enthousiasme benaderen. Naast het werken met de nieuwste technologieën, ben je in staat om aan meerdere projecten tegelijkertijd te werken. Als je deze uitdaging aangaat, werk je nauw samen met front-end developers en draag je bij aan het realiseren van grote veranderingen bij klanten. Het bedrijf zoekt iemand die zichzelf graag uitdaagt en altijd streeft naar het leveren van de beste resultaten.

Bekijk vacature »

React developer Inhouse cloudplatform

Functie De functie: Als front-end developer kom je te werken naast 2 andere front-end/React developers, waaronder één senior. Een hele mooie kans dus om in korte tijd veel nieuwe kennis en ervaring op te doen. Ze hebben momenteel veel werk hierin en daarom willen ze het team graag uitbreiden. Het is van belang dat je, zeker gezien het vele thuiswerken, in ieder geval al een aantal projecten hebt gedaan in React. Taken waar je aan kunt denken zijn het ontwikkelen van client-applicaties o.b.v. HTML5, React en andere open standaarden. Ook ben je nauw betrokken bij het implementeren van designs o.b.v.

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Software Ontwikkelaar PHP

Functie omschrijving Full Stack Software Ontwikkelaar gezocht! Voor een bedrijf in de regio van Ermelo zijn wij op zoek naar een Software Ontwikkelaar die gaat bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van SaaS applicatie van dit bedrijf. Hierbij ga jij voor- en samenwerken met de klanten van de organisatie, het is hierbij dus van groot belang dat je communicatief vaardig bent en dat je beschikt over beheersing van zowel de Nederlandse als Engelse taal. Bedrijfsprofiel Waar ga je werken? Altijd al in een echt familiebedrijf willen werken? Dan is dit je kans! Het bedrijf waar je komt te

Bekijk vacature »

Front-end Developer Angular

Dit ga je doen Jouw taken als Front End Developer bestaan uit: Het ontwikkelen van maatwerkoplossingen voor klanten; Het meedenken over nieuwe tools en technieken; Het begeleiden van junioren; Het meewerken aan diverse projecten; Het meedenken in UX/UI design. Hier ga je werken Als Front-End Developer ga je in een Scrum team aan de slag met de nieuwste digitale technologieën om klanten en overheden over de hele wereld te ondersteunen met het ondersteunen van hun software, veelal op het gebied van watermanagement en infra. Door middel van real-time data in combinatie met voorspellende analyses, AI, Deep Learning en Machine Learning

Bekijk vacature »

Python Developer

Dit ga je doen Als Python Developer ben je verantwoordelijk voor: Het ontwikkelen van Stuurprogramma's in Python zodat er verbindingen kunnen worden gelegd tussen besturingssystemen en (AV) hardware; Het testen en debuggen van Stuurprorgamma's; Het communiceren met noodzakelijke partijen in gevallen waar extra technische details nodig zijn om een Stuurprogramma te ontwikkelen of problemen op te lossen; Het maken van de nodige technische documentatie (in het Engels); Het participeren in een Scrum/Agile omgeving. Hier ga je werken Deze internationale organisatie is wereldwijd een succesvol producent en leverancier van professionele AV hard- en software. Klanten gebruiken de producten o.a. voor het

Bekijk vacature »

Back-End Developer in Laravel / PHP

Functie omschrijving Wij zijn op zoek naar een Medior PHP Laravel Developer voor een gaaf bedrijf in de omgeving van Amsterdam! Voor een enthousiast team die zich graag bezig houdt met softwareontwikkeling zijn wij op zoek naar versterking. Je werkt in een klein ontwikkelteam en bent zeer betrokken bij alle aspecten van de softwareoplossingen. Van het ontwerpen tot de oplevering. Binnen deze functie ga je aan de slag met het aanpassen, verbeteren en vernieuwen van de logistieke oplossingen. Je krijgt veel te maken met koppelingen naar systemen en de verzoeken van de klant. Je komt terecht in een team, waarbij

Bekijk vacature »

Medior Java developer

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Freelance JAVA / C# Developer

Functieomschrijving 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! Voor een opdrachtgever in omgeving Delft 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. 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 »

Software Developer .NET

Functie omschrijving .NET developer gezocht! Wij zoek op zoek naar een .NET Developer die zich niet uit het veld laat slaan voor een software bedrijf in de regio Veenendaal. Je gaat in deze functie aan de slag met het door ontwikkelen van bestaande producten en het ontwikkelen van nieuwe producten. Dit bedrijf ontwikkeld SaaS applicaties die zowel intern als extern gebruikt worden. Verder bestaat je functie uit: Het ontwikkelen en bouwen van webapplicatie, mobiele applicaties en websites vallen onder jouw verantwoordelijkheden; Werken met onder andere .NET, C#, HTML/CSS, Javascript en MSSQL/Oracle Databases; Hierin werk je samen met andere developers en

Bekijk vacature »

Fullstack of back-end PHP developer

Functie Ieder onderdeel van de software draait op aparte servers en het bestaat dus echt uit verschillende componenten. Het team bestaat uit 4 developers, een klein team dus met korte lijnen. Alles in intern ontwikkeld en je werkt aan alle facetten. Van uitbreiding van de core tot maatwerk voor de klant. Ook liggen er verschillende uitdagingen op servervlak en databases. Je zult de eerste periode veel samenwerken met de lead developer om vervolgens echt je gang te gaan binnen de software. In het team streven ze naast de hoogst haalbare kwaliteit. Hiervoor werken ze nauw met elkaar samen en levert

Bekijk vacature »

Senior Front end developer Digital Agency

Functie Jij als Front end developer komt te werken in een van de 8 multidisciplinaire teams binnen de organisatie. Deze teams werken op basis van Scrum agile in 2 wekelijkse sprints. De grootte van de teams varieert van 9-14 collega’s en bestaan altijd uit één of meerdere project managers en een project manager. Samen met je team werk je aan verschillende projecten voor uiteenlopende klanten zoals grote multinationals tot het kleine mkb. De stack waarmee gewerkt wordt is voornamelijk Javascript, ES6, Es.next, HTML, CSS, React.js en Node.js. Wat deze organisatie onderscheid is dat ze echt langdurige partnerships aangaan met hun

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

19/05/2024 10:12:37
 
- 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.