更改文本错误的字体

时间:2011-05-08 08:41:59

标签: windows text fonts

我在软件应用程序中有一个文本框控件,里面有一些文本。该软件使用的是自定义字体,该字体在其他任何地方都不存在,并且仅适用于此程序。我没有它的来源或访问它的创建者。现在我想在记事本或MS字中复制该文本,但是当我这样做时,除非我将文字处理器的字体更改为软件正在使用的字体(文本写入的字体),否则文本不再可读。所以我希望文本在任何地方都可读,而不是依赖于特定的字体。那有可能吗?

我是一名c#程序员。以下是不可读文本的示例:

ý¶† ±øõœ ­ý¶† –ý¾‡¨ ÿ†°†¬ ­ñð‡ì úÞ±¶ Ä쇤 ½±”
à¥ì ±øõœ þ·ñœ­Œ Ý稆­Œ ô±º±” (.ì)
[þü‡íý‘†õø]
ý¶†
[þ¶­ñùì ïõéÎ]
±øõœ  ­ý¶†  ‡º±”
[þíýº]
ý¶†
[úð‡ýì‡Î —‡¤çȾ†] ÿ¬.¹†.ë† °­©ì ÿû¬‡ì ²† þÎõð.ÿ¬.¹†.ë†"

有趣的是,它几乎在所有字体中都显示出来,除了文本最初编写的字体。顺便说一下,文本是阿拉伯语,我测试文本的所有字体都支持阿拉伯语字符。

现在,如果我 输入 一些包含该字体的英文和阿拉伯文的文字,那么将记事本的字体更改为其他字体,它看起来还可以正常工作!因此,仅当文本 粘贴 进入文字处理程序时才会出现此问题。

编辑:我想我发现了问题!自定义字体是一种光栅字体(位图字体),其扩展名为.fon,在下一个帖子中,有人想将位图字体转换为ttf,因为他在打印文档时遇到问题。我想要复制和粘贴,所以也许我必须转换字体?

讨论: how to convert a bitmap font .fon into a truetype font ttf

非常感谢任何形式的帮助。 谢谢。

2 个答案:

答案 0 :(得分:1)

  

非常感谢任何形式的帮助。

如果我在superuser.com上看到过这个问题,我的答案就是:

您可以将文本字体从字体A更改为Arial。

例如在Microsoft Word中

  1. 打开替换对话框(编辑>>替换或Ctrl + H)
  2. 确保在“查找内容”或“替换为方框”
  3. 中未指定任何文本
  4. 单击“查找内容”框,然后单击“格式”(如果没有看到“格式”按钮,请单击“更多”以展开搜索选项)
  5. 从弹出列表中选择字体
  6. 在“查找字体”对话框中,选择要替换的文本格式选项
  7. 点击确定
  8. 点击替换为框
  9. 点击格式
  10. 从弹出列表中选择字体
  11. 在“替换字体”对话框中,选择要应用的新文本格式选项
  12. 点击确定
  13. 点击全部替换
  14. 点击确定
  15. 点击关闭
  16. (来自http://wordprocessing.about.com/cs/quicktips/qt/fontreplace.htm

    顺便说一下:如果文档使用样式,实际上更容易更改字体。出于这个原因,我尝试始终使用样式,而不是直接将字体应用于文本。

    如果您不是指Word文档,请修改您的问题,准确说出用于创建文本的软件 - 或者文本存储的文件格式。

    自从你在stackoverflow.com上询问后,我慢慢推断出你可能正在用一些未指定的编程语言编写程序。我建议你编辑你的问题并指定你正在使用的编程语言,并提供一些示例代码来说明问题。

    例如,在Java中,您可能会执行类似

    的操作
      JLabel label = new JLabel("hello world");
      label.setFont(new Font("Arial", Font.PLAIN, 12));
    

答案 1 :(得分:0)

听起来好像原始程序的作者发明了自己的字符编码并提供了一种字体。也许开发工具仅限于ANSI文本,开发人员提出了这种极端的解决方案。

通过在自定义中编写一些英文文本来测试假设 字体,看看阿拉伯语 字符出现。

如果是这样,那么你将不得不弄清楚编码是什么,并逐个字符地翻译字符串。