Null in Array (special characters)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.NET Developer / Innovatieve software / Virtual Re

Functieomschrijving Als .Net developer werken aan innovatieve software waar onder andere gebruik gemaakt wordt van Virtual Reality? Bijdragen aan een organisatie waar je uitgedaagd wordt om continu verbeteringen en ontwikkelpunten te ontdekken en door te voeren? Werken in de omgeving Putten? Reageer dan nu voor meer informatie! Het pro-actief aandragen van verbeteringen voor de bestaande applicatie; Ontwikkelen van nieuwe functionaliteiten; Doorvoeren van aanpassingen en wijzigingen; Verantwoordelijk voor koppelingen met andere systemen; Op de hoogte blijven van technische ontwikkelingen. Functie-eisen Hbo werk- en denkniveau; Een afgeronde IT gerelateerde opleiding; Minimaal 1 jaar professionele ervaring als developer; Aantoonbare kennis van C#; Initiatiefrijke

Bekijk vacature »

Tim Kampherbeek

Tim Kampherbeek

16/05/2015 09:58:32
Quote Anchor link
Goeiemorgen allemaal,

Momenteel zit ik met een probleem waar ik niet uit kan komen, ik haal namelijk met PHP data op uit mijn database en voer deze doormiddel van een array, maar op het moment dat ik json_encode uitvoer krijg ik een NULL terug bij data waar speciale tekens zoals ', /, - inzitten.

hier is een voorbeeld code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
array_push($array, $row['value']);

echo json_encode($array);


ik heb al vanalles geprobeerd maar ik krijg gewoon elke keer weer een NULL terug, ik hoop dat iemand van jullie mij hierbij kan helpen
 
PHP hulp

PHP hulp

18/11/2019 11:56:42
 
Frank Nietbelangrijk

Frank Nietbelangrijk

16/05/2015 10:32:52
Quote Anchor link
Zou een probleem kunnen zijn met de character encoding
Ik zou utf8 willen aanraden
 
Tim Kampherbeek

Tim Kampherbeek

16/05/2015 10:41:32
Quote Anchor link
Oke en hoe los ik dat precies op?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

16/05/2015 11:21:29
Quote Anchor link
Met phpMyAdmin je databasetabellen en tekstkolommen instellen op utf8_unicode_ci.

Je HTML pagina's beginnen met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">


Na de connection met je database (met mysqli_connect()) de UTF-8 characterset instellen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$conn
= mysqli_connect("myhost","myuser","mypassw","mybd");
if(!$conn)
{

    echo "Kan niet connecten met mysql server.";
    exit;
}

mysqli_set_charset( $conn , "utf8" );
?>


Bij het versturen van json vanuit een php script eerst even een header meesturen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
header('Content-Type: application/json; charset=utf-8');
?>
Gewijzigd op 16/05/2015 11:25:26 door Frank Nietbelangrijk
 
Tim Kampherbeek

Tim Kampherbeek

16/05/2015 11:35:45
Quote Anchor link
Warning: mysql_set_charset() expects parameter 1 to be string, resource given in /home/blabla/db.php on line 10

lijkt me niet goed dit

Toevoeging op 16/05/2015 11:40:25:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
$dbConnect = mysql_connect($dbHost, $dbUser, $dbPass)
  or die("Er is een fout opgetreden, neem aub contact op met info@test.nl");
 
mysql_select_db($dbName);
mysql_set_charset($dbConnect, "utf8");
Gewijzigd op 16/05/2015 11:40:42 door Tim Kampherbeek
 
Eddy E

Eddy E

16/05/2015 11:43:40
Quote Anchor link
mysql_* is deprecated!
Dus let daar op. Ga gewoon over op mysqli_.

Voor jouw fout nu: mysql_set_charset("utf8", $dbConnect);

Zie de handleiding: http://php.net/manual/en/function.mysql-set-charset.php
 
Tim Kampherbeek

Tim Kampherbeek

16/05/2015 12:52:58
Quote Anchor link
Heb het opgelost bedankt!
 

16/05/2015 21:28:10
Quote Anchor link
json_encode() verwacht dat de input UTF-8 gecodeerd is. Als je een ander coderingsschema gebruikt (bv. Latin1) dan moet je het eerst omzetten naar UTF-8, anders kan je dit soort dingen krijgen. Om te weten waar het precies fout gaat kan je de functie json_last_error() gebruiken.

Iets waar je soms rekening mee wilt houden is dat PHP zelf niet naar encoderingsschema's kijkt, het verwacht dat de PHP scripts in Latin1 zijn. Sommige extenties kunnen alleen overweg met een subset van Unicode, alleen de BMP of soms ook de SMP, maar verder niet. Dat kan problemen geven met de overige 14 planes waarin ook de emoji zitten.

Voor wie niet helemaal bekend is met encoding zie: http://kunststube.net/encoding
 



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.