繁体   English   中英

在C#中显示unicode文本

[英]Displaying a unicode text in C#

我的应用程序在TextBox和LinkLabel上显示英文,日文和中文字符。 目前,我检查是否有unicode字符并将字体更改为MS Mincho,否则将其保留在Tahoma中。

现在MS Mincho正确显示日语,但对于中文我必须使用Sim Sun. 我该如何区分这两者?

无论字体/语言如何,如何确保正确显示unicode文本?

如果每个文本都有unicode字符,则使用支持unicode的字体应该适合您(例如Arial Unicode MS)。

无论字体和语言如何,都无法确保正确显示unicode文本,因为没有单一字体可以呈现所有可能的unicode字符 您必须选择一种可以显示您需要呈现的unicode字符的字体。

C#中的所有字符串都是Unicode。 英语(拉丁语),日语和中文代码点位于不同的代码点范围内。

我想你有两个选择:

  • 查找包含所有三种语言中所有代码点的字符的Unicode字体。

  • 尝试猜测语言并选择包含该语言中代码点字符的字体。

对于选项2,您可以查看Unicode图表以找出不同代码点的位置,并扩展算法以猜测语言。

平假名的例子:

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

bool IsHiragana(string s)
{
    return s.Count(IsHiragana) > 0;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM