Encoding problemen (what else)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Junior .NET developer

Functie Als junior .NET ontwikkelaar start jij in een ontwikkelteam met 7 .NET developers. In ons team werken er drie senior .NET developer, twee medior .NET developers en twee junior .NET developers. Er is dan ook genoeg senioriteit in ons team om jou te kunnen bieden wat jij nodig hebt! Wij werken in scrum en hebben drie wekelijkste sprints. Daarnaast doen wij minimaal vier keer per jaar een release. Ons platform is ontzettend complex en groot. Het is dan ook in het begin belangrijk dat jij de processen gaat begrijpen. Jij krijgt dan ook een cursus om beter te begrijpen

Bekijk vacature »

Front-end developer gezocht

Functie Je komt in een team met ambitieuze developers die de passie voor Front-End met jou delen. Samen ga je aan de slag met leuke en leerzame opdrachten. Het team heeft een eigen budget en financiën en zij bepalen zelf hoe dat besteed en investeert wordt. Je gebruikt tools als JavaScript, Node.js, React, Angular, Typescript en Vue.js wanneer je werkt aan de opdrachten. Daarnaast zul je veel leren van je collega’s en gezamenlijk een leuke tijd doorbrengen tijdens activiteiten zoals wintersport, hackatons en conferentiebezoeken. Je krijgt niet alleen de mogelijkheid Front-End te ontwikkelen, maar ook vooral jezelf. Dit kan behaald

Bekijk vacature »

Functioneel Applicatiebeheerder

Wij van CNB zijn op zoek naar een leergierige Functioneel Applicatiebeheerder CNB is de grootste dienstverlener in de markt van bloembollen en vaste planten. In deze markt verricht CNB de volgende diensten: bemiddeling, veilen en het koelen en prepareren van bloembollen. Vanuit ons hoofdkantoor in Lisse werken bijna 100 collega’s dag in dag uit aan de bemiddeling van bloembollen. In Bovenkarspel vindt het koelen en prepareren van de bloembollen plaats. Wij zijn op zoek naar een enthousiaste Functioneel Applicatiebeheerder die naast een applicatie, ook sfeer kan bouwen! Jij: Vindt het leuk om binnen een klein IT-team aan de slag te

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

Junior Software Developer

Functie omschrijving Wij zijn op zoek naar een Junior Software Developer .NET, C# voor een gaaf bedrijf in de omgeving van Utrecht! Sta jij aan het begin van je carrière en heb je net je HBO of WO-diploma in de richting van ICT of Techniek mogen ontvangen? En heb jij grote affiniteit met software development? Lees dan snel verder! Voor een opdrachtgever in de omgeving van Utrecht, zijn wij op zoek naar een Junior Software Developer. Werk jij graag aan verschillende projecten en ga je graag klanten op bezoek? Dan is dit de ideale functie voor jou! Binnen deze functie

Bekijk vacature »

Junior .NET developer

Functie Ons programma is voor afgestudeerde enthousiastelingen die het als een uitdaging zien om met een klein dynamisch team bij de grootste bedrijven van Nederland aan de slag te gaan. Tijdens jouw dienstverband word jij begeleid door een talent manager. Het ontwikkelen van jouw talent staat hierbij centraal. Het programma doorloop je met een team van circa 8 Mede- trainees. De eerste maand start je met een fulltime inhouse opleiding. Deze staat geheel in het teken van de werkzaamheden die jij verder in het programma zult uitvoeren. Na deze opleidingsmaand ga je aan de slag in een dynamische omgeving bij

Bekijk vacature »

Senior Front-end developer

Functie Als front-end developer ga je aan de slag voor verschillende klanten, waarbij veel rekening wordt gehouden met waar je woont (dit is altijd binnen het uur), en word er gezocht naar een organisatie die past bij jou. Zowel qua persoonlijke ambities als de technische aansluiting. De opdrachten duren gemiddeld 1 à 2 jaar maar dit hangt ook af van je wensen. Je werkt in een teamverband voor een klant en zult nauw samenwerken met zowel eigen collega’s als die bij de klant werkzaam zijn. Ze zijn op zoek naar een technische front-end developer die ruime ervaring heeft in één

Bekijk vacature »

Technisch Applicatie ontwikkelaar

