‘ anstelle eines Apostrophs (‘) in PHP erhalten

Lesezeit: 4 Minuten

anstelle eines Apostrophs in PHP erhalten
Minze

Ich habe versucht, den Text in oder aus utf8 zu konvertieren, was nicht zu helfen schien.

Ich erhalte:

"It’s Getting the Best of Me"

Es sollte sein:

"It’s Getting the Best of Me"

Ich bekomme diese Daten von diese URL.

  • Ich sehe das manchmal, wenn Leute mir von einem Mac aus IM oder E-Mails senden. Bin gespannt auf die Lösung.

    – Eric J.

    18. Februar 10 um 20:37 Uhr

  • Ja, ich teste den Code auch auf einem Mac mit MAMP Pro.

    – Minze

    18. Februar 10 um 20:39 Uhr

  • Wenn das aus einer MySQL-Tabelle stammt, ist keine der hier angegebenen Korrekturen angemessen.

    – Rick James

    28. Dezember 17 um 0:20 Uhr

anstelle eines Apostrophs in PHP erhalten
Matthew

So konvertieren Sie in HTML-Entitäten:

<?php
  echo mb_convert_encoding(
    file_get_contents('http://www.tvrage.com/quickinfo.php?show=Surviver&ep=20x02&exact=0'),
    "HTML-ENTITIES",
    "UTF-8"
  );
?>

Siehe Dokumente für mb_convert_encoding für weitere Kodierungsoptionen.

  • Das funktioniert, obwohl ich nicht herausfinden kann, wie ich es auf fopen zum Laufen bringen kann

    – Minze

    19. Februar 10 um 4:11 Uhr

  • Sobald Sie den Inhalt der gewünschten Datei erhalten haben, übergeben Sie ihn als ersten Parameter an mb_convert_encoding(). z.B, $text = fgets($fp); $html = mb_convert_encoding($text, "HTML-ENTITIES", "UTF-8");

    – Matthew

    19. Februar 10 um 4:46 Uhr

  • Domain ist nicht mehr gültig.

    – mtness

    5. Juni 14 um 9:39 Uhr

  • Was ist mit einer URL, bei der die HTML-Entität keine gültige URL für so etwas wie einen RSS-Feed erstellen würde?

    –Titan

    22. April 15 um 08:33 Uhr

  • @GreenGiant: Meine Antwort zeigt Ihnen einfach, wie Sie von einer Codierung in eine andere konvertieren. URLs (mit Ausnahme von Domänen) können Unicode-Zeichen enthalten; zumindest wissen moderne Browser, wie man sie anzeigt. Dies ist beispielsweise eine gültige URL: de.wikipedia.org/wiki😊. (Obwohl SO den Schrägstrich nach Wiki frisst.) Daher ist UTF-8 im Allgemeinen eine akzeptable Codierung für URLs. Aber wenn Sie das vermeiden wollten, könnten Sie versuchen, ‘ASCII’ für den zweiten Parameter zu verwenden. Es werden jedoch offensichtlich nicht so viele Zeichen unterstützt, sodass Sie möglicherweise mit ‘?’ Platzhalter.

    – Matthew

    23. April 15 um 1:06 Uhr


Stellen Sie sicher, dass Ihr HTML-Header utf8 angibt

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Das reicht normalerweise für mich (offensichtlich, wenn der Inhalt utf8 ist).

Sie müssen nicht in HTML-Entitäten konvertieren, wenn Sie den Inhaltstyp festlegen.

  • Das muss der beste Beitrag aller Zeiten sein! Ich habe meinen Zeichensatz auf utf-8 aktualisiert und es hat sofort alle meine datenbankgesteuerten Seiten repariert. Danke für diese superschnelle Lösung!

    – Jamie

    3. April 13 um 19:30 Uhr

  • Dies sollte als Antwort akzeptiert werden, da es sich um eine globale Lösung handelt.

    – Keith Petrillo

    24. Oktober 18 um 14:25 Uhr

1644314766 973 anstelle eines Apostrophs in PHP erhalten
Kobbeln

Ihr Inhalt ist in Ordnung; Das Problem liegt bei den Headern, die der Server sendet:

Connection:Keep-Alive
Content-Length:502
Content-Type:text/html
Date:Thu, 18 Feb 2010 20:45:32 GMT
Keep-Alive:timeout=1, max=25
Server:Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.7 with Suhosin-Patch
X-Powered-By:PHP/5.2.4-2ubuntu5.7

Content-Type sollte auf gesetzt werden Content-type: text/plain; charset=utf-8, da diese Seite kein HTML ist und die utf-8-Kodierung verwendet. Chromium auf dem Mac errät ISO-8859-1 und zeigt die von Ihnen beschriebenen Zeichen an.

Wenn Sie keine Kontrolle über die Website haben, geben Sie die Codierung als UTF-8 für die Funktion an, die Sie zum Abrufen des Inhalts verwenden. Ich bin nicht vertraut genug mit PHP, um zu wissen, wie genau.

Ich weiß, dass die Frage beantwortet wurde, aber das Festlegen des Meta-Tags hat in meinem Fall nicht geholfen und die ausgewählte Antwort war nicht klar genug, daher wollte ich eine einfachere Antwort geben.

Um es einfach zu halten, speichern Sie den String in einer Variablen und verarbeiten Sie ihn so

$TVrageGiberish = "It’s Getting the Best of Me";

$notGiberish = mb_convert_encoding($TVrageGiberish, "HTML-ENTITIES", 'UTF-8');

echo $notGiberish;

Was zurückgeben sollte, was Sie wollten It’s Getting the Best of Me

Wenn Sie etwas analysieren, können Sie eine Konvertierung durchführen, während Sie einer Variablen wie dieser Werte zuweisen, wo $TVrage ist ein Array mit allen Werten, XML in diesem Beispiel aus einem Feed, der das Tag “Title” hat, das Sonderzeichen wie enthalten kann ‘ oder ’.

$cleanedTitle = mb_convert_encoding($TVrage->title, "HTML-ENTITIES", 'UTF-8');

1644314766 695 anstelle eines Apostrophs in PHP erhalten
questCorp

Wenn Sie hier sind, weil Sie Probleme mit Junk-Zeichen auf Ihrer WordPress-Site haben, versuchen Sie Folgendes:

  1. Offen wp-config.php

  2. Auskommentieren define('DB_CHARSET', 'utf8') und define('DB_COLLATE', '')

    /** MySQL hostname */
    define('DB_HOST', 'localhost');
    
    /** Database Charset to use in creating database tables. */
    //define('DB_CHARSET', 'utf8');
    
    /** The Database Collate type. Don't change this if in doubt. */
    //define('DB_COLLATE', '');
    

1644314767 898 anstelle eines Apostrophs in PHP erhalten
pr1001

Es hört sich so an, als würden Sie Standard-String-Funktionen für UTF8-Zeichen (‘) verwenden, die in nicht vorhanden sind ISO 8859-1. Überprüfen Sie, ob Sie verwenden Unicode-kompatibel PHP-Einstellungen und -Funktionen. Siehe auch die Multibyte String-Funktionen.

anstelle eines Apostrophs in PHP erhalten
semirturgay

Probieren Sie es einfach aus

wenn $text enthält seltsame Zeichen tun Sie dies:

$mytext = mb_convert_encoding($text, "HTML-ENTITIES", 'UTF-8');

und du bist fertig..

.

821280cookie-check‘ anstelle eines Apostrophs (‘) in PHP erhalten

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy