Frage

Meine App zeigt englische, japanische und chinesische Zeichen in einem Textfeld und einem LinkLabel an. Derzeit überprüfe ich, ob es Unicode -Zeichen gibt, und ändere die Schriftart in MS Mincho oder lasse sie in Tahoma.

Jetzt zeigt Frau Mincho Japanisch richtig, aber für Chinesen muss ich Sim Sun verwenden. Wie kann ich zwischen den beiden unterscheiden?

Wie kann ich sicherstellen, dass der Unicode -Text unabhängig von der Schrift/Sprache ordnungsgemäß angezeigt wird?

War es hilfreich?

Lösung

Wenn Sie Unicode -Zeichen für jeden Text haben, sollte die Verwendung einer Schriftart, die Unicode unterstützt, diese für Sie ordnungsgemäß abdecken (z. B. Arial Unicode MS).

Andere Tipps

Sie können nicht sicherstellen, dass der Unicode -Text unabhängig von der Schrift und der Sprache ordnungsgemäß angezeigt wird, weil Es gibt keine einzige Schriftart, die alle möglichen Unicode -Zeichen rendern kann. Sie müssen eine Schriftart auswählen, mit der die Unicode -Zeichen angezeigt werden können, die Sie zum Rendern benötigen.

Alle Saiten in C# sind Unicode. Die englischen (lateinischen), japanischen und chinesischen Codepunkte befinden sich gerade in verschiedenen Codepunktbereichen.

Ich denke, Sie haben zwei Optionen:

  • Finden Sie eine Unicode -Schriftart, die Zeichen für alle Codepunkte in allen drei Sprachen enthält.

  • Versuchen Sie, die Sprache zu erraten und eine Schriftart zu wählen, die die Zeichen für die Codepunkte in dieser Sprache enthält.

Für Option 2 können Sie sich die ansehen Unicode -Diagramme Um herauszufinden, wo sich die verschiedenen Codepunkte befinden, und Ihren Algorithmus erweitern, um die Sprache zu erraten.

Beispiel für Hiragana:

bool IsHiragana(char ch)
{
    return (ch >= '\u3040') && (ch <= '\u309f');
}

bool IsHiragana(string s)
{
    return s.Count(IsHiragana) > 0;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top