Functie omschrijving Ben jij op zoek naar een nieuwe uitdaging en zoek jij een informele werkgever waar je zelfstandig kunt werken binnen een leuk IT team, lees dan snel verder want wie weet zijn wij op zoek naar jou! In deze functie werk jij voornamelijk aan: Het onderhouden en ontwikkelen van de IT systemen; Het opzetten van Azure Cloud systemen, denk aan interfaces, hardware op de Cloud, webportalen of BI functies; Werk je aan scripts binnen verschillende software applicaties, denk aan ERP en CAD; Ontwikkel en implementeren je MS PowerApps en Power BI. Bedrijfsprofiel Je komt terecht bij een familiair

Bekijk vacature »

Developer

Functie omschrijving Gaat jouw hart sneller kloppen van software developen in C#.NET? Voor een softwarebedrijf in regio Den Bosch zijn wij op zoek naar een C# programmeur. Lees snel verder! Wat ga je doen? Je gaat werken met C# en ASP.NET MVC Framework om onder meer webapplicaties, webshops en websites te ontwikkelen. Je optimaliseert de bestaande software en helpt mee aan het automatiseren van bedrijfsprocessen. Je gaat samen met je collega's de juiste oplossing op basis van de wensen van de klanten uitwerken tot een mooi product. Bedrijfsprofiel Het ontwikkelen van softwareoplossingen en kantoorautomatiseringen is waar dit bedrijf voor staat.

Bekijk vacature »

.NET developer

Functie Als .NET ontwikkelaar start jij in een multidisciplinair team met 7 ontwikkelaars. Dit team is verdeeld onder Front-end ontwikkelaars en backend developers. De backend developers werken voornamelijk aan desktop applicaties in combinatie met backend systemen. Hier ga jij dus ook mee aan de slag! Hierbij wordt voornamelijk gebruik gemaakt van C# .NET, WPF, UWP, XAML en MVVM. WPF, UWP, .NET Core, Azure Devops en Entity Framework. WPF en UWP worden dan ook voornamelijk gebruikt voor de user interface van de desktop applicatie. Het development team is dan ook erg gedreven m.b.t. het ontwikkelen van vooruitstrevende en innovatieve horeca automatiseringsoplossingen.

Bekijk vacature »

Front-end Developer

Gezellige team, passie en een groene toekomst! Lees hier de vacature van Front-end Developer bij All in Power! All in power heeft zich tot doel gesteld écht bij te dragen aan de energietransitie. Dit doen wij door de markt voor energie volledig op zijn kop te zetten. Producenten van schone (wind- of zonne-)energie verkopen via ons platform hun energie rechtstreeks aan gebruikers. Of dit nu huishoudens, bedrijven of bijvoorbeeld laadpalen zijn ons platform maakt het uitwisselen van energie mogelijk. Zo maken we de business case van onze klanten veel sterker en loont het om (meer) te investeren in vergroening voor

Bekijk vacature »

Senior Node.js developer Digital Agency

Functie Door de groei van de organisatie zijn ze op zoek naar een Tech Lead. Als tech lead ben jij verantwoordelijk Als Back end Node.js developer kom je terecht in een van de 8 multidisciplinaire teams in het projectenhuis. Afhankelijk van jouw interesses, wensen en capaciteiten word je bij projecten en onderwerpen naar keuze betrokken. Als ervaren ontwikkelaar zul jij vaak leiding nemen in de projecten en in het team een aanvoerder zijn van technische discussies. Uiteindelijk wil jij natuurlijk de klantwensen zo goed mogelijk vertalen naar robuuste code. De projecten kunnen varieren van langlopende- tot kleinschalige trajecten. Voorheen werkte

Bekijk vacature »

SQL Developer

Functie omschrijving Altijd al willen werken bij een snelgroeiend bedrijf, actief in de logistieke sector? Dit is je kans! Ik ben op zoek naar een ervaren SQL Developer in de omgeving Tilburg. Dit bedrijf is gespecialiseerd in in de ontwikkeling van software en maatwerk oplossingen voor het automatiseren van logistieke processen. Klanten zijn o.a. BOL en andere grote distributiecentrums. Jouw taken worden vooral: Verantwoordelijk voor ontwikkelen van stored procedures, voor snelle afhandeling van data; Optimalisatie van de SQL query's en T-SQL query's; Jij gaat je bezig houden met ontwerpen, ontwikkelen en optimaliseren van de MS SQL Databases; In deze functie

Bekijk vacature »

.NET Developer C#

Dit ga je doen Als developer nieuwe gave features implementeren; Werken met technieken als C# .NET en (REST) API's webservices; Ontwikkelen van koppelingen middels API's; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken Als C# .NET Developer wordt je verantwoordelijk voor het ontwikkelen van applicaties voor belangrijkste product van deze organisatie. Dit product is een applicatie voor alles omtrent hypotheken. De programmeertaal die je hierbij beheerst is C#. Er

