2013-10-02 7 views
8

Ich habe alle Informationen im SVG-Format in der Datenbank gespeichert und wenn es Text Ich werde es als Unicode erhalten. Jetzt brauche ich, dass jede Svg-Datei korrekt im Browser angezeigt wird.Wie wird Unicode in SVG angezeigt?

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" id="header" 
viewBox="654.0519483 -714.4517 356.4000564 252"> 
<defs></defs><g id="0" visibility="visible"> 
<text id="gText_11081308229940" name="-1" x="790.251953" y="-631.9517" 
font="Arial" rotate="0" horizAnchor="middle" vertAnchor="middle" scale="4,4" width="1"   stroke="0x000000"> 
\u0048\u0045\u004C\u004C\u004F\u0020\u0057\u004F\u0052\u004C\u0044\u0021\u0021\u0021\u0021  </text> 
</g></svg> 

Wenn ich diesen Code versuche, werde ich Unicode anstelle von Buchstaben angezeigt.

+0

Ihre Codierung ist bereits unicode ('encoding =" UTF-8 "'), also warum müssen Sie einfügen, was wie JavaScript-Escape-Zeichen aussehen? – robertc

+1

Ich bekomme sie so aus der Datenbank und ich kann nicht ändern, wie die Zeichen dort gespeichert werden. – adelak

+1

Dann konvertieren Sie sie in tatsächliche Zeichendaten. – robertc

Antwort

9

Wenn Sie wirklich eher Unicode-Werte einfügen möchten, als nur die richtige Codierung der Wahl und die Zeichen direkt in dort setzen, nutzen Entitäten wie würden Sie in any other XML document:

<text id="gText_11081308229940" name="-1" x="790.251953" y="-631.9517" font="Arial" rotate="0" horizAnchor="middle" vertAnchor="middle" scale="4,4" width="1" stroke="0x000000">&#x0048;&#x0045;&#x004C;&#x004C;&#x004F;&#x0020;&#x0057;&#x004F;&#x0052;&#x004C;&#x0044;&#x0021;&#x0021;&#x0021;&#x0021;</text> 

Example.

+0

Und encoding = "UTF-8" ist nicht richtig für \ u0048? Wich Codierung ist dafür OK? – adelak

+0

@adelak Was lässt Sie glauben, dass UTF-8 nicht "richtig" für "\ u0048" ist? Es klingt nicht so, als würden Sie den Unterschied zwischen Unicode-Codepunkten und Zeichenkodierungen verstehen. – robertc

+1

Was kann ich nicht verstehen, warum ich es nicht im Browser anzeigen kann, wenn die Codierung in Ordnung ist. Und warum ich "\ u0048" durch "& # x0048" ersetzen muss. – adelak

1

Nur für den Fall, dass jeder zukünftige Besucher kümmern würde. This \ u0048 oder this & # x0048; sind nicht "ein   Unicode (s)". Unicode ist Standard, der erklärt, wie man binäre Werte zu den anzuzeigenden Zeichen kodiert. Die obigen Notationen sind genauer die Unicode-Escape-Sequenzen von Zeichen. Sie sind nützlich, wenn Sie keine Möglichkeit haben, Unicode-Zeichen direkt einzugeben. (Ihre Verwendung innerhalb des Beispiels in der ursprünglichen Frage ist sinnlos.) Es gibt viele von ihnen, und Sie sollten sie nicht mischen. Sie können zum Beispiel auf dieser Seite suchen: http://billposer.org/Software/ListOfRepresentations.html

Verwandte Themen