DE69736875T2 - Schema für die Kodierung von Zeichenschriftarten - Google Patents

Schema für die Kodierung von Zeichenschriftarten Download PDF

Info

Publication number
DE69736875T2
DE69736875T2 DE69736875T DE69736875T DE69736875T2 DE 69736875 T2 DE69736875 T2 DE 69736875T2 DE 69736875 T DE69736875 T DE 69736875T DE 69736875 T DE69736875 T DE 69736875T DE 69736875 T2 DE69736875 T2 DE 69736875T2
Authority
DE
Germany
Prior art keywords
character
encoding scheme
code
character set
font
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69736875T
Other languages
English (en)
Other versions
DE69736875D1 (de
Inventor
Alexander D. Mountain View Gelfenbain
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE69736875D1 publication Critical patent/DE69736875D1/de
Application granted granted Critical
Publication of DE69736875T2 publication Critical patent/DE69736875T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/109Font handling; Temporal or kinetic typography

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf die Vorbereitung von Zeicheninformationen für die Anzeige in einem Computersystem und insbesondere auf die dynamische Auswahl eines Zeichensatzcodierungsschemas anhand der Zeichensatzverfügbarkeit.
  • Eine Computeranwendung, die Zeichen für die Anzeige erzeugt, stellt für eine Zeichen-Zeichenroutine Informationen bereit, die das anzuzeigende Zeichen und den Zeichensatz spezifizieren. Häufig wird der Zeichensatz im Voraus gewählt. Die Informationen, die das Zeichen spezifizieren, enthalten üblicherweise einen Zahlenindex, der das Zeichen in Übereinstimmung mit einem besonderen Zeichencodierungsschema identifiziert, das durch die momentanen Regionsdaten spezifiziert ist. Zum Beispiel könnte 'A' als 65 repräsentiert sein, könnte 'B' als 66 repräsentiert sein usw.
  • Der Zeichensatz wird typisch durch einen Zeichensatznamen spezifiziert. In einer X Window-Systemumgebung ist die Zeichensatzbenennung durch die als XLFD bekannte X Logical Font Description-Konvention definiert.
    "-adobe-symbol-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific";
    "-b&h-lucida-bold-r-normal-sans-0-0-0-0-m-0-iso8859-5"; und
    "-bitstream-charter-bold-i-normal--0-0-0-0-p-0-iso8859-1 ".
  • Die Suffixe "adobe-fontspecific", "iso8859-1" und "iso8859-5" spezifizieren ein Zeichensatzcodierungsschema und einen Zeichenvorrat einer besonderen Version des Zeichensatzes. Das Zeichensatzcodierungsschema ist die Abbildung zwischen dem Zeichen und dem Zahlenindex für diesen besonderen Zeichensatz. Wenn ein Zeichen angezeigt werden soll, muss die Zeichen-Zeichenroutine den Zahlenindex, der das Zeichen identifiziert, in den relevanten Zeichensatz-Glyphenindex umsetzen.
  • Die Spezifikation der momentanen Regionsdaten bestimmt das Zeichencodierungsschema, das dasselbe wie das Zeichensatzcodierungsschema ist. Es können lediglich dementsprechend codierte Zeichensätze verwendet werden. Es entsteht ein Problem, dass viele Zeichensätze bei dem von den momentanen Regionsdaten geforderten Zeichensatzcodierungsschema nicht verfügbar sein können.
  • Zum Beispiel wird das Betriebssystem SolarisTM betrachtet, das von Sun MicrosystemsTM verfügbar ist und mit einer Regionsdatenspezifikation der polnischen Sprache arbeitet. Diese Regionsdaten spezifizieren das Zeichensatzcodierungsschema ISO8859-2. Allerdings sind die meisten Zeichensätze der polnischen Sprache möglicherweise nicht in einer Version, die das Zeichensatzcodierungsschema ISO8859-2 enthält, verfügbar. Stattdessen sind die Zeichensätze für andere Plattformen entwickelt worden, die andere Codierungsschemata spezifizieren.
  • Ein ähnliches Problem entsteht für einen Anwender, der einen Microsoft-Windows-X11-Server-Emulator betreibt. Da das X Window-System ein einzelnes Zeichensatzcodierungsschema pro Regionsdaten erfordert, kann der Anwender nicht den vollen Bereich der unter MS Windows verfügbaren Zeichensätze nutzen, falls die Zeichensätze unter Verwendung verschiedener Codierungsschemata codiert sind.
  • MICROSOFT CORPORATION: "Microsoft Operating System/2 Programmer's Reference, Bd. 2", 1989, MICROSOFT PRESS, US XP002132501, S. 540, Abs. 2, – S. 541, Abs. 1.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • In Übereinstimmung mit der vorliegenden Erfindung kann die Übersetzung zwischen einem Zeichencodierungsschema, das von einer Anwendung verwendet wird, und einem Zeichensatzcodierungsschema, das von einer Zeichen-Zeichenroutine verwendet wird, dynamisch in der Weise gesteuert werden, dass mehrere mögliche Zeichensatzcodierungsschemata versorgen werden. Da für gegebene Regionsdaten mehr als ein einzelnes Zeichensatzcodierungsschema unterstützt wird, wird der Bereich verwendbarer Zeichensätze dementsprechend stark erweitert. Da irgendein Zeichensatzcodierungsschema unterstützt werden kann, wird der Prozess des Kaufs und der Installation neuer Zeichensätze erheblich vereinfacht.
  • Insbesondere besteht die Erfindung aus einem computerrealisierten Verfahren zum Unterstützen der Anzeige von Zeichensätzen mit mehreren Zeichencodierungsschemata, wobei das computerrealisierte Verfahren umfasst: Empfangen eines Zeichenindex, der ein anzuzeigendes Zeichen in Übereinstimmung mit einem Zeichencodierungsschema spezifiziert; Empfangen von Zeichensatzinformationen, die einen Zeichensatz spezifizieren, in dem das Zeichen angezeigt werden soll, wobei der Zeichensatz ein Zeichensatzcodierungsschema nutzt; falls das Zeichencodierungsschema nicht mit dem Zeichensatzcodierungsschema kompatibel ist, Identifizieren von Übersetzungsinformationen zum Übersetzen des Zeichencodierungsschemas in das von dem Zeichensatz genutzte Zeichensatzcodierungsschema; und Übersetzen des Zeichenindex von dem Zeichencodierungsschema in das Zeichensatzcodierungsschema in Übereinstimmung mit den identifizierten Übersetzungsinformationen.
  • Außerdem besteht die Erfindung aus einem Computerprogrammprodukt und aus einem Computersystem zum Ausführen des obigen Verfahrens.
  • In einer auf das X Window-System zugeschnittenen Ausführungsform werden die X-Bibliotheksfunktionsaufrufe in der Weise geändert, dass sie sowohl die Initialisierung von Zeichensätzen mit verschiedenen Zeichensatzcodierungsschemata als auch die dynamisch gesteuerte Übersetzung zwischen der Zeichencodierung und der Zeichensatzcodierung unterstützen. Die X-Regionsdatendefinitions-Datenbank wird erweitert, um eine Abbildung zwischen Zeichensatzcodierungsschemata und geforderten Übersetzungen bereitzustellen. Diese Erweiterung zu dem X Window-System erhält die Rückwärtskompatibilität und beeinflusst nicht den Betrieb vorhandener Anwendungen. Änderungen an externen APIs (Anwendungsprogrammschnittstelle) sind nicht erforderlich.
  • Ein weiteres Verständnis des Wesens und der Vorteile der vorliegenden Erfindungen kann anhand der verbleibenden Abschnitte der Beschreibung und der beigefügten Zeichnung realisiert werden.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • 1A zeigt einen Blockschaltplan eines Computersystems, das für die Realisierung der vorliegenden Erfindung geeignet ist.
  • 1B zeigt eine Funktionsdarstellung des Betriebs eines X Window-Systems.
  • 2 zeigt einen Blockschaltplan, der die Zeichensatzübersetzung in Übereinstimmung mit der vorliegenden Erfindung repräsentiert.
  • 3 zeigt eine Erweiterung zu einer X Window-Regionsdatendefinitions-Datenbank zur Unterstützung einer dynamischen Übersetzung zwischen Zeichensatzcodierung und Zeichencodierung.
  • 4 ist ein Ablaufplan, der Schritte einer dynamisch steuernden Übersetzung zwischen einem regionsdatenspezifischen Zeichencodierungsschema und einem Zeichensatzcodierungsschema beschreibt.
  • BESCHREIBUNG SPEZIFISCHER AUSFÜHRUNGSFORMEN
  • 1A zeigt einen Blockschaltplan eines Host-Computersystems 10, das zur Realisierung der vorliegenden Erfindung geeignet ist. Das Host-Computersystem 10 enthält einen Bus 12, der die Hauptteilsysteme wie etwa einen Zentralprozessor 14, einen Systemspeicher 16 (üblicherweise einen RAM), einen Eingabe/Ausgabe-Adapter (E/A-Adapter) 18, eine externe Vorrichtung wie etwa einen Anzeigebildschirm 24 über einen Anzeigeadapter 26, eine Tastatur 32 und eine Maus 34 über einen E/A-Adapter 18, einen SCSI-Host-Adapter 36 und ein Diskettenlaufwerk 38, das zur Aufnahme einer Diskette 40 betreibbar ist, miteinander verbindet. Der SCSI-Host-Adapter 36 kann als eine Speicherschnittstelle zu einem Festplattenlaufwerk 42 oder zu einem CD-ROM-Laufwerk 44, das so betreibbar ist, dass es eine CD-ROM 46 aufnimmt, wirken. Die Festplatte 44 kann ein Teil des Host-Computersystems 10 sein oder kann getrennt sein, wobei über andere Schnittstellensysteme auf sie zugegriffen wird. Eine Netzschnittstelle 48 kann über eine Telephonverbindung eine Direktverbindung zu einem fernen Server oder über einen POP (Übergabepunkt) eine Direktverbindung zum Internet bereitstellen. Auf ähnliche Weise können viele weitere Vorrichtungen oder Teilsysteme (nicht gezeigt) verbunden sein.
  • Außerdem ist es zur Verwirklichung der wie im Folgenden diskutierten vorliegenden Erfindung nicht notwendig, dass alle in 1A gezeigten Vorrichtungen vorhanden sind. Die Vorrichtungen und Teilsysteme können auf andere Weise als in 1A gezeigt miteinander verbunden sein. Der Betrieb eines Computersystems wie etwa des in 1A gezeigten ist im Gebiet leicht bekannt und wird in dieser Anmeldung nicht ausführlich diskutiert. Code zur Realisierung der vorliegenden Erfindung einschließlich Betriebssystemcode, Code zur Realisierung einer Fenster-Anwenderschnittstelle und/oder Anwendungscode können in computerlesbaren Speichermedien wie etwa im Systemspeicher 16, in der Festplatte 42, in der CD-ROM 46 oder in der Diskette 40 betriebsfähig angeordnet oder gespeichert sein.
  • Das Computersystem 10 kann von selbst ein X Window-System und eine oder mehrere Anwendungen realisieren. Alternativ können sich Elemente des X Window-Systems in einem weiteren Teil des Netzes befinden. 1B zeigt eine Funktionsdarstellung des Betriebs eines X Window-Systems. Auf der untersten Funktionsebene steuert eine Vorrichtungsbibliothek 50 einen Anzeigebildschirm 24 und eine Tastatur 32. Ein X-Server 52 führt durch Steuerung der Vorrichtungsbibliothek 50 niedere Eingabe- und Ausgabefunktionen wie etwa die Erzeugung von Mehrzeichensatztext und die Anzeige von Text innerhalb einer Hierarchie rechteckiger Fenster aus. Der X-Server 52 selbst wird in Übereinstimmung mit einem asynchronen Nachrichtenprotokoll, dem X-Protokoll, gesteuert. Um die Wechselwirkung zwischen Anwendungen und dem X-Server 52 zu vereinfachen, ist eine X-Bibliothek 54 höherer Eingabe- und Ausgabefunktionen vorgesehen. Die X-Bibliothek 54 vereinfacht die Aufgabe des Anwendungsprogrammierers, indem sie die Komplexität des asynchronen Nachrichtenprotokolls des X-Serwers verbirgt. Ein X-Toolkit 56 stellt noch höhere Funktionen bereit und nutzt die Routinen der X-Bibliothek 54. Eine Anwendung 58 kann entweder Routinen des X-Toolkit 56 oder der X-Bibliothek 54 nutzen.
  • 1B zeigt die Situation, in der die Funktionalität des X Window-Systems zwischen zwei über ein Netz verbundenen Computersystemen aufgeteilt ist. Das Computersystem 10 betreibt nur den X-Server 52 und die Vorrichtungsbibliothek 50. Die X-Bibliothek 54, das X-Toolkit 56 und die Anwendung 58 werden alle auf einem fernen Computer 60 betrieben, der einige oder alle der Komponenten des Computersystems 10 enthält. Der ferne Computer 60 und das Computersystem 10 kommunizieren über ihre jeweiligen Netzschnittstellen und über ein Netz 62, das X-Protokoll-Nachrichten zwischen dem X-Server 52 und der X-Bibliothek 54 überträgt. Zum Übertragen der Nachrichten kann ein Transportprotokoll wie etwa TCP verwendet werden. Alternativ kann das X Window-System auf einem Einzelcomputersystem realisiert sein. Allerdings werden weitere Netzprotokolle verwendet, um die X-Bibliothek 54 und den X-Server 52 zu verbinden. Eine weitere Beschreibung des X Window-Systems ist zu finden in Schiefler und Gettys, X Window System, 3-te Aufl., (Digital Press 1992), dessen Inhalt hier für alle Zwecke explizit durch Literaturhinweis eingefügt ist. Obgleich sich die Diskussion als ein Beispiel hauptsächlich auf die Zeichensatzcodierung in dem X Window-System konzentriert, ist die vorliegende Erfindung nicht auf irgendeine besondere Umgebung beschränkt.
  • Für typische Rechenumgebungen bestimmen die momentanen Regionsdaten den Zeichenvorrat und die Zeichencodierung, die Anwendungen nutzen müssen. Die Regionsdaten werden hier als die internationale Umgebung betrachtet, die zur Laufzeit das lokalisierte Verhalten definieren. Beispiele möglicher Regionsdaten enthalten US ENGLISH, POLISH usw.
  • Die vorliegende Erfindung bezieht sich allgemein auf Zeichenvorräte und auf die Zeichencodierung. Ein Zeichenvorrat wird hier als eine Menge von Glyphen betrachtet, die für die graphische Darstellung von Zeichen verwendet werden. Die Zeichencodierung ist eine Zuordnung zwischen diesen Glyphen und ganzen Zahlen, die die Glyphen repräsentieren. Wenn eine Anwendung anfordert, dass ein Zeichen angezeigt wird, spezifiziert sie das Zeichen unter Verwendung der ganzen Zahl, die durch die Zeichencodierung der Regionsdaten bestimmt ist.
  • Die Bibliotheks- oder Toolkit-Routine reagiert dadurch, dass sie das Zeichen in dem ausgewählten Zeichensatz anzeigt. Das Anzeigen von Zeichen wird hier in der Weise betrachtet, dass es das Drucken einschließt. Der Zeichensatz bestimmt das Aussehen des anzuzeigenden Zeichens. Die Aussehensinformationen sind ebenfalls in Übereinstimmung mit einer Zeichensatzcodierung für den besonderen Zeichensatz durch die Glyphe indiziert. Somit ist ein Teil des Prozesses des Zeichnens eines Zeichens das Übersetzen zwischen einem durch die momentanen Regionsdaten definierten Zeichencodierungsschema und einem Zeichensatzcodierungsschema des Zeichensatzes. Falls die Codierungsschemata die gleichen sind, ist die Übersetzung trivial. Im Stand der Technik bestimmen die Regionsdaten ein einzelnes Zeichensatzcodierungsschema. Dementsprechend ist die Übersetzung zwischen Zeichencodierung und Zeichensatzcodierung statisch definiert. In dem X Window-System findet diese statische Übersetzung innerhalb der X-Bibliotheksroutinen, die zum Anzeigen von Zeichen verwendet werden, z. B. XmbDrawString() oder XwcDrawString(), statt.
  • 2 zeigt einen Blockschaltplan, der die Übersetzung zwischen Zeichencodierung und Zeichensatzcodierung in dem X Window-System repräsentiert. Eine Anwendung 202, die in einem Host ausgeführt wird, erzeugt eine anzuzeigende Zeichenfolge. Die Anwendung 202 spezifiziert in Übereinstimmung mit den momentanen Regionsdaten eine Codierung E1 und einen Zeichenvorrat S. Der Host weist über einen XmbDrawString()-Bibliotheksaufruf an, dass die Zeichenfolge angezeigt wird. Eine X-Bibliotheksroutine 204, die die XmbDrawString()-Funktion realisiert, enthält ein Übersetzungsmodul 206, das zwischen dem Zeichencodierungsschema E1 und einem von den Regionsdaten benötigten Zeichensatzcodierungsschema E2 übersetzt. Diese Übersetzung ist festgesetzt und beschränkt den Bereich zulässiger Zeichensätze auf jene, die das Zeichensatzcodierungsschema E2 enthalten. Die anzuzeigende Zeichenfolge wird unter Nutzung des X-Protokolls codiert in der E2-Codierung an einen X11-Server 208 weitergeleitet. Der X11-Server 208 kann entweder lokal oder fern zu den anderen Software-Komponenten sein. Der X11-Server 208 enthält einen Zeichensatz 210, der die Aussehensinformationen enthält, die zur Anzeige der Zeichenfolge notwendig sind.
  • Die vorliegende Erfindung schafft eine Unterstützung mehrerer Zeichensatzcodierungsschemata und erweitert somit den Bereich der Zeichensätze, die in gegebenen Regionsdaten verwendbar sind. Eine dynamische Übersetzung ersetzt die statische Übersetzung des Standes der Technik. Die durch das Übersetzungsmodul 206 ausgeführte Übersetzung ändert sich in Übereinstimmung mit der Zeichensatzcodierung des gewünschten Zeichensatzes.
  • In einer durch das X Window-System gelenkten Ausführungsform wird die dynamische Übersetzung durch Änderung der Regionsdatendefinitions-Datenbank sowie des XmbDrawString()- und des XwcDrawString()-Funktionsaufrufs erreicht. In einem X Window-System enthält die Regionsdatendefinitions-Datenbank Lokalisierungsdaten, die zur Unterstützung von Anwendungen und Bibliotheksroutinen notwendig sind. In Übereinstimmung mit einem Aspekt der vorliegenden Erfindung wird diese Regionsdatendefinitions-Datenbank in der Weise erweitert, dass sie Informationen enthält, die zur Unterstützung einer dynamischen Übersetzung zwischen Zeichensatzcodierung und Zeichencodierung verwendet werden.
  • 3 zeigt eine Erweiterung zu einer X Window-Regionsdatendefinitions-Datenbank zur Unterstützung einer dynamischen Übersetzung zwischen Zeichensatzcodierung und Zeichencodierung in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung. Eine Datenstruktur 300 mit dem Titel XLC FONTSET enthält die Informationen zur Unterstützung der dynamischen Übersetzung. Die Datenstruktur 300 ist in zwei Teilstrukturen fs0 302 und fs1 304 aufgeteilt. Unter der Annahme eines 8-Bit-Zeichenindex gibt die Teilstruktur fs0 302 Übersetzungsinformationen für die Indizes 0 bis 127, während die Teilstruktur fs1 304 Übersetzungsinformationen für die Indizes 128 bis 255 gibt. Die Zeichenfolge, die rechts von dem Wort "charset" erscheint, gibt in Form einer Zeichencodierungsinformations-Zeichenfolge die Zeichencodierungsinformationen für die Regionsdaten. Die Folge der Zeichenfolgen, die rechts von dem Wort "font" erscheinen, gibt in Form von Zeichensatzcodierungsinformations-Zeichenfolgen Zeichensatzcodierungsinformationen für verschiedene Zeichensatzcodierungsschemata. Eine Standard-Zeichensatzcodierungsinformations-Zeichenfolge erscheint zuerst in der Liste.
  • Das folgende Pseudocode-Segment erläutert die Syntax der in der Datenstruktur 300 dargestellten Codierungsinformationen:
    Figure 00080001
  • Die Codierungsinformations-Zeichenfolge enthält eine EncodingName-Zeichenfolgenvariable, die einen Zeichenvorrat und eine Zeichenvorratscodierung identifiziert. Darüber hinaus enthält die Codierungsinformations-Zeichenfolge optional eine EncodingSide-Zeichenfolgenvariable. Die EncodingSide des Zeichens ist durch sein höchstwertiges Bit (MSB) bestimmt. Zeichen mit MSB 0 werden "GL"-Zeichen genannt. Zeichen mit MSB 1 werden "GR"-Zeichen genannt. EncodingName und EncodingSide sind in der Codierungsinformations-Zeichenfolge durch ":" begrenzt. Die Codierungsinformations-Zeichenfolge kann ferner ein CodeSetSymbol, d. h. einen Zeiger auf einen für die Übersetzung zwischen verschiedenen Zeichencodierungen verwendeten Codevorrat, enthalten. Dem CodeSetSymbol ist ein "=" vorangestellt.
  • 4 ist ein Ablaufplan, der Schritte der dynamischen Steuerung der Übersetzung zwischen einem Zeichencodierungsschema und einem Zeichensatzcodierungsschema in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung beschreibt. In Schritt 402 empfängt das Übersetzungsmodul 206 ein anzuzeigendes Zeichen und einen Zeichensatznamen, der ein gewünschtes Aussehen des Zeichens spezifiziert. Das Zeichen ist hinsichtlich eines durch die Regionsdaten bestimmten Zeichencodierungsschemas spezifiziert. In dem X Window-System ist der Zeichensatzname ein XLFD-konformer Zeichensatzname. Beispiele XLFD-konformer Zeichensatznamen enthalten:
    "-adobe-symbol-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific";
    "-b&h-lucida-bold-r-normal-sans-0-0-0-0-m-0-iso8859-5"; und
    "-bitstream-charter-bold-i-normal--0-0-0-0-p-0-iso8859-1 ".
  • Die Suffixe "adobe-fontspecific", "iso8859-1" und "iso8859-5" spezifizieren ein Zeichensatzcodierungsschema und einen Zeichenvorrat einer besonderen Version des Zeichensatzes. In Schritt 404 entnimmt das Übersetzungsmodul 206 das Suffix, um das Codierungsschema zu identifizieren. In Schritt 406 durchsucht das Übersetzungsmodul 206 die Datenstruktur 300 nach einer Zeichensatzcodierungsinformations-Zeichenfolge, die das Zeichensatznamensuffix als einen EncodingName enthält. Falls es mehr als eine solche Zeichenfolge gibt, wählt der Schritt 406 diejenige Zeichenfolge aus, die die gleiche EncodingSide wie das Zeichen enthält. Insbesondere werden diejenigen Abschnitte der Datenstruktur 300, die auf das Wort "font" folgen, durchsucht. Die Suche verläuft von oben nach unten und von links nach rechts. Wenn die Standard-Zeichensatzcodierungsinformations-Zeichenfolge für die Regionsdaten übereinstimmt, wird somit diese ausgewählt. In Schritt 408 prüft das Übersetzungsmodul 206, ob es in der ausgewählten Zeichenfolge ein Zeichen "=" gibt, das angibt, dass die Codierungsinformations-Zeichenfolge ferner ein CodeSetSymbol enthält, das auf einen Codevorrat für die Übersetzung zeigt.
  • Falls kein Codevorrat für die Übersetzung spezifiziert ist, ist keine Umsetzung notwendig, wobei das Übersetzungsmodul 206 das Zeichen in Schritt 410 zur Anzeige an den X11-Server weiterleitet. Falls ein Codevorrat spezifiziert ist, vergleicht das Übersetzungsmodul 206 in Schritt 412 das CodeSetSymbol, das durch die Zeichensatzcodierungsinformations-Zeichenfolge spezifiziert ist, mit dem CodeSetSymbol, das durch die Codierungsinformations-Zeichenfolge spezifiziert ist, die den Regionsdaten und der EncodingSide für das anzuzeigende Zeichen entspricht. Es wird daran erinnert, dass die Codierungsinformations-Zeichenfolge für die Regionsdaten in 3 nach dem Wort "charset" gegeben ist und getrennt für die Zeichen GL und GR angegeben ist. Falls die CodeSetSymbols die gleichen sind, ist wieder keine Umsetzung notwendig, wobei das Zeichen in Schritt 410 angezeigt wird.
  • Falls die CodeSetSymbols nicht die gleichen sind, führt das Übersetzungsmodul 206 eine Umsetzung aus. Dies kann in Schritt 414 auf einer Vielzahl von Wegen erfolgen. Ein Weg ist der Aufruf des gut bekannten iconv(3)-Umsetzungsmechanismus. Die Eingabe in den iconv(3)-Umsetzungsmechanismus ist der durch die Anwendung gelieferte Zeichenindex, der Name der Codierung, der durch das CodeSetSymbol der Zeichensatzcodierungsinformations-Zeichenfolge definiert ist, und der Name der Codierung, der durch das CodeSetSymbol der Regionsdatencodierungsinformations-Zeichenfolge definiert ist. Die CodeSetSymbols identifizieren logisch die für die Übersetzung verwendeten Codierungstabellen. Die Ausgabe des iconv(3)-Umsetzungsmechanismus ist der umgesetzte Zeichenindex, der in Schritt 414 angezeigt wird.
  • Es ist zu sehen, dass die Prozedur aus 4 zunächst die zum Umsetzen des Zeichenindex in das Zeichensatzcodierungsschema des Anzeigezeichensatzes benötigten Übersetzungsinformationen identifiziert und daraufhin die Übersetzung ausführt. Ein Paar Beispiele klärt diese Prozedur. Es wird angenommen, dass in dem Zeichensatz, der durch den XLFD-konformen Zeichensatznamen "b&h-lucida-bold-r-normal-sans-0-0-0-0-m-0-koi-8" spezifiziert ist, das kyrillische Zeichen "TE" (das das gleiche Aussehen wie das lateinische Zeichen "T" hat) angezeigt werden soll und dass die momentanen Regionsdaten RUSSIAN sind. Ferner wird angenommen, dass die Regionsdatendefinitions-Datenbank die in 3 gezeigte Beispielerweiterung enthält. In Schritt 402 empfängt das Übersetzungsmodul 206 den Zeichensatznamen und den Index für "TE", 194, wie er für die Regionsdaten RUSSIAN bestimmt ist. In Schritt 404 entnimmt das Übersetzungsmodul 206 aus dem Zeichensatznamen das Suffix "koi-8", das das Zeichensatzcodierungsschema und den Zeichenvorrat für den Anzeigezeichensatz bestimmt. In Schritt 406 durchsucht das Übersetzungsmodul 206 die Datenstruktur 300 nach einer Zeichensatzcodierungsinformations-Zeichenfolge, die den EncodingName "koi-8" enthält. Da der Zeichenindex 194 einem GR-Zeichen entspricht (das MSB 1 ist), ist die Suche des Schritts 406 auf Zeichensatzcodierungsinformations-Zeichenfolgen, die die EncodingSide "GR" spezifizieren, begrenzt. Die Suche identifiziert die Zeichensatzcodierungsinformations-Zeichenfolge "KOI-8:GR=koi8". In Schritt 408 stellt das Übersetzungsmodul 206 fest, dass es in der Zeichensatzcodierungsinformations-Zeichenfolge ein "=" gibt. Das CodeSetSymbol dieser Zeichensatzinformations-Zeichenfolge ist "koi8".
  • Die Regionsdaten-Zeichencodierungsinformations-Zeichenfolge für die EncodingSide "GR" ist "ISO8859-5:GR=isolatcyr". Somit ist das CodeSetSymbol für diese Regionsdaten und EncodingSide "isolatcyr". In Schritt 412 stellt das Übersetzungsmodul 206 fest, dass die CodeSetSymbols "isolatcyr" und "koi-8" tatsächlich verschieden sind und dass somit eine Übersetzung erforderlich ist. Somit ruft das Übersetzungsmodul 206 in Schritt 414 den iconv(3) Mechanismus auf, wobei es die CodeSetSymbols und den Zeichenindex 194 als Eingabe bereitstellt. Der iconv(3)-Mechanismus gibt den Index 244 zurück. Der Index 244 wird daraufhin zur Anzeige an den X11-Server weitergeleitet.
  • Eine eingehende Untersuchung von 3 zeigt, dass die Übersetzung in dem gezeigten Beispiel für die EncodingSide "GL" nie notwendig ist. Dies ist typisch wahr, da sich die Codierungsschemata für die ersten 128 Glyphen nicht voneinander unterscheiden. Es wird ein Regionsdatenbeispiel RUSSIAN betrachtet, bei dem das lateinische Zeichen "T" in dem Zeichensatz angezeigt werden soll, der durch den XLFD-konformen Zeichensatznamen "b&h-lucida-bold-r-normal-sans-0-0-0-0-m-0-koi-8" spezifiziert ist. In Schritt 404 wird das Suffix "koi-8" entnommen. In Schritt 406 wird die Zeichensatzcodierungsinformations-Zeichenfolge "KOI-8:GL" identifiziert. In Schritt 408 gibt es nach der EncodingSide kein Zeichen "=", so dass die Verarbeitung zu Schritt 410 übergeht, wo der Zeichencode 84 ohne Übersetzung angezeigt wird.
  • In der X Window-Umgebung können die Schritte aus 4 als Änderung an der XmbDrawString()- und an der XwcDrawString()-Routine in der X-Bibliothek realisiert werden. Vorzugsweise sollte die XCreateFontSet()-Routine der X-Bibliothek ebenfalls geändert werden. Die XCreateFontSet()-Routine wird üblicherweise zum Laden von Zeichensätzen aufgerufen. Realisierungen des Standes der Technik von XCreateFontSet() ermöglichten lediglich das Laden von Zeichensätzen, die das einzige Zeichensatzcodierungsschema haben, das von den Regionsdaten gefordert wird. Zur Versorgung der dynamischen Zeichensatzcodierungsübersetzung, die durch die vorliegende Erfindung geschaffen wird, wird XCreateFontSet() vorzugsweise so geändert, dass es das Laden von Zeichensätzen mit Zeichensatzcodierungsschemata zulässt, für die Übersetzungsinformationen verfügbar sind. Dies wird leicht bei Untersuchung der anhand von 3 beschriebenen Regionsdatendefinitions-Datenbankerweiterung bestimmt.
  • In der vorstehenden Beschreibung ist die Erfindung mit Bezug auf spezifische beispielhafte Ausführungsformen davon beschrieben worden. Allerdings können daran offensichtlich verschiedene Abwandlungen und Änderungen vorgenommen werden, ohne von dem umfassenderen Erfindungsgedanken und Umfang der Erfindung, wie sie in den beigefügten Ansprüchen dargelegt sind, abzuweichen.
  • Obgleich sich einige der Einzelheiten der oben beschriebenen Realisierung auf das X Window-System beziehen, ist z. B. das X Window-System lediglich repräsentativ für die Umgebungen, in denen die vorliegende Erfindung Anwendung findet.
  • Darüber hinaus sind die hier beschriebenen Ablaufpläne lediglich veranschaulichend für den umfassenden logischen Ablauf von Schritten, um ein Verfahren der vorliegenden Erfindung zu erreichen, wobei Schritte zu dem Ablaufplan hinzugefügt oder von ihm entnommen werden können, ohne von dem Umfang der Erfindung abzuweichen. Ferner kann die Reihenfolge der Ausführung der Schritte in den Ablaufplänen geändert werden, ohne von dem Umfang der Erfindung abzuweichen.
  • Zusätzliche Betrachtungen bei der Realisierung des durch den Ablaufplan beschriebenen Verfahrens können Änderungen in der Auswahl und Reihenfolge der Schritte vorschreiben.
  • Im Allgemeinen enthalten die Ablaufpläne in dieser Beschreibung einen oder mehrere Schritte, die durch Software-Routinen ausgeführt werden, die in einem Computersystem ausgeführt werden. Die Routinen können mit irgendwelchen Mitteln realisiert werden, wie sie im Gebiet bekannt sind. Zum Beispiel kann irgendeine Anzahl von Computerprogrammiersprachen wie etwa Java, "C", Pascal, FORTRAN, Assemblersprache usw. verwendet werden. Ferner können verschiedene Programmierzugänge wie etwa prozedurorientierte Techniken, objektorientierte Techniken oder Techniken künstlicher Intelligenz genutzt werden.
  • Viele solche Änderungen oder Abwandlungen sind für den Durchschnittsfachmann auf dem Gebiet leicht sichtbar. Dementsprechend sind die Beschreibung und die Zeichnung eher in veranschaulichendem als in beschränkendem Sinn zu verstehen, wobei die Erfindung nur durch die beigefügten Ansprüche und ihren vollen Umfang von Entsprechungen beschränkt ist.

Claims (15)

  1. Computerrealisiertes Verfahren zum Unterstützen der Anzeige von Zeichensätzen mit mehreren Zeichencodierungsschemata, wobei das computerrealisierte Verfahren umfasst: Empfangen eines Zeichenindex, der ein anzuzeigendes Zeichen in Übereinstimmung mit einem Zeichencodierungsschema spezifiziert; Empfangen von Zeichensatzinformationen, die einen Zeichensatz spezifizieren, in dem das Zeichen angezeigt werden soll, wobei der Zeichensatz ein Zeichensatzcodierungsschema nutzt, dadurch gekennzeichnet, dass: falls das Zeichencodierungsschema nicht mit dem Zeichensatzcodierungsschema kompatibel ist, Übersetzungsinformationen zum Übersetzen des Zeichencodierungsschemas in das von dem Zeichensatz genutzte Zeichensatzcodierungsschema identifiziert werden; und der Zeichenindex in Übereinstimmung mit den identifizierten Übersetzungsinformationen von dem Zeichencodierungsschema in das Zeichensatzcodierungsschema übersetzt wird.
  2. Verfahren nach Anspruch 1, bei dem der Schritt des Identifizierens umfasst: Durchsuchen einer Datenbank nach einem Ortsindikator, der unter Verwendung eines Namens des Zeichensatzcodierungsschemas als einen Schlüssel die Übersetzungsinformationen identifiziert.
  3. Verfahren nach Anspruch 2, bei dem die Zeichensatzinformationen einen Zeichensatznamen umfassen und bei dem der Schritt des Durchsuchens umfasst: Entnehmen des Namens des Zeichensatzcodierungsschemas aus einem Suffix des Zeichensatznamens.
  4. Verfahren nach Anspruch 2, bei dem die Datenbank eine Regionsdatendefinitions-Datenbank umfasst.
  5. Verfahren nach Anspruch 1, bei dem die Schritte des Empfangens, Identifizierens und Übersetzens in einer Zeichen-Zeichenroutine realisiert sind.
  6. Verfahren nach Anspruch 1, bei dem die Zeichen-Zeichenroutine eine X-Bibliotheks-Zeichen-Zeichenroutine umfasst.
  7. Computerprogrammprodukt zum Unterstützen der Anzeige von Zeichensätzen mit mehreren Zeichencodierungsschemata, wobei das Computerprogrammprodukt umfasst: Code zum Empfangen eines Zeichenindex, der ein anzuzeigendes Zeichen in Übereinstimmung mit einem Zeichencodierungsschema spezifiziert; Code zum Empfangen von Zeichensatzinformationen, die einen Zeichensatz spezifizieren, in dem das Zeichen angezeigt werden soll, wobei der Zeichensatz ein Zeichensatzcodierungsschema nutzt, gekennzeichnet durch: falls das Zeichencodierungsschema nicht mit dem Zeichensatzcodierungsschema kompatibel ist, Code zum Identifizieren von Übersetzungsinformationen zum Übersetzen des Zeichencodierungsschemas in das von dem Zeichensatz genutzte Zeichensatzcodierungsschema; Code zum Übersetzen des Zeichenindex von dem Zeichencodierungsschema in das Zeichensatzcodierungsschema in Übereinstimmung mit den identifizierten Übersetzungsinformationen; und ein computerlesbares Speichermedium, das die Codes speichert.
  8. Produkt nach Anspruch 7, bei dem der Code zum Identifizieren umfasst: Code zum Durchsuchen einer Datenbank nach einem Ortsindikator, der unter Verwendung eines Namens des Zeichensatzcodierungsschemas als einen Schlüssel die Übersetzungsinformationen identifiziert.
  9. Produkt nach Anspruch 8, bei dem die Zeichensatzinformationen einen Zeichensatznamen umfassen und bei dem der Code zum Durchsuchen umfasst: Code zum Entnehmen des Namens des Zeichensatzcodierungsschemas aus einem Suffix des Zeichensatznamens.
  10. Produkt nach Anspruch 8, bei dem die Datenbank eine Regionsdatendefinitions-Datenbank umfasst.
  11. Produkt nach Anspruch 7, bei dem die Codes zum Empfangen, Identifizieren und Übersetzen in einer Zeichen-Zeichenroutine enthalten sind.
  12. Produkt nach Anspruch 7, bei dem die Zeichen-Zeichenroutine eine X-Bibliotheks-Zeichen-Zeichenroutine umfasst.
  13. Computerprogrammprodukt zum Unterstützen der Anzeige von Zeichensätzen mit mehreren Zeichencodierungsschemata, wobei das Computerprogrammprodukt umfasst: Systemcode, der Code zum Anzeigen eines ausgewählten Zeichens umfasst, wobei der Anzeigecode Code gemäß einem der Ansprüche 7 bis 12 umfasst.
  14. Computersystem, das umfasst: eine Anzeigeschnittstelle; einen Prozessor; ein elektronisches Speichermedium; Code, der in dem elektronischen Speichermedium gespeichert ist und umfasst: Code zum Empfangen eines Zeichenindex, der ein anzuzeigendes Zeichen in Übereinstimmung mit einem Zeichencodierungsschema spezifiziert; Code zum Empfangen von Zeichensatzinformationen, die einen Zeichensatz spezifizieren, in dem das Zeichen angezeigt werden soll, wobei der Zeichensatz ein Zeichensatzcodierungsschema nutzt, gekennzeichnet durch: falls das Zeichencodierungsschema nicht mit dem Zeichensatzcodierungsschema kompatibel ist, Code zum Identifizieren von Übersetzungsinformationen zum Übersetzen des Zeichencodierungsschemas in das von dem Zeichensatz genutzte Zeichensatzcodierungsschema; und Code zum Übersetzen des Zeichenindex von dem Zeichencodierungsschema in das Zeichensatzcodierungsschema in Übereinstimmung mit den identifizierten Übersetzungsinformationen.
  15. Computersystem, das umfasst: ein Netz, das ein erstes Computersystem und ein zweites Computersystem miteinander verbindet; wobei das erste Computersystem umfasst: eine erste Netzschnittstelle, die mit dem Netz gekoppelt ist; ein erstes elektronisches Speichermedium; Code, der in dem ersten elektronischen Speichermedium gespeichert ist und umfasst: Code zum Empfangen eines Zeichenindex, der ein anzuzeigendes Zeichen in Übereinstimmung mit einem Zeichencodierungsschema spezifiziert; Code zum Empfangen von Zeichensatzinformationen, die einen Zeichensatz spezifizieren, in dem das Zeichen angezeigt werden soll, wobei der Zeichensatz ein Zeichensatzcodierungsschema nutzt, gekennzeichnet durch: falls das Zeichencodierungsschema nicht mit dem Zeichensatzcodierungsschema kompatibel ist, Code zum Identifizieren von Übersetzungsinformationen zum Übersetzen des Zeichencodierungsschemas in das von dem Zeichensatz genutzte Zeichensatzcodierungsschema; und Code zum Übersetzen des Zeichenindex von dem Zeichencodierungsschema in das Zeichensatzcodierungsschema in Übereinstimmung mit den identifizierten Übersetzungsinformationen; und Code zum Weiterleiten des übersetzten Zeichenindex an das erste Computersystem über die erste Netzschnittstelle und über das Netz; und wobei das zweite Computersystem umfasst: eine zweite Netzschnittstelle, die mit dem Netz gekoppelt ist; eine Anzeige; ein zweites elektronisches Speichermedium, das umfasst: Code, der in dem zweiten elektronischen Speichermedium gespeichert ist und umfasst: Code zum Empfangen des übersetzten Zeichenindex über die zweite Netzschnittstelle; und Code zum Anzeigen eines Zeichens in Übereinstimmung mit dem übersetzten Zeichenindex.
DE69736875T 1996-05-16 1997-04-11 Schema für die Kodierung von Zeichenschriftarten Expired - Lifetime DE69736875T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US648779 1984-09-10
US08/648,779 US5936636A (en) 1996-05-16 1996-05-16 Encoding schemes

Publications (2)

Publication Number Publication Date
DE69736875D1 DE69736875D1 (de) 2006-12-14
DE69736875T2 true DE69736875T2 (de) 2007-04-12

Family

ID=24602203

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69736875T Expired - Lifetime DE69736875T2 (de) 1996-05-16 1997-04-11 Schema für die Kodierung von Zeichenschriftarten

Country Status (4)

Country Link
US (1) US5936636A (de)
EP (1) EP0807881B1 (de)
JP (1) JPH10105149A (de)
DE (1) DE69736875T2 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3276897B2 (ja) * 1997-09-09 2002-04-22 三洋電機株式会社 キャラクタ表示制御回路
JP4150452B2 (ja) * 1998-11-12 2008-09-17 インターナショナル・ビジネス・マシーンズ・コーポレーション フォントの取得方法、登録方法および印刷方法
US6708310B1 (en) * 1999-08-10 2004-03-16 Sun Microsystems, Inc. Method and system for implementing user-defined codeset conversions in a computer system
GB0721648D0 (en) * 2007-11-05 2007-12-19 Roke Manor Research Internet data processing systems
US7663511B2 (en) * 2008-06-18 2010-02-16 Microsoft Corporation Dynamic character encoding
FR3003422B1 (fr) * 2013-03-15 2016-12-09 Send Only Oked Documents (Sood) Procede de tatouage de la partie textuelle d'un document

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69327680T2 (de) * 1992-03-30 2000-06-15 Canon Kk Bilderzeugungsverfahren und -anlage mit Pufferspeicher
US5528742A (en) * 1993-04-09 1996-06-18 Microsoft Corporation Method and system for processing documents with embedded fonts

Also Published As

Publication number Publication date
DE69736875D1 (de) 2006-12-14
JPH10105149A (ja) 1998-04-24
US5936636A (en) 1999-08-10
EP0807881A3 (de) 2000-05-03
EP0807881A2 (de) 1997-11-19
EP0807881B1 (de) 2006-11-02

Similar Documents

Publication Publication Date Title
DE69837772T2 (de) Browser für hierarchische Strukturen
DE19842688B4 (de) Verfahren zum Filtern von Daten, die von einem Datenanbieter stammen
DE69724356T2 (de) Verfahren und Apparat für die Darstellung von Information im Bezug auf jeden einzelnen von mehreren Hyperlinks
DE10135445B4 (de) Integriertes Verfahren für das Schaffen einer aktualisierbaren Netzabfrage
DE69724360T2 (de) Methode und System zur Erleichterung der Informationsanzeige an einen Rechnerbenutzer
DE10042601B4 (de) Sprache für XML-Server-Seiten
DE69838257T2 (de) Verfahren zum erweitern der hypertext markup sprache (html) zur unterstützung von unternehmungsanwendungsdatenbindung
DE60016772T2 (de) Verfahren und system für die publikation und revision von hierarchisch organisierten sätzen von statischen intranet- und internet-seiten
DE69819188T2 (de) Programmschnittstellenumsetzer für rechner mit mehreren umgebungen
DE60029732T2 (de) Phrasenübersetzungsverfahren und -system
DE19709968C2 (de) Verfahren und System zum Übersetzen eines Dokumentes
DE69133362T2 (de) Dokumentenverarbeitungs-verfahren und -gerät, entsprechende Program und Speichereinheit
DE10216271B4 (de) Kulturschnittstellenprotokoll-Anwendung, Verfahren zum Schaffen einer kulturspezifischen Benutzerschnittstelle und entsprechendes Computerprogrammprodukt
DE69628374T2 (de) Datenverwaltungssystem
DE19962192A1 (de) Verfahren und System zur Inhaltskonvertierung von elektronischen Daten für drahtlose Vorrichtungen
DE69909614T2 (de) Sich selbst manipulierende bäume verwendende rechenarchitektur
DE2818974A1 (de) Datenstation fuer datenverarbeitungsanlagen
DE10122231A1 (de) System, Methode, und Programmprodukt zum Speichern eines vorgelegten Formulars einer Web Page
DE60212304T2 (de) Verbesserungen zur Datenübertragung
DE112005002100T5 (de) System und Verfahren für multilinguale Texteinabe in einer tragbaren elektronischen Vorrichtung
DE60105632T2 (de) Verfahren und vorrichtung zur erzeugung zusammengesetzter schriftsätze
DE10101346A1 (de) Dateikennzeichung und automatische Umsetzung von Daten oder Dateien
DE69736875T2 (de) Schema für die Kodierung von Zeichenschriftarten
DE10193513B3 (de) Registrierung und Nutzung von Domänennamen in der eigenen Sprache
DE10120867B4 (de) Computersystem, Verfahren zum Betrieb eines Computersystems, sowie Maschinenlesbare Speichervorrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition