Konvertieren Sie Unicode zurück in Text – WordPress JSON api
Lesezeit: 2 Minuten
Sie arbeiten an einem WordPress-Feed auf einer externen Website und sind auf ein Problem mit Beitragstiteln gestoßen, die Zeichen wie einfache Anführungszeichen und Bindestriche enthalten.
Die JSON-Ausgabe sieht folgendermaßen aus:
{"rendered":"Some title post text here – some text after dash"}
{"rendered":"‘Title text in quotes ’: More title text"}
Was ist der beste Weg, um diese Unicode-Zeichen am Frontend wieder in Text umzuwandeln? Im Moment zeigt es den Unicode an.
Ich denke, es muss eine Javascript-Lösung geben. Im Idealfall würde die Lösung alle Grundlagen abdecken.
Haben Sie nach einer Lösung gesucht?
– Andreas Knochen
30. Juni 2017 um 10:59 Uhr
Ich habe, aber ein Teil des Problems ist zu wissen, wonach ich suchen muss! Ich dachte, es muss ein allgemeines Problem sein, aber ich kann online nicht viel darüber finden.
Wenn Sie mit VUEjs arbeiten, können Sie die v-html-Direktive verwenden
Du bist ein Engel, weißt du das?!
– Kristoffer Berg – EcodeAS
21. Februar 2020 um 14:10 Uhr
Einer (irgendwie hackig) Eine Möglichkeit besteht darin, den Browser zu verwenden, um die Escapezeichen der Zeichenfolge aufzuheben: Sie können die ursprüngliche Zeichenfolge in ein Element (als HTML) einfügen und den Textwert zurücklesen.
Mit Hilfe von jQuery:
var result = $("<div/>").html("‘Title text in quotes ’: Dash: – ").text();
Das result enthält dann den unverschlüsselten Klartext.
Sie sind eigentlich HTML-Entitäten, Sie können sie einem HTML-Element hinzufügen und sie dann so erneut lesen.
function html_entity_decode(message) {
var element = document.createElement("div");
element.innerHTML = message;
return element.innerHTML;
}
console.log(html_entity_decode("Some title post text here – some text after dash"));
console.log(html_entity_decode("‘Title text in quotes ’: More title text"));
metal_jacke1
Es gibt ein NPM-Paket, das dies durchführt, und es ist gut dokumentiert. HTML-zu-Text
const { convert } = require('html-to-text');
const text = convert('<div>Nope Its not Ashton Kutcher. It is Kevin Malone. <p>Equally Smart and equally handsome</p></div>', {
wordwrap: 130
});
console.log(text);
// Results:
// Nope Its not Ashton Kutcher. It is Kevin Malone.
// Equally Smart and equally handsome
Angenommen, Sie verwenden ein Frontend-Framework wie React:
import { convert } from 'html-to-text';
export function App(props){
return (
<div>
<h1>{convert(props.wpData, {wordwrap: null})}</h1>
</div>
)}
14269000cookie-checkKonvertieren Sie Unicode zurück in Text – WordPress JSON apiyes
Haben Sie nach einer Lösung gesucht?
– Andreas Knochen
30. Juni 2017 um 10:59 Uhr
Ich habe, aber ein Teil des Problems ist zu wissen, wonach ich suchen muss! Ich dachte, es muss ein allgemeines Problem sein, aber ich kann online nicht viel darüber finden.
– ok
30. Juni 2017 um 11:21 Uhr
Dies scheint eine nützliche Ressource zu sein? ourcodeworld.com/articles/read/188/…
– ok
30. Juni 2017 um 13:17 Uhr