Bekijk vacature »

Database Developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als Database Developer met MS SQL of een vergelijkbare database? Wil jij werken voor een ambitieuze werkgever in regio Tilburg waar jij volledig de mogelijkheid krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je gaat projecten gedurende het hele proces begeleiden. Je sluit aan bij afspraken met klanten om hun processen helder te krijgen. Vervolgens voer jij het project uit en zorgt dat dit zo goed mogelijk verloopt; Je werkt aan nieuwe softwareoplossingen die de logistieke processen verbeteren of vernieuwen; Je houdt je bezig met het ontwikkelen van

Bekijk vacature »
Eric Verboven

Eric Verboven

08/08/2020 19:01:01
Quote Anchor link
Ik krijg txt-bestanden in mijn php-programma, met een file_get_contents. Ik weet eigenlijk alleen dàt het txt-bestanden zijn, niet uit welke omgeving ze afkomstig zijn. De bedoeling is dat ik (gedeelten van) die teksten toon in mijn programma. Ze moeten op hetzelfde scherm getoond worden.

Probleem: er duiken 'gekke tekens' op.

Voorbeeld:
- In de ene tekst wordt het woordje "één" (dus met tweemaal het Franse accent aigu) getoond zoals het hoort.
- In de andere tekst wordt de é met accent aigu getoond als een op een hoek staand zwart vierkantje met een wit vraagteken.

Op geen enkele plaats, niet in de html-header en ook niet in de php-code, wordt er gegoocheld met encoding. Wanneer ik mb_detect_encoding ($text) opvraag, krijg ik in beide gevallen utf-8.

Vraag: hoe krijg ik mijn ééntjes (en andere ä, ç, ü en à enz.) op een deftige manier op mijn scherm? Natuurlijk heeft het met encoding te maken. Alleen zie ik op dat vlak al lang de bomen niet meer door het bos. Bestaat daar een soort "standaard-oplossing" voor? Heeft iemand een code-voorbeeld?
Gewijzigd op 08/08/2020 20:35:32 door Eric Verboven
 
PHP hulp

PHP hulp

20/04/2024 06:39:58
 
Adoptive Solution

Adoptive Solution

08/08/2020 19:50:35
Quote Anchor link
Kijk een of dit onderwerp uitsluitsel biedt.

https://www.phphulp.nl/php/forum/topic/utf-en-vreemde-tekens/103664/
 
Eric Verboven

Eric Verboven

08/08/2020 20:44:58
Quote Anchor link
Bedankt, Adoptive Solution, maar de link die je opgaf, lost eigenlijk niks op. In de link die je opgeeft, gaat het om materiaal dat in een MySQL-database opgeslagen zit. Dat leidt tot een heel andere situatie dan de mijne. Ik werk met tekstbestanden die op schijf staan, en die ik met file_get_contents inlees - dus geen MySQL in de buurt, en ook geen MySQL-connectie-problemen of -mogelijkheden.

Wat het misschien een beetje tricky maakt, is dat het in mijn geval gaat om een vijftal (niet vooraf in te schatten) teksten, waaruit stukjes gehaald worden die gelijktijdig, dus op hetzelfde scherm, getoond moeten worden.

Heeft iemand een idee?
 
Thomas van den Heuvel

Thomas van den Heuvel

08/08/2020 21:05:58
Quote Anchor link
De principes blijven echter hetzelfde, en zolang je geen oplossing hebt lijkt het mij handig om alle opties open te houden en niet te voorbarig dingen te concluderen.

> Op geen enkele plaats, niet in de html-header en ook niet in de php-code, wordt er gegoocheld met encoding.

En hoe serveert jouw webserver jouw documenten dan? Heb je wel eens in de netwerk-tab naar de responses gekeken en welke headers deze hadden? Want volgens mij was het juist datgene wat voor de problemen zorgde in de andere thread. Stel bij voorkeur expliciet een Content-Type header in via PHP, onder vermelding van een character encoding (charset).

NB zie de eerste user comment bij mb_detect_coding():
Quote:
If you try to use mb_detect_encoding to detect whether a string is valid UTF-8, use the strict mode, it is pretty worthless otherwise.

Jij krijgt dus op dit momemt mogelijk zogenaamde false positives zonder die strict flag.

