2016-07-30 11 views
1

Ich verwende PHP und cURL, um auf eine Remote-API zuzugreifen. Es gibt ein JSON-Ergebnis zurück. Die API gibt von Benutzern gepostete Inhalte zurück, so dass ich hier und da einige merkwürdige Zeichen erwartet habe. Sehr einfache Zeichen wie - oder 'werden jedoch über PHP als chinesische Zeichen ausgegeben (ich weiß, dass es sich nicht um echte Bindestriche oder Apostrophe handelt, sondern um einige Entsprechungen). Trotzdem schaffen es andere Websites, sie gut darzustellen, weshalb ich mir nicht sicher bin, warum sie in meinem Fall als chinesische Schriftzeichen ausgegeben werden.Wie parst man Sonderzeichen mit PHP?

Zum Beispiel: das Zeichen 'Echos als 鈥 檙.

Ich habe mich zur Verfügung stehenden verschiedene PHP Methoden versucht, sie zu bekommen, um korrekt zu codieren oder angezeigt werden, einschließlich:

htmlentities() 
utf8_encode() 
htmlspecialchars() 

und keiner einen Unterschied machen.

Zusätzlich habe ich geprüft und meine Seite tut

<meta charset="utf-8"> 

bei im <head> Element haben.

Fehle ich eine offensichtliche Lösung? Ich fühle mich wie ich sein muss.

+0

Überprüfen Sie Ihren DB Charset. – Martin

+0

Was ist der Zeichensatz der Seite, die du gekräuselt hast? –

+0

L. feir, ich werde ehrlich sein, ich bin mir nicht sicher, wie zu überprüfen. Es ist keine Webseite mit einem Element, es ist eine API-Rückgabe mit einem Inhaltstyp von application/javascript. – Peregrine

Antwort

0

檙 檙 ist keine besondere Charta seiner Unicode. spezielle Charters sind immer noch ASCII und dauert 8 Bits.

während Unicode 16 Bits nehmen.

Haben Sie zu entfernen versucht

<meta charset="utf-8"> 
+0

@Sowiet, was ist der Unterschied zwischen Haben und Haben? – enRaiser

0

Die API HTTP Content-Type sollten Sie Codierung eine Vorstellung von dem Charakter. Sie müssen die Header anzeigen, die von Ihrer Aufrollungsanforderung zurückgegeben werden, um zu sehen, welche Kodierung Sie empfangen. Locke von der Kommandozeile ausgeführt werden Ihnen zeigen:

curl -v http://... 

Zum Beispiel curl -v google.com zeigt:

Content-Type: text/html; charset=UTF-8

Dann müssen Sie sicher sein, dass Sie diese Zeichencodierung in Ihrer Datenbank respektieren und in Ihrem HTML-Meta-Tag.

-1

Also, ich war nur ein Idiot. Ich habe nicht bemerkt, dass auf meiner Seite ein Konflikt verursachendes Meta-Tag war, das den WRONG-Zeichensatz hinzufügte. Danke an alle, die sich Zeit genommen haben, um zu versuchen und zu helfen.

+0

Also was war die Lösung? Hast du enRaiser

+0

Sie können keine weitere Antwort hinzufügen, um uns allen zu danken. Sie müssen entweder beweisen, dass Ihre Antwort anders ist als unsere. oder klicken Sie auf die Schaltfläche "Akzeptieren" für eine der vorherigen Antworten. – enRaiser

+0

Also bitte entweder Ihre Antwort ausarbeiten oder die Antwort löschen. – enRaiser

Verwandte Themen