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.

    – 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

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("&#8216;Title text in quotes &#8217;: Dash: &#8211; ").text();

Das result enthält dann den unverschlüsselten Klartext.

Siehe diese funktionierende Geige: http://jsfiddle.net/ppbd58jk/

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 &#8211; some text after dash"));
console.log(html_entity_decode("&#8216;Title text in quotes &#8217;: More title text"));

Benutzeravatar von metal_jacke1
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>

    )}

1426900cookie-checkKonvertieren Sie Unicode zurück in Text – WordPress JSON api

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

Privacy policy