Gebruik dus mb_detect_encoding($text, mb_detect_order(), true), en converteer alles ongelijk aan UTF-8 naar UTF-8.

Je zou ook eens kunnen kijken wat mb_detect_order() teruggeeft.

Het zou natuurlijk nog een stuk handiger zijn wanneer je af kunt dwingen dat alles in een bepaald formaat wordt aangeleverd. Als je iemand alles in laat vullen in een formulier en dan in een database opslaat, dan kun je dit doel mogelijk makkelijker bereiken dan met losse tekstbestanden.
Gewijzigd op 08/08/2020 21:29:03 door Thomas van den Heuvel
 
Eric Verboven

Eric Verboven

08/08/2020 22:37:19
Quote Anchor link
He Thomas.

Je suggesties hebben vrucht opgeleverd, denk ik. Een tekst die problemen gaf, leverde eerst "utf-8" op, net als andere teksten, die géén problemen gaven. Dat was vervelend. Daarna heb ik jouw mb_detect_encoding($text, mb_detect_order(),true) uitgevoerd. Nu was het resultaat "niets", een lege string. Dat suggereerde in elk geval al dat er een verschil was tussen die lastige tekst en de andere.
Daarna heb ik op php.net een handige functie gevonden voor conversie naar utf-8. Je vindt die bij https://www.php.net/manual/en/function.utf8-encode.php#118318 onder de User Contributed Notes, op naam van een zekere pini. Met de functie die je daar vindt, anything_to_utf8 , lukt de conversie van mijn "lege encodering" naar utf-8 zonder het minste probleem, en o wonder: alles wordt zo op het eerste gezicht getoond zoals het moet, zonder gekke zwarte vierkantjes of andere ongein.
Heel erg bedankt voor het goede spoor, dus.
Toch één opmerking: encodering van teksten is een meganorme warboel, voor zover ik dat na een paar uurtjes gepriegel kan beoordelen. Ik kan die anything_to_utf8 functie wel toepassen, maar de code begrijpen doe ik voor geen jota. Maar never change a working piece of code, zegt de profeet. En nogmaals bedankt!

PS: je hebt natuurlijk gelijk met je opmerking over database-gebaseerde informatie en tekstbestanden, maar die keuze heb ik niet. Ik moet dingen tonen uit (ongestructureerde) teksten, gewoon "leesteksten", boeken, zeg maar. Ik zou ook wel met leuke formulieren en strakke MySQL-tabellen willen werken, maar dat is niet aan de orde.
Gewijzigd op 08/08/2020 22:50:31 door Eric Verboven
 
Thomas van den Heuvel

Thomas van den Heuvel

09/08/2020 00:11:55
Quote Anchor link
Hm, die anything_to_utf8() doet in principe niet zoveel. Het enige wat dit volgens mij effectief doet is indien iets niet als UTF-8 wordt geïdentificeerd, dat daar dan maar utf8_encode() overheen wordt gegooid. Maar dat zou je eigenlijk alleen met enig fatsoen kunnen/mogen doen indien de brontekst een ISO-8859-1 encodering had, want zo werkt utf8_encode() nu eenmaal.

Dit zou je natuurlijk altijd kunnen proberen indien mb_detect_encoding() niets opleverde en dan hopen dat daar iets leesbaars uitkomt, maar anders zou je eigenlijk de gedetecteerde encoding moeten gebruiken om dit met behulp van mb_convert_encoding() te converteren naar UTF-8. Maar utf8_encode() toepassen op data van een onbekende encodering blijft een gok.

Ik zou dus eerder zoiets gebruiken (niet getest, maar het principe zou duidelijk moeten zijn):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
function gimme_utf8($in) {
    $encoding = mb_detect_encoding($in, mb_detect_order(), true);

    if ($encoding === 'UTF-8') {
        return $in; // this is fine
    } elseif ($encoding === false) {
        return utf8_encode($in); // your guess is as good as mine
    } else {
        return mb_convert_encoding($in, 'UTF-8', $encoding); // attempting to convert
    }
}

?>

Ik zie trouwens ook dat mijn mb_detect_order() lijst niet bijzonder lang is, hier zit enkel ASCII en UTF-8 in :p. Dus effectief doet dit waarschijnlijk hetzelfde als anything_to_utf8(), maar het bovenstaande snijdt wat mij betreft wat meer / wel hout :).
Gewijzigd op 09/08/2020 00:52:03 door Thomas van den Heuvel
 
Ad Fundum

Ad Fundum

10/08/2020 23:25:05
 



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.