Ich verwende ein Plugin in WordPress, das HTML-Code in einem Feld speichert. Diese Spalte ist mediumtext utf8_general_ci
Wenn ich diese Informationen ausgeben möchte, werden alle Sonderzeichen wie z " ´ ' ...
und einige andere werden als schwarze Diamanten mit einem Fragezeichen darin angezeigt �
Wenn das Plugin diesen Text anzeigt, ist es perfekt. Das steht im Kopf:
<meta charset="UTF-8" />
Wenn ich woanders ausgebe, habe ich das im Kopf und all diese Zeichen gehen verloren:
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
Zeichen werden ordnungsgemäß in MYSQL gespeichert, und ich gebe sie so über PHP aus
ob_start();?>
some html
<?php echo $row4['details'];?> <- this is the field im talking about
some html
<?php
$details = ob_get_clean();
und später nur:
echo $details;
Ich habe genug gelesen und der Zeichensatz wird immer erwähnt, aber ich denke, meiner ist in Ordnung.
Danke für die Hilfe!
Bearbeiten: Vollständiges Beispiel hinzufügen
Text wird in WP angezeigt. Wie ich in einem Kommentar sagte, könnte dies von einem Redakteur aus MS Word in Worpress kopiert / eingefügt worden sein.
8. Choose the verb to complete the sentence.
______ you ever _____ the proverb, “Time is gold”?
Has… heard…
Have… hear…
Have… heard…
Gespeichert in einer Datenbank wie dieser (sehen Sie sich nicht die richtige/Benutzerantwort an, die richtig funktioniert)
<span class="watupro_num">8. </span>Choose the verb to complete the sentence.</p>
<p>______ you ever _____ the proverb, “Time is gold”?</p></div>
<ul>
<li class="answer"><span class="answer">Has… heard…</span></li>
<li class="answer user-answer"><span class="answer">Have… hear…</span></li>
<li class="answer correct-answer"><span class="answer">Have… heard…</span></li>
</ul>
Text wird außerhalb der Datenbank angezeigt (woran ich arbeite)
8. Choose the verb to complete the sentence.
______ you ever _____ the proverb, �Time is gold�?
Has� heard�
Have� hear�
Have� heard�
Danach angezeigter Text utf8_encode()
Danke an Kirit Patel
8. Choose the verb to complete the sentence.
______ you ever _____ the proverb, Time is gold?
Has heard
Have hear
Have heard
Ich habe gerade entdeckt, dass Charaktere immer noch da sind. Beim Bearbeiten sehe ich ein Kästchen mit Zahlen (wird in der Vorschau nicht angezeigt).
Mit “Sonderzeichen” beziehen Sie sich auf Dinge wie den guten alten akuten Akzent (U+00B4 AKUTE AKZENT)? Ich glaube nicht, dass Ihre App überhaupt UTF-8 verwendet, und die Deklaration in HTML-Tags wird die Tatsache nicht ändern.
– Alvaro González
11. März 2017 um 9:26 Uhr
Klingt so, als müssten Sie den PHP-Header und die Verbindung auf utf8 setzen.
– Qirel
11. März 2017 um 9:38 Uhr
Es passiert mit Apostrophen, Bindestrichen, Ellipsen, Anführungszeichen usw. Wie stelle ich den PHP-Header und die Verbindung ein? Ich weiß nicht, was du meinst.
– Wille
11. März 2017 um 10:03 Uhr
U+00B4 benötigt zwei Bytes in UTF-8. Wenn Ihre App UTF-8 verwendet und etwas nicht stimmt, sehen Sie die einzelnen Bytes (
´
in diesem Fall). Ich vermute, dass Ihre App Windows-1252 oder ISO-8859-1 verwendet, sodass MySQL den UTF-8-Datenbankwert in eine solche Einzelbyte-Codierung konvertiert. Wenn Sie es als UTF-8 deklarieren (was nicht der Fall ist), werden Sie sehen�
).– Alvaro González
11. März 2017 um 13:28 Uhr
Meine fundierte Vermutung an dieser Stelle ist, dass Sie WordPress nicht für die Verwendung von UTF-8 konfiguriert haben. Ich weiß nichts über diese Software, daher kann ich Ihnen nicht sagen, wie Sie das Problem beheben können, aber ich werde ein entsprechendes Tag hinzufügen und hoffentlich jemanden darauf aufmerksam machen.
– Alvaro González
11. März 2017 um 13:33 Uhr