Wenn ich die Schriftartdefinition in ein CSS auslagere, findet der Adobe SVG-Viewer meine Verda nicht mehr.
In erster Instanz klingt das doch sehr nach einem Bug, oder? Du hast natürlich unterlassen, zu sagen, wie du welche Version des ASV einsetzt, sonst hätte man vielleicht noch mehr dazu sagen können.
Verda wird durch eine andere Schriftart ersetzt, deshalb wird auch das D angezeigt.
Wie kommst du auf die Idee, es dürfe kein 'D' angezeigt werden? CSS-Implementationen müssen sich eine entsprechende andere Schriftart heraussuchen und mittels dieser Schriftart das 'D' anzeigen, nur wenn keine Schriftart ein 'D' beeinhaltet, sollte ein Ersatzzeichen angezeigt werden.
Was mache ich da falsch?
Dazu kann man zumindest mal was sagen.
Hier der SVG-Quelltext der eingebetteten Version (geht):
<?xml version="1.0" encoding="utf-8"?>
<svg width="150" height="50" viewBox="0 0 25 15">
Das ist schon mal kein SVG-Dokument, du hast den SVG-Namensraum nicht deklariert. Das kann man sich ggf. schenken, wenn man eine SVG-DTD einbindet, aber auch das hast du versäumt.
<style type="text/css">
<![CDATA[
@font-face{font-family:Verda;src:url("data:;base64,\
Ohne MIME-Type hat der Benutzeragent keine Ahnung, wie er die hier eingebundene Bytesequenz als Schriftart interpretieren soll.
Hier der SVG-Quelltext der CSS-Version (geht nicht):
<?xml version="1.0" encoding="utf-8"?>
<?xml:stylesheet type="text/css" href="abc.css"?>
Eine Verarbeitunganweisung mit dem Ziel "xml:stylesheet" gibt es nicht, wenn du so ein Stylesheet verknüpfen willst, musst du schon 'xml-stylesheet' verwenden. Ich schätze mal, das wird dein Fehler sein.