Encoding problemen (what else)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Outsystems Developer Junior

Dit ga je doen Bouwen aan nieuwe en innovatieve applicaties; Maken van koppelingen tussen Outsystems en het bestaande applicatielandschap; Troubleshooting op bestaande software. Hier ga je werken De organisatie is internationale speler binnen de bouwbranche en richt zich op de infrastructuur, zowel boven als onder de grond. Ze zijn ruim 1100 man groot en maken op IT vlak een mooie groei door. Als junior Outsystems Developer kom je te werken op een IT-afdeling van zo'n 25 man groot. Een aantal jaar geleden hebben ze de keuze gemaakt om zich meer te gaan richten op ontwikkeling en door de groei van

Bekijk vacature »

Senior PHP Developer

As a Senior PHP Developer at Coolblue, you ensure that our webshops work as optimal as possible and you choach other colleagues on the hard and soft skills. How do I become a Senior PHP Developer at Coolblue? As a PHP Developer you work together with other development teams to make our webshop work as optimal as possible and to make our customers happy. Although you are a PHP Developer, you are not averse to a little TypeScript or other technologies that might be used. Would you also like to become a PHP Developer at Coolblue? Read below if the

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 »

Fullstack Software Developer

Bedrijfsomschrijving Functieomschrijving Java ontwerpen, bouwen en testen (T-shaped). Als senior ontwikkelaar ben je bekend in zowel de back-end als de frontend van een applicatie. Angular, Continious Delivery / Integration. Een ervaren iemand die de leiding kan nemen, een weg vindt in nieuwe situaties, en in oude applicaties. Initiatiefrijk, bekend met de (technische) omgevingen die we bij duo gebruiken, niet te beroerd om collega’s te helpen. Als senior programmeur in staat om op te treden als lead programmeur. Ondersteunt de testers bij de testautomatisering en minder ervaren programmeurs bij dagelijks werkzaamheden. Dit laatste met name op het gebied van Angular. Achtergrond

Bekijk vacature »

SAP HANA Cloud Application Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Veldhoven Vacature ID: 12662 Introductie HANA Cloud Application Developer at a High Tech company. The company is the world's leading provider of lithography systems for the semiconductor industry, manufacturing complex machines that are critical to the production of integrated circuits or chips. Our purpose is “unlocking the potential of people and society by pushing technology to new limits”. We do this guided by the principles “Challenge”, “Collaborate” and “Care”. This role is situated in the Big Data Analytics (BDA) Domain. The teams have mixture of young talent and senior specialists and have a

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 »

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 »

Full Stack .NET Developer C# ASP.NET

Samengevat: Deze werkgever is gespecialiseerd in het op afstand bewaken en besturen van machines en processen. Ben jij een ervaren Full Stack .NET Developer? Heb je ervaring met C# en ASP.NET? Vaste baan: .Net Developer C# ASP.NET HBO €3.300 - €4.500 Deze werkgever is een snel groeiende onderneming gespecialiseerd in het op afstand bewaken en besturen van machines en processen, IoT (Internet of Things). Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. Wil jij bij de top specialisten horen? Ben jij op zoek naar een

Bekijk vacature »

Junior .NET developer

Functie Om half 9 kom jij binnen en pak jij als eerst natuurlijk een bakje koffie of thee. Vervolgens ga jij je voorbereiden op de stand-up van kwart voor 9. Zijn er bijvoorbeeld dingen waar jij nog tegen aan loopt? Of is er nog code die getest of gereviewd moet worden? Vervolgens starten jullie met de stand up en na de stand up zoeken jullie elkaar op en gaan jullie aan de slag. Als team met 6 developers werken jullie in drie wekelijkse sprints. Het einde van een sprint is altijd op een donderdag zodat jullie op vrijdag de demo

Bekijk vacature »

.NET Developer

Dit ga je doen (Door)Ontwikkelen van het applicatielandschap; (Door)Ontwikkelen van microservices; Bouwen van nieuwe functionaliteiten; Verbeteringen aandragen voor het applicatielandschap; Sparren met de business. Hier ga je werken De organisatie is werkzaam in de financiële dienstverlening met meer dan 200 medewerkers en meer dan 250.000 eindgebruikers is het een van de grotere binnen haar branche. Je komt te werken in een team waarmee je verantwoordelijk bent voor het ontwikkelen en onderhouden van de financiële applicaties binnen de organisatie, denk hierbij aan het bouwen en onderhouden van portalen. Als .net developer ga jij het development team ondersteunen met de transitie naar

Bekijk vacature »

OutSystems Developer

Dit ga je doen Het van scratch af aan ontwikkelen van applicaties met OutSystems; Het aanhaken bij diverse projecten binnen de organisatie; Schakelen met de business; Meedenken over de mogelijkheden van het platform binnen de organisatie. Hier ga je werken Deze organisatie is een toonaangevende speler in de vastgoedbranche en telt momenteel ruim 500 medewerkers. Met meer dan 150 applicaties staat er een complex applicatielandschap, bestaande uit standaard- en maatwerkapplicaties. De maatwerkapplicaties worden ontwikkeld door een inhouse development team. Het doel voor de komende periode is het verder vernieuwen en optimaliseren van het huidige applicatielandschap. Zo staat de organisatie aan

Bekijk vacature »

Junior Low-code ontwikkelaar gezocht omgeving Arnh

Bedrijfsomschrijving Wij zijn een dynamisch IT-bedrijf dat zich richt op het stroomlijnen van bedrijfsprocessen en het creëren van ondersteunende applicaties. Onze kracht ligt in het combineren van zakelijk inzicht met IT-expertise via gestroomlijnde procesontwerpen en wendbare applicatieontwikkeling met behulp van Low-code technologieën. Als jonge professional krijg je de kans om samen te werken met een team van 15 deskundige collega's, verspreid over nationale en internationale locaties. We bieden je een leerzame omgeving waar je je vaardigheden kunt ontwikkelen en groeien in je rol als Low-code ontwikkelaar. Word jij onze nieuwe Junior Low-code Ontwikkelaar (OutSystems)? Versterk ons team en draag bij

Bekijk vacature »

Applicatieontwikkelaar Java EE

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving De afdeling IV –

Bekijk vacature »

PHP Developer

Zie jij mogelijkheden om onze tooling technisch te verbeteren en uit te bouwen? Over Jobmatix Jobmatix is een innovatieve en internationale speler op het gebied van jobmarketing. Onze jobmarketing automation tool helpt organisaties bij het aantrekken van nieuw talent door vacatures digitaal, geautomatiseerd en op een efficiënte manier te adverteren en onder de aandacht te brengen bij de doelgroep op 25+ jobboards. Volledig performance-based, waarbij organisaties betalen op basis van cost per click of cost per applicant. Maandelijks wordt onze jobmarketing automation tool al gebruikt door vele directe werkgevers, intermediairs en mediabureaus, waaronder Picnic, Rijkswaterstaat, AdverOnline, Schiphol, DPA, Teleperformance en

Bekijk vacature »

Back-end Developer (Permanent position with the em

Bedrijfsomschrijving Dutch specialist in technical installation materials. Functieomschrijving Purpose of the position: Our client is looking for a Back-end Developer who, together with the rest of the energetic and dynamic team, is responsible for the development and management of the website. This not only concerns the development and management of the current website, but also the development of a new Headless Commerce Platform to keep the customer's website Future proof. Within the IT department, there is a real DevOps culture and the commerce team is at the forefront and tries to implement continuous improvements. Most important tasks: ï‚· Designing and

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

26/04/2024 15:56:49
 
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.