2013-10-02 13 views
8

Mam wszelkie informacje przechowywane w formacie SVG w bazie danych i jeśli to tekst, otrzymam je jako Unicode. Teraz potrzebuję, aby każdy plik svg był poprawnie wyświetlany w przeglądarce.Jak wyświetlić kod Unicode w SVG?

<?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> 

Kiedy próbuję tego kodu, wyświetlany jest kod Unicode zamiast liter.

+0

Twoje kodowanie jest już w formacie Unicode ('encoding =" UTF-8 "'), więc dlaczego odczuwasz potrzebę wstawienia znaków pomocniczych JavaScript? – robertc

+1

Dostaję je z bazy danych w taki sposób i nie mogę zmienić sposobu przechowywania znaków w tym miejscu. – adelak

+1

Następnie przekonwertuj je na rzeczywiste dane znakowe. – robertc

Odpowiedz

9

Jeśli naprawdę chcesz, aby wstawić wartości Unicode, a nie tylko wybór odpowiedniego kodowania i stawianie znaków bezpośrednio tam, użyj podmioty jak byś w 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

A kodowanie = "UTF-8" nie jest odpowiedni dla \ u0048? Które kodowanie będzie w tym przypadku odpowiednie? – adelak

+0

@adelak Co prowadzi Cię do przekonania, że ​​UTF-8 nie jest "właściwy" dla '\ u0048'? Nie brzmi to tak, jakbyś rozumiał różnicę między kodami Unicode i kodowaniem znaków. – robertc

+1

Czego mogę nie zrozumieć, dlaczego nie mogę wyświetlać go w przeglądarce, jeśli kodowanie jest prawidłowe. I dlaczego muszę zastąpić '\ u0048'' & # x0048' w tym celu. – adelak

1

Tylko dla przypadku, który będzie obchodził każdy przyszły użytkownik. To \ u0048 lub to & # x0048; nie są "Unicode (s)". Standard Unicode wyjaśnia, w jaki sposób kodować wartości binarne do wyświetlanych znaków. Powyższe zapisy są dokładniejszymi sekwencjami unikowymi znaków Unicode. Są przydatne, gdy nie masz możliwości bezpośredniego wprowadzania znaków Unicode. (Ich użycie w przykładzie z pierwotnego pytania jest bezcelowe.) Jest ich wiele i nie powinieneś ich mieszać. Możesz szukać na przykład na tej stronie: http://billposer.org/Software/ListOfRepresentations.html

Powiązane problemy