2010-03-10 45 views
0

假设所有需要的字体在客户机上都可用。如何将字体A中写入的unicode字符串转换为字体B?

  1. 也许,你都可以看到以下 “计算器”字写在印度语 语言脚本:“स्टैकओवरफ्लो”。 A 使用Web开发人员快速查找 工具告诉用 这个词使用'Arial,Liberation Sans ..'字体 家族。这是否意味着Arial字体 支持印度语言脚本?它真的是Arial字体吗?

  2. 我想显示所有这样的字符串 安装在 机器上的另一个Unicode字体。我如何使用 javascript来转换它?我的理解是, ,因为在这些unicode字体之间没有直接的1-1映射 ,所以可能需要一些 类型的转换。

  3. 如何将一个unicode字体映射到 普通101键US键盘?因此,如果 正确的字体被选中,那么 键入'stackoverflow'将得到 转换成'图表'。看起来 使用一些tools,这是 可能。这是正常的 方法吗?有没有其他的选择?

EDIT1Thisthis资源似乎是有帮助的。

EDIT2假设一个特定的unicode字符串可以写入字体A中,作为numpad上ALT + 0234,ALT + 0244,ALT + 0221的组合。在字体B中,相同的字符串将通过不同的组合(如ALT + 0212,ALT + 0223,ALT + 0242)写入。那么我怎么能做这个转换?

EDIT3请参阅此image了解更多信息。请参见括号中的最后2个字符串。这些是我想要转换的字符串。这两个字符串以两种不同的字体呈现相同的印度语字符串。

+4

我认为你需要区分字体(Arial和Times Roman集合和Courier是字体)与代码集(8859-1 vs Unicode vs ...)之间的区别。你似乎在要求代码集转换 - 而不是字体转换。 –

+1

呃。你的意思是一个*翻译*软件?因为无论这个标记文本的含义如何,它不是1:1字符的“stackoverflow”音译:字符数不匹配。你想完成什么? –

+0

@jonathan:请你解释一下。我试着在上面的第二个编辑中更好地解释我的问题。 – understack

回答

3
  1. 如果主字体没有当前字符的字形,大多数现代版面引擎都可以替换其他字体。这可能是你看到的。

  2. 这两个字体中的文字完全相同;唯一的问题是,并非所有字体都可能具有所有字符的字形,所以它们将无法正确显示文本。

  3. 您需要使用输入法编辑器才能使用罗马键盘输入非罗马文字;详细信息请参阅您的操作系

+0

@Ignacio:关于答案1,如果字形缺失,那么布局引擎会搜索所有已安装字体中缺失的字形并使用找到的第一个字体?逻辑是什么?我怎么能知道使用的确切字体,如果它被引擎取代? – understack

+0

取决于发动机。在GNOME下,您可以使用字符映射来确定什么字体配置决定使用。不知道关于Uniscribe(Windows)或核心文本(OS X)。 –

+0

@Ignacio:请看我上面的edit3。我认为我的问题现在应该更清楚。 – understack

相关问题