Encoding problemen (what else)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Developer C# .NET

Functie omschrijving Software Developer C# .NET gezocht voor een dynamische organisatie! Ben jij net afgestudeerd of toe aan een volgende stap in je maatschappelijke carrière? Lees dan snel verder! Wij zijn op zoek naar een Software Developer die klaar is voor een nieuwe uitdaging en die een organisatie in de regio Houten wil versterken. Je werkt in deze functie aan verschillende projecten en gaat vaak op bezoek bij klanten. In deze functie kun je een grote mate van uitdaging, diversiteit en verantwoordelijkheid verwachten. Bedrijfsprofiel Waar kom je te werken? Je komt te werken bij een organisatie dat gespecialiseerd is in

Bekijk vacature »

Machine Software Developer

Bij een bedrijf in de machinebouw, regio Roosendaal, zijn we op zoek naar een: Machine Software Developer Waar ga je werken? Onze opdrachtgever is gespecialiseerd in de grondverzetmachines. Al meer dan 50 jaar leveren ze zowel nationaal als internationaal diverse machines. Het is een familiebedrijf met een informele werksfeer. Wat ga je doen? Als Machine Software Developer ben je verantwoordelijk voor: - Je ontwerpt, ontwikkelt en debugt software voor machinebesturingssystemen en complexe landbouwmachines; - Je stelt gebruikersinterfaces op (cabinedisplays); - Op termijn ga je softwareprojecten leiden voor specifieke machines; - Inclusief planning, documentatie en validatie; - Om specificaties te verifiëren

Bekijk vacature »

Fullstack Developer

Functieomschrijving Heb je kort geleden jouw HBO diploma ICT development behaald? Of zit je nog aan het begin van je carrière en heb je affiniteit met C#.NET? Voor een erkende werkgever in de omgeving van Oosterhout zijn wij op zoek naar een fullstack developer. Als C#.NET developer werk je samen met een vooruitstrevend team aan het ontwikkelen van maatwerk software voor klanten. Je hebt affiniteit met SQL, maar nog belangrijker is dat je kennis en ervaring hebt met C#.NET. Jouw werkzaamheden zien er als volgt uit: Het ontwikkelen van onze high-availability en high-performance backend; Je begint de dag rond 8:30

Bekijk vacature »

Software Developer Mendix / Maatschappelijk Betrok

Dit ga je doen Het bouwen van de Mendix applicaties in samenwerking met jouw team of zelfstandig; Werken met Scrum methodiek; Ontwikkelen van vooruitstrevende oplossingen; Meedenken over nieuwe applicaties en ontwikkelingen; On the job eigen maken van de Mendix omgeving. Hier ga je werken Deze dynamische en snelgroeiende organisatie begeeft zich in de recyclingbranche. Zij nemen op duurzame en efficiënte manier de recycling op zich. Vanwege hun snelle groei zijn zij op zoek naar een young professional die zich graag wilt ontwikkelen als Mendix Developer. Je komt te werken binnen een IT team van +/- 15 medewerkers. Het huidige ‘vaste’

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 »

Java Developer (Training And Simulation)

Wat jij doet Je zou onze Java Developer zijn en nauw samenwerken met je Product Owner, Software System Engineer, Scrum Master en andere Developers. Samen draag je bij aan een multidisciplinair en zelf organiserend Agile team. De rol is zeer afwisselend en bestaat uit, maar is zeker niet beperkt tot: de-risk en prototype onbewezen simulatietechnologieën; simulatiekaders ontwikkelen voor gebruik door andere teams; je bent goed in het begrijpen van ingewikkelde ideeën; heeft de mogelijkheid om nauw samen te werken met grote internationale klanten, leveranciers en overheden om onze oplossingen, vastleggingsvereisten, enz. te definiëren en te presenteren. Ben jij het? Wij

Bekijk vacature »

.NET developer

Functie As a .NET developer you work together in a multidisciplinary development team with 1-2 Senior .NET developers, two front-end developers, Data Scientists and one UX designer. As a team you work on developing a Cloud based application and making this application more stable. Unit testing will also become very important in your new position. Together with the Senior .NET developer you will be responsible for developing the API. You work with a lot of data and occasionally there will also be data issues and some queries will have to be run. This means that you will work a lot

Bekijk vacature »

Backend developer

Functie omschrijving Ben jij graag bezig met de back-end van applicaties? Zou je dit graag willen doen voor een kleine werkgever waar ook tijd is voor een drankje op zijn tijd? Je taken hierbij zullen bestaan uit: Gebruik maken van de volgende technieken: .NET (core), C#, SQL, XML, MVC, JSON, REST & SOAP API. Gebruik maken van de volgende tools: Visual Studio, GIT, Jira, Jenkins. Bovengenoemde technieken en tools ga je gebruiken om: Nieuwe functionaliteiten te ontwikkelen. Wijzigingsverzoeken van klanten uitvoeren. Verzorgen van koppelingen tussen data. Bedrijfsprofiel Jouw nieuwe werkgever bevindt zich in regio Raamdonksveer en bieden oplossingen op gebied

