Ich arbeite für ein Unternehmen, das begonnen hat, eingebettete Computersysteme in unsere von uns hergestellten Produkte zu integrieren. Wir haben eine ziemlich große Auswahl an Produkten, die auf der ganzen Welt vertrieben werden. Darüber hinaus haben wir einige integrierte Karten entwickelt, die je nach Firmware, die auf das System geflasht wurde, mehreren Zwecken dienen können. Auf diese Weise müssen wir unsere Computerhardware für unsere verschiedenen Produkte nicht neu entwerfen. Wir müssen lediglich die Firmware-Schicht neu schreiben, um die spezifischen Anforderungen des Produkts zu erfüllen.
Aufgrund dieser Hardwarebeschränkungen ist das Ändern unserer Hardware ein Akt des Kongresses, das Schreiben neuer Software ist jedoch viel einfacher.
Eines unserer Produkte hat eine neue Anforderung, die wir zuvor nicht implementieren mussten, nämlich die Notwendigkeit für vom Benutzer eingegebenen Text.
Derzeit können wir internationalen Text in Ressourcen speichern und nur die erforderlichen Schriftzeichen werden zu Bitmap-Bildern kompiliert. Dies bedeutet, dass wir in der Lage waren, hochideografische Sprachen wie chinesischen und japanischen Text auf kleinstem Raum zu speichern, da wir nur einen sehr kleinen Prozentsatz des gesamten Sprachensatzes verwenden.
Da für dieses neue Produkt die Eingabe von Text durch unsere Benutzer erforderlich ist, müssen wir einen umfangreichen Zeichensatz implementieren. Als vorwiegend PC-Entwickler bin ich mit ASCII, Unicode, UTF-8 usw. vertraut. Die Implementierung eines vollständigen Zeichensatzes für eine dieser Sprachen ist jedoch nicht möglich, da nur eine begrenzte Anzahl von FRAMs auf dem Board vorhanden ist um die Schriftdaten zu speichern.
Mein Management hofft, dass es einen minimalen Zeichensatz gibt, der für stark ideografische Sprachen verwendet werden kann. Ich glaube, es gibt ein phonetisches Alphabet für Japanisch (das Hiragana?). Gibt es ähnliche phonetische Alphabete auch für Chinesisch, Koreanisch, Vietnamesisch usw. Und wenn ja, könnten Sprecher dieser Sprachen mit einem so engen Zeichensatz kommunizieren? Ich bin mir ziemlich sicher, dass die Antwort auf diese Frage "absolut nein" lautet, aber es ist eine Frage, die es wert ist, gestellt zu werden.
Das Management hat die "weiche" Anforderung aufgestellt, dass wir nur einen begrenzten Zeichensatz von ca. 8.000 Zeichen haben können, der alle gängigen Sprachen abdeckt. Wenn dies nicht möglich ist, müssen wir nach einer alternativen Methode suchen, um unsere Anforderungen basierend auf unseren begrenzten Hardwareressourcen zu erfüllen.
Ich bin sicher, dass dieses Problem zuvor gelöst werden musste. Hat jemand Erfahrung mit solchen Einschränkungen, wenn er ein umfangreiches System zur Schriftart- und Zeichenkodierung benötigt? Wenn ja, welche Nuggets von Weisheit können Sie anbieten?
Antworten:
Dies ist eine ausgezeichnete Frage.
Um Ihre Antwort in einer Sprache zu beantworten;
Vietnamesisch
Vietnamesisch verwendet keine ideografischen Zeichen mehr, aber seine lateinische Menge ist ziemlich breit: Sehen Sie sich das Beispiel an, um zu sehen, wie viele diakritische Zeichen es verwendet:
Der Grund dafür ist, dass jede Vietnames-Silbe eine von sechs Tonmarkierungen hat, die sich auf die Aussprache auswirken - zusätzlich zu einem Nicht-Standard-Konsonanten-Glyphen und sechs Nicht-Standard-Vokalen.
Unicode setzt Tonzeichen über Vokalen. Wenn Sie in der Lage sind, Glyphen zu komponieren, benötigen Sie nur 13 zusätzliche Glyphen für Vietnamesen. Wenn nicht, benötigen Sie 1 zusätzlichen Konsonanten + 12 Vokale * 6 Töne + 6 neue Vokale ohne Ton = 79 zusätzliche Glyphen , in Absenkung und Großbuchstaben.
Koreanisch
Koreanisch ist eine schlechte Nachricht. Koreanisch wird durch ein Alphabet namens Hangul geschrieben , das zwar technisch gesehen ein Alphabet mit nur 68 Buchstaben ist (genannt Jamo), aber tatsächlich in silbengroßen Blöcken geschrieben ist, die aus Jamo konstruiert sind.
Ein Beispiel, wie koreanischer Text aussieht:
Unicode verfügt über 11.172 vollständige Blockzeichen. Wenn Sie jedoch bereit sind, die Logik zum Erstellen der endgültigen „Blöcke“ selbst zu codieren, können Sie den Zeichensatz erheblich einsparen.
Grundsätzlich können alle Silben in zwei Kategorien unterteilt werden - Konsonant + Vokal und Konsonant + Vokal + Finale, wobei Finale ein Vokal, ein Konsonant oder ein Komposit sein kann. CV-Silben werden mit C links und V rechts konstruiert. CVF-Konsonanten werden mit dem CV-Block oben (von links nach rechts) und dem Endblock unten zusammengesetzt.
Grundsätzlich benötigen Sie also:
für insgesamt 108 Symbole . (Ich bin mir nicht ganz sicher, ob es auf Koreanisch keine „Ligaturen“ gibt, so dass ein konstruierter Block manchmal anders aussieht als die Kombination von Komponenten, aber das ist das Beste, was wir vorerst bekommen werden.)
japanisch
Wie Sie richtig bemerkt haben, hat Japanisch ein phonetisches Alphabet - aber eigentlich nicht nur eines, sondern zwei! Hiragana und Katakana sind Silben mit jeweils 48 gleichen Silben, die jedoch in unterschiedlichen Zusammenhängen verwendet werden (Katakana wird für Fremdwörter verwendet, Hiragana für Grammatik).
Leider ist es (für unsere Zwecke) fast unmöglich, Japanisch vollständig mit diesen beiden Buchstaben zu schreiben - chinesische Schriftzeichen oder Kanji , wie sie in diesem Zusammenhang genannt werden, sind für jeden japanischen Text unerlässlich.
Obligatorisches Schreibbeispiel:
Neben Kanji benötigen Sie 103 Glyphen , um zwei phonetische Alphabete + 7 gebräuchliche Kanji abzubilden, die es auf Chinesisch nicht gibt.
CKJ-Interpunktion
Dies ist kein Experte, aber sowohl Chinesen als auch Japaner verwenden klassische ostasiatische Interpunktion. Unicode verfügt über 64 Symbole für CJK-Interpunktion und -Symbole.
Chinesisch
Wir haben also noch 7631 Zeichen in unserem „Budget“. Wird es ausreichen, chinesische Schriftzeichen abzudecken?
Mit über 100.000 existierenden Zeichen ist es im Wesentlichen unmöglich, den chinesischen Zeichensatz vollständig abzudecken, die aktiv verwendete Teilmenge ist viel kleiner. 2000-3000 Zeichen sollen für die allgemeine Alphabetisierung ausreichen (HSK, TOEFL-ähnlicher Test für Mandarin-Chinesisch, erfordert Kenntnisse von 2800 Zeichen für die höchste Stufe, HSK Advanced), 4000-5000 Zeichen reichen für eine gebildete Person.
Wenn man bedenkt, dass es vereinfachte und traditionelle Zeichen gibt (erstere werden in der VR China verwendet, letztere - in Taiwan), die sich für viele Zeichen unterscheiden, würden die restlichen 7600 Symbole ausreichen , um die meisten Anwendungsfälle abzudecken beide Zeichensätze.
Fühlen Sie sich frei zu fragen, wenn Sie Fragen haben!
quelle