Encoding problemen (what else)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java Developer - REMOTE - Amsterdam, Den Haag, Rot

My client, a growing consultancy company, is looking for a Java Developer to join their team. They are currently working REMOTELY so will consider candidates from all over the Netherlands - Amsterdam, Den Haag, Rotterdam, 's-Hertogenbosch, Apeldoorn, Groningen etc. Working with clients in the banking, insurance, government, telecommunications, and energy industries, they have some exciting projects they are currently working on. I’m looking for someone with strong knowledge and experience with: · 5 years' experience as a software engineer · Hibernate · Microservices · Docker · Cucumber · Maven · Jenkins · MongoDB · React / Angular · Agile /

Bekijk vacature »

Advanced Mendix Developer Logistic Solutions (NL)

Advanced Mendix Developer Logistic Solutions (NL) Den Haag HBO/WO IT Professional "Als Advanced Mendix Developer impact maken op de groeiende E-commerce markt met onze logistieke software en onze kritieke logistieke keten. Je doet dit door ontwikkeling en uitbreiding van onze Mendix Cloud omgeving, waarbij je complexe business processen vertaalt naar kritieke Mendix applicaties." Wat ga je doen? PostNL is becoming a postal tech company. Je komt te werken binnen PostNL Logistic Solutions. Daar gaan we net wat verder dan een standaardpakket of brief. Het gaat bijvoorbeeld om gekoeld vervoer van medicijnen (Health), Warehousing (Fulfilment), het leveren binnen hele strakke tijdvakken

Bekijk vacature »

Applicatiebeheerder (ervaren)

NWO-I zoekt een ervaren functioneel applicatiebeheerder financieel systeem (minimaal 32 uur per week) Voor het beheren, optimaliseren en (door)ontwikkelen van de aanwezige financiële applicaties, teneinde het gebruiksgemak en beschikbaarheid te waarborgen en processen adequaat te ondersteunen. Functioneel Applicatiebeheerder financieel systeem U4ERP Ben jij onze nieuwe, enthousiaste en ervaren, professionele collega, die bij ons als meewerkend voorman/vrouw, zijn/haar kennis en ervaring in wil brengen en het vak van functioneel applicatiebeheerder wil uitoefenen en affiniteit heeft met financiën? Als meewerkend voorman/vrouw ben je de vooruitgeschoven post naar de organisatie van het team van applicatiebeheerders. Het team wordt met jouw komst uitgebreid en

Bekijk vacature »

IT-traineeship Low Code Developer

Vind jij het leuk om veel contact te hebben met een klant en je te verdiepen in een domein? Lijkt het je interessant om enerzijds met de klant mee te denken, maar tegelijkertijd ook zelf een bijdrage te leveren aan de implementatie van een IT oplossing? Wij zijn op zoek naar starters die aan de slag willen als low-code engineer. In deze functie bouw je aan applicaties met behulp van een low-code platform, zoals Outsystems, Blueriq, Mendix of Pega. Dergelijke platformen stellen je in staat om snel een werkende applicatie te ontwikkelen en zijn hierdoor heel geschikt voor maatwerk projecten.

Bekijk vacature »

Front-End Developer Design System

You work together with other development teams and designers to improve the webshop on a daily basis to make our customers happy. How do I become a Front-End Developer Design System at Coolblue? At Coolblue, we’re convinced that Design Systems help us build effective customer journeys. The dedicated Design System team collaborates with designers and developers alike to build a collection of tried and true building blocks, patterns & guidelines. You’ll look at the user-friendliness of our webshop and are convinced that great design should be accessible to all. You are passionate about developing consistent and effective User Experiences; you

Bekijk vacature »

.NET ontwikkelaar / Azure

Bedrijfsomschrijving Als onderdeel van een grote IT-dienstverlener is deze organisatie nu gegroeid tot een organisatie van bijna 30 man groot. Iedereen binnen deze organisatie houdt zich bezig met het ontwikkelen, beheren, onderhouden van bedrijfskritische applicaties. De organisatie ontwikkelt applicaties voor o.a. diverse grote zorgverzekeraars, maar ook de wat kleinere lokale bedrijven worden door deze organisatie ondersteund. In tegenstelling tot de moederorganisatie, werken de medewerkers bij deze organisatie gemiddeld drie tot vier dagen in de week gewoon op het eigen kantoor in Utrecht. Samen met een vast team ben je dus verantwoordelijk voor verschillende projecten die je veelal op één en

Bekijk vacature »

Front-End Developer

Voor ons kantoor in Zierikzee zijn we op zoek naar een Front-End Developer Als Front-End Developer bij Syntess Software in Zierikzee … …werk je in teamverband aan onze cloud native ERP-applicatie op het Microsoft Azure platform of aan de mobiele- en webapplicaties voor onze ERP-applicatie Syntess Atrium. Je primaire taak is het cross browser realiseren van interfaces in HTML en CSS (op basis van het aurelia framework). Je gaat aan de slag met het ontwikkelen van een responsive en progressive applicatie die er voor zorgt dat meer dan 15.000 medewerkers van onze klanten hun dagelijkse werkzaamheden optimaal kunnen uitvoeren. Met

Bekijk vacature »

Java Developer / Webservices / Overheid

