php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > XML
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


XML Hier passt alles rein, was das Thema XML (XSLT, JSON etc...) betrifft, auch in Verbindung mit PHP

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 29-09-2021, 17:28
Bibl
 Registrierter Benutzer
Links : Onlinestatus : Bibl ist offline
Registriert seit: Sep 2021
Beiträge: 5
Bibl befindet sich auf einem aufstrebenden Ast
Standard Umlaute bei JSON_ENCODE()

Moin liebe Helferinnen und Helfer,

vermutlich eine einfache Frage, aber meine bisherigen, langwierigen Recherchen waren nicht sehr befriedigend.

Mein Skript unten liefert folgende Ausgabe:

---------------------------------------------------------------------------------------------------------------------------------------------------------
Array ( [0] => ä [1] => ö [2] => ü [3] => Ä [4] => Ö [5] => Ü [6] => ß [7] => % [8] => $ [9] => § [10] => . )
JSON-AUSGABE:
["\u00e4","\u00f6","\u00fc","\u00c4","\u00d6","\u00dc","\u00df","%","$","\u00a7","."]
---------------------------------------------------------------------------------------------------------------------------------------------------------

Das Skript ist als UTF-8 ohne BOM gespeichert.
Ich frage mich jetzt, was eigentlich herauskommen sollte. Müssten im JSON-Part jetzt die uns bekannten Umlaute auftauchen, oder erkennt ein abrufendes Skript das Ergebnis als korrektes JSON an?
Hintergrund: Das ganze soll eine simple Schnittstelle werden.
Ich hätte jetzt erwartet, dass im JSON-Part ebenfalls die Umlaute auftauchen müssten.

Könnt Ihr helfen?

PHP-Code:
<?php
header
("Content-Type: text/html; charset=utf8");

### Array aus Umlauten und Sonderzeichen
$arr = array('ä''ö''ü''Ä''Ö''Ü''ß''%''$''§''.');
print_r($arr);

### JSON-Ausgabe
echo "<br /><br />JSON-AUSGABE: <br />";
echo ( 
json_encode($arr) );


?>
Mit Zitat antworten
  #2 (permalink)  
Alt 29-09-2021, 17:39
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.819
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Was genau ist jetzt die Frage? Wie JSON funktioniert? Das kann man nachlesen.

Und wenn du dir unsicher bist, ob aus dem JSON-String wieder der korrekte Wert ausgelesen werden kann, dann brauchst du es ja nur mal dekodieren, und siehst dann eh, ob es passt oder nicht?
Mit Zitat antworten
  #3 (permalink)  
Alt 01-10-2021, 15:02
Bibl
 Registrierter Benutzer
Links : Onlinestatus : Bibl ist offline
Registriert seit: Sep 2021
Beiträge: 5
Bibl befindet sich auf einem aufstrebenden Ast
Standard

Danke, der Hinweis führt mich schon mal weiter.

Das ganze ist viel komplexer und ich tue mich noch schwer, die Frage richtig zu formulieren.
Mit Zitat antworten
  #4 (permalink)  
Alt 01-10-2021, 15:41
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.819
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Du kannst per Parameter festlegen, wie json_encode() Sonderzeichen konvertieren soll:
PHP-Code:
$values = ['ä''ö''ü'];

echo 
json_encode($values);
// ["\u00e4","\u00f6","\u00fc"]

echo json_encode($valuesJSON_UNESCAPED_UNICODE);
// ["ä","ö","ü"] 
Richtig und gültig ist beides. Ein JSON-Decoder muss beide Varianten dekodieren können. Die erste Variante ist wohl stabiler, weil es kaum eine Möglichkeit gibt die Zeichenkodierung kaputt zu machen. Für Menschen lesbarer und kürzer ist die zweite Variante. Nur bei dieser sollte konsequente auf die Verwendung von UTF-8 geachtet werden.
Mit Zitat antworten
  #5 (permalink)  
Alt 01-10-2021, 18:37
Bibl
 Registrierter Benutzer
Links : Onlinestatus : Bibl ist offline
Registriert seit: Sep 2021
Beiträge: 5
Bibl befindet sich auf einem aufstrebenden Ast
Standard

Danke!
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
charset, json, umlaute, zeichenkonvertierung


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Codierungsfehler mit json_encode() usany PHP Developer Forum 3 14-09-2012 13:47
umlaute... rally PHP Developer Forum 7 17-12-2004 14:31
umlaute phowe PHP Developer Forum 2 06-09-2004 23:36
Umlaute und XML Viktor M. XML 3 28-03-2003 14:12
umlaute mukraker PHP Developer Forum 7 17-02-2003 21:09

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Von 0 auf über 2 Mio € Umsatz in weniger als 12 Monaten – wie die Pixelwerker das nur durch SEO geschafft haben
Von 0 auf über 2 Mio € Umsatz in weniger als 12 Monaten – wie die Pixelwerker das nur durch SEO geschafft habenSEO oder SEA? Warum SEO die besserer Methode ist.

01.10.2021 | Berni

Kundengewinnung und Kundenbindung
Kundengewinnung und KundenbindungVertrieb läuft doch immer persönlich. Das funktioniert nicht mit dem Internet! Wirklich?

24.09.2021 | Berni


 

Aktuelle PHP Scripte

AdRotator Light ansehen AdRotator Light

AdRotator Light (kurz: "Arlight") ist ein kostenloser und spielend einfach zu bedienender AdServer in PHP.

18.10.2021 scripthostingnet | Kategorie: PHP/ Bannerverwaltung
WebCounter by Scripthosting.net ansehen WebCounter by Scripthosting.net

Der WebCounter von Scripthosting.net ist ein kostenloser Besucherzähler in PHP. Seine Daten speichert er in einer SQLite oder MySQL Datenbank ab.

17.10.2021 scripthostingnet | Kategorie: PHP/ Besucherzaehler
Simple CMS PHP ansehen Simple CMS PHP

Simple CMS PHP is a very simple content management system. You just create a page content into the admin area and then copy the code for this content and paste it into the page of your website, where you want the content to appear. You do not need of any

01.10.2021 nevenov | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:46 Uhr.