【问题标题】:Is it not possible to Paste Chinese Characters on Windows Form Text BoxWindows 窗体文本框不能粘贴汉字吗
【发布时间】:2011-08-04 12:43:23
【问题描述】:

我正在开发一个 WinForm 应用程序,我有一个文本框,我在其中粘贴来自 Google 翻译的文本。我在几种 Sematic 和 Indo Languages 中得到了积极的结果,但汉字显示为 Boxes。

有什么办法可以克服吗?

【问题讨论】:

  • 这是因为您的默认 Windows 字体 - 可能是 Microsft Sans Serif - 没有这些字符。您可以将文本框使用的字体更改为其他字体,例如Arial Unicode(如果您有 Office)或其中一种特定于中文的字体,但我不知道如何按字符或基于内容智能地执行此操作。假设你的应用是 Unicode,那么字符仍然会被正确粘贴,顺便说一下,即使它们没有正确显示。
  • 是的,我正在使用 Microsfot Sans Serif。你推荐使用 Arial Unicode 吗?它会解决很多问题吗?
  • 我不知道——我想如果可以的话,单独使用默认字体可能会更好(而且中国用户已经在使用支持他们的字符的字体——mingliu?)。 Arial Unicode 是随 Office 而不是 Windows 一起提供的,因此只有安装了 Office 的人才能拥有它,因此它可能不是最佳选择,具体取决于您要部署的对象。

标签: c# winforms unicode textbox cjk


【解决方案1】:

您应该使用支持 CJK 编码的适当 Unicode 字体。更好的是“Arial Unicode MS”,但它可能在 没有安装 MS Office 的早于 Vista 的操作系统。在这种情况下,您可以使用其他字体,例如“NSimSun”。

string arialUnicodeFontFace = "Arial Unicode MS"; 字体 unicodeFont = new Font(arialUnicodeFontFace, fontSize); if (unicodeFont.Name != arialUnicodeFontFace) unicodeFont = new Font("NSimSun", fontSize); yourTextBox.Font = unicodeFont;

您还可以查看不同 Windows 版本中所有支持的 CJK 字体的列表: http://en.wikipedia.org/wiki/List_of_CJK_fonts

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多