Bedrijfsomschrijving De organisatie waar je komt te werken is een semi-overheidsinstelling die zorgt voor een goede samenwerking tussen verschillende overheidsinstanties. Het is een familiaire club die gaat voor kwaliteit en langdurige relaties. Het bedrijf is gevestigd in hartje Utrecht met het Centraal Station op loopafstand en een parkeergarage naast het pand. Bij deze stabiele organisatie gaat men uit van kwaliteit hoogwaardige softwarediensten. Je zal hier als Java Ontwikkelaar geen projecten tegenkomen waar je uit commercieel oogpunt jouw werk zo snel mogelijk af moet leveren. Uiteraard zal je hier wel het beste uit jezelf moeten halen, maar hierbij ligt het zwaartepunt

Bekijk vacature »

Java Developer gezocht voor een leuk bedrijf!

Bedrijfsomschrijving Voor een leuke klant ben ik zoekende naar een Java Developer. Deze organisatie bestaat uit ongeveer 30 leuke collega’s die allemaal meewerken aan opdrachten voor klanten. Het uitgangspunt binnen alle werkzaamheden is het standaardiseren van communicatiestromingen/bestanden van klanten. Er heerst hier ook een pragmatische mentaliteit waarbij je samen met collega’s zoekt naar de beste oplossingen voor klanten om bestanden overzichtelijk en makkelijk te maken. Deze klant laat zich het beste omschrijven als een warme organisatie waarbij de collega's onderling elkaar vooruit helpen en goed samenwerken. De organisatie is met 30 medewerkers relatief klein, maar is daardoor wel ontzettend gezellig

Bekijk vacature »

Skilled Support Engineer

Vacature: Skilled Support Engineer Locatie: Eindhoven Fulltime (40 uur) Salarisindicatie: marktconform (afhankelijk van kennis en ervaring) Per direct zijn wij binnen COM4 automatisering vanwege uitbreiding van onze dienstverlening op zoek naar een (Skilled) support engineer. Je werkplek Wij zijn een all-round partner voor ICT-dienstverlening voor MKB, met een klantgrootte van 25 tot 500 werkplekken. Met onze Managed IT Services bieden wij ondersteuning en zijn wij sparringspartner voor iedere organisatie, of er nu een eigen IT afdeling is of juist geen. Uw ICT is onze zorg, daar staan we voor en maken we ons hard voor richting onze klanten! De afdeling

Bekijk vacature »

Application Developer Tech Lead

We’re Hiring! A UPS Application Developer Tech Lead *REMOTE WORK POSSIBLE FOR THIS ROLE As a Tech Lead Developer at UPS you work on delivering functionality for highly complex IT systems. You collaborate in agile teams and participate in emerging technologies and processes like CI/CD and DevOps to ensure that we meet our objectives effectively and efficiently. Your primary role is to perform full system life cycle activities, e.g. analysis, technical requirements, design, coding, testing and the implementation of software. Working in our Europe development center in Eindhoven means working in an international team with onsite people as well as

Bekijk vacature »

Informatiebeheerder

Kom jij onze organisatie versterken? Als Informatiebeheerder ben je verantwoordelijk voor een adequate informatievoorziening en optimale inzet van IT-resources, die aansluiten bij de behoeftes van Cure Afvalbeheer. De inhoudelijke focus van je werk ligt op Data Analytics en Enterprise Data Management. Je speelt een belangrijke rol in de ambities van Cure Afvalbeheer om verder te digitaliseren en automatiseren. Het ontwikkelen van een efficiënte samenwerking met interne gebruikers is daarbij een speerpunt. Je werkt ook intensief samen met de functioneel beheerder en externe beheerders, consultants en softwareleveranciers als het gaat om het uitvoeren en begeleiden van beheer op diverse gebieden: technisch,

Bekijk vacature »

Applicatiebeheerder

We zoeken voor deze functie een absolute kei op het gebied van SQL, Power BI, .NET Core, EDI, API en ERP-systemen. De ideale Applicatiebeheerder ziet het als een uitdaging om ook zelf de juiste oplossingen te bedenken en te bouwen en durft daarbij out-of-the- box te denken. Je bent communicatief vaardig en pragmatisch en weet met een natuurlijke drive de vertaling te maken van onze operatie naar gebruiksvriendelijke oplossingen voor interne en externe klanten. Om zo de spreekwoordelijke spil te zijn tussen mens en applicatie. Applicatiebeheerder Breda, 36-40 uur per week Herkenbaar? Lees dan verder wat je als Applicatiebeheerder gaat

Bekijk vacature »

Fullstack Java Developer

Functieomschrijving Met jouw expertise zorg je als fullstack java developer voor de meest plezierige en efficiënte klant ervaring. Met jouw state-of-the-art-systemen verbeter je onze business en maak je echt impact! Want als je in ons tech team werkt, houd je jezelf en Nederland in beweging. Wij zijn continu bezig onze business en processen te optimaliseren, zodat we onze klanten en kandidaten meer gemak, snelheid en transparantie kunnen bieden. Impactvolle tech, daar doen we het voor. wat ga je doen? Samen met het team ontwikkelen van user stories op de backlog; Begeleiden van (meer junior) collega’s; Samenwerken met andere online teams;

Bekijk vacature »

Full Stack Developer

Wat ga je doen? Het bouwen van een Corporate website en Community Portal, is dat iets wat jij al eerder hebt gedaan? Ben jij minimaal 32 uur beschikbaar en wil jij graag samenwerken met het ICT Robotics & Applications Team van Yource? Word onze nieuwe Full Stack Developer! Als Full Stack Developer ga jij je bezig houden met alles wat met web-ontwikkeling te maken heeft. Onder andere het bouwen en de doorontwikkeling van onze Corporate websites en Community Portal, deze zijn cruciaal in onze strategie. De Portal is dé plaats van waaruit we met potentiele kandidaten, onze members en partners

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

11/04/2021 20:54:38
 
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.