PatentDe  


Dokumentenidentifikation DE69736875T2 12.04.2007
EP-Veröffentlichungsnummer 0000807881
Titel Schema für die Kodierung von Zeichenschriftarten
Anmelder Sun Microsystems, Inc., Mountain View, Calif., US
Erfinder Gelfenbain, Alexander D., Mountain View, California 94043, US
Vertreter Fuchs, Mehler, Weiß & Fritzsche, 65201 Wiesbaden
DE-Aktenzeichen 69736875
Vertragsstaaten DE, FR, GB, NL, SE
Sprache des Dokument EN
EP-Anmeldetag 11.04.1997
EP-Aktenzeichen 973024821
EP-Offenlegungsdatum 19.11.1997
EP date of grant 02.11.2006
Veröffentlichungstag im Patentblatt 12.04.2007
IPC-Hauptklasse G06F 9/44(2006.01)A, F, I, 20051017, B, H, EP

Beschreibung[de]
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 10kommunizieren ü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:

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.


Anspruch[de]
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. 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. 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. Verfahren nach Anspruch 2, bei dem die Datenbank eine Regionsdatendefinitions-Datenbank umfasst. Verfahren nach Anspruch 1, bei dem die Schritte des Empfangens, Identifizierens und Übersetzens in einer Zeichen-Zeichenroutine realisiert sind. Verfahren nach Anspruch 1, bei dem die Zeichen-Zeichenroutine eine X-Bibliotheks-Zeichen-Zeichenroutine umfasst. 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. 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. 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. Produkt nach Anspruch 8, bei dem die Datenbank eine Regionsdatendefinitions-Datenbank umfasst. Produkt nach Anspruch 7, bei dem die Codes zum Empfangen, Identifizieren und Übersetzen in einer Zeichen-Zeichenroutine enthalten sind. Produkt nach Anspruch 7, bei dem die Zeichen-Zeichenroutine eine X-Bibliotheks-Zeichen-Zeichenroutine umfasst. 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. 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. 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.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com