Bekijk vacature »

.NET Developer

Functieomschrijving Ben jij klaar voor de volgende stap in jouw carrière? Kom werken bij dit kleine softwarebureau en werk aan de gaafste maatwerk projecten. Je komt te werken in een klein development team en werk nauw samen met elkaar, om maatwerk software te leveren en bij te dragen aan bedrijfsautomatiseringen. Je gaat werken met de Microsoft stack en technieken als .NET, C#, Entity, MVC, SQL server. In de functie krijg je veel vrijheid om zelf beslissingen te nemen en je hebt impact op de bedrijfsprocessen. Bedrijfsprofiel Dit familiebedrijf bestaat al ruim 20 jaar. Zij hebben een vast netwerk van klanten,

Bekijk vacature »

Lead C++ Developer

De rol van Lead C++ Developer Als Lead C++ developer bij KUBUS word je verantwoordelijk voor het implementatie design van requirements en de software architectuur van de desktop applicaties van BIMcollab, ons platform voor 3D model-validatie en issue-management bedoeld om de kwaliteit van 3D design-modellen voor gebouwen te verbeteren. Betere 3D modellen leiden tot betere gebouwen, dus zo draag je bij aan verduurzaming van de gebouwde omgeving met slimmer gebruik van materialen, minder verspilling en energie-efficiënte gebouwen. Een goede gebruikerservaring staat bij ons hoog in het vaandel; we gaan in onze ontwikkeling voor innovatie en kwaliteit. In je rol als

Bekijk vacature »

Ervaren PHP developer gezocht!

Functie Het team bestaat inmiddels uit zo’n 25 collega’s met specialisten op het gebied van development, data(analyse), marketing, infrastructuur en finance. Ze hebben een supermodern pand en bieden hiernaast veel vrijheid en verantwoordelijkheid. Ze doen er alles aan om jou op te gemak te stellen. Zo kun je je eigen werkplek inrichten naar persoonlijke wensen, maar gaan ze bijvoorbeeld ook jaarlijks met elkaar wintersporten en zijn er andere leuke uitjes. Als onderdeel van één van de scrumteams ga je aan de slag, samen ben je medeverantwoordelijk voor het doorontwikkelen van hun business applicatie waar het traffic team dagelijks mee werkt.

Bekijk vacature »

Oracle Developer / PL SQL

Dit ga je doen Software ontwikkeling aan een internationaal gebruikt pakket; Werken met technieken als Oracle 19c, Toad, PL/SQL, Oracle Forms, Reports en Designer; Meedraaien in internationale projecten; Meedenken over technisch en functioneel ontwerp; Samenwerken met collega's als Informatie Analisten, Testers en Release Managers; Soms wensen en eisen afstemmen met de business. Hier ga je werken Onze klant, een internationaal bekend bedrijf dat essentiële producten maakt waar iedereen graag gebruik van maakt, zoekt versterking in het Software Development team. Samen met 3 developers, een release manager, een informatie analist en 3 testers werk jij aan een systeem waarmee complexe producten

Bekijk vacature »

Front end developer Zorgplatform

Functie Jij als Front end ontwikkelen zult komen te werken samen met 1 PHP ontwikkelaar, 1 Python developer en een flexibele schil aan ontwikkelaars . Samen ga je ervoor zorgen dat de huidige producten doorontwikkeld worden. De Marketplace is geschreven in PHP Laravel en in de front end React. De roostersoftware is ontwikkeld in Python in combinatie met React in de front end. Jij zult als Front ender dus voornamelijk bezig zijn met het verbeteren van onze interfaces op onze verschillende producten. Momenteel ligt de uitdaging in het feit dat de roostersoftware breder schaalbaar moet worden zodat het voor meerdere

Bekijk vacature »

Front-End Developer

Als Front-End Developer bij Coolblue verbeter je de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Wat doe je als Front-End Developer bij Coolblue? Als Front-end Developer werk je aan de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Je vindt het leuk om samen te werken met de UX designer om stories op te pakken. Je krijgt energie van het bedenken van creatieve oplossingen en presenteert dit graag binnen het team. Daarnaast ben je trots op je werk en verwelkomt alle feedback. Ook Front-end Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te

Bekijk vacature »

Java developer

Als Java Developer bij Sogeti ben je onderdeel van onze toonaangevende community die bestaat uit ruim 100 gepassioneerde professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze klanten. Geen werkdag is hetzelfde, je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfskritische systemen. Een voorbeeld hiervan is een cliënt-volgsysteem bij Reclassering Nederland. Andere klanten waar wij onder andere voor werken: KPN, Philips, Nationale-Nederlanden, Kamer van Koophandel, ABN AMRO, Bovemij, Arval en de Politie. Werken bij Sogeti Nieuwe ontwikkelingen volgen we op de voet en delen we binnen de

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

24/04/2024 18:29:39
 
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.