2010-03-10 51 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

相關問題