UTF-Zeichen werden nach dem Dialogfeld zum Speichern nicht korrekt gespeichert oder angezeigt

Problem

Das Textfeld „Touch ui“ mit sling:resourceType=granite/ui/components/coral/foundation/form/textfield konvertiert lateinische Zeichen falsch. Beispiel: „Eléctricos“ wird als „Eléctricos“ gespeichert.

Dieses Problem trifft auf viele internationalen Schriftzeichen zu.

Ursache

Die von Sling verwendete Zeichenkodierung ist nicht UTF.

Lösung

Um das Dialogfeld dazu zu zwingen, Daten in der UTF-Zeichenkodierung zu speichern, können Sie ein ausgeblendetes Element in das Dialogformular hinzufügen (Lösung A) oder die Standardkodierung auf UTF-8 umstellen (Lösung B).

A. Fügen Sie dem Dialogformular ein verstecktes Element hinzu.

  1. Wechseln Sie zu http://aemhost/crx/de/index.jsp und melden Sie sich als Administrator an.

     

  2. Rufen Sie Ihren Knoten „Dialog“ auf, zum Beispiel /apps/sitename/components/content/customtext/cq:dialog/content/items/settings/items/columns/items/displayAs/items.

     

  3. Erstellen Sie einen Unterknoten charset mit folgenden Eigenschaften:

    sling:resourceType (String) = granite/ui/components/coral/foundation/form/hidden
    ignoreData (Boolean) = true
    name (String) = _charset
    _value (String) = utf-8

    Alternativ können Sie einen ähnlichen Knoten aus dem Verzeichnis „/libs“ kopieren.  Zum Beispiel den Knoten /libs/cq/personalization/touch-ui/content/commons/createpagewizard/jcr:content/body/items/form/items/charset.

  4. Klicken Sie auf Alle speichern.

B. Legen Sie als Standard-Zeichenkodierung UTF-8 fest.

  1. Wechseln Sie zu http://aemhost/system/console/configMgr/org.apache.sling.engine.parameters und melden Sie sich als Administrator an.

  2. Legen Sie die Standard-Parameter-Kodierung auf UTF-8 fest.

  3. Klicken Sie auf Speichern

Adobe-Logo

Bei Ihrem Konto anmelden