2012-01-28 76 views
1

我將大量文本從另一個系統複製到我的PC。當我在PC中查看文本時,看起來很奇怪。所以我複製了另一臺電腦的所有字體,並將它們安裝在我的電腦中。現在文本看起來不錯,但實際上它看起來不是Unicode。例如,如果我複製文本並粘貼到另一個支持UTF-8的編輯器(如Notepad ++)中,則只會顯示英文字符(「bgah;」),如下所示。 enter image description here將非英文字符轉換爲Unicode(UTF-8)

如何將整個文本轉換爲unicode文本,如下所示。所以我可以複製文本並粘貼到其他地方。

பெயர்

使用http://www.google.com/transliterate/indic/Tamil

我需要這種轉換做手工,得到上述的文字,所以我可以將它們複製到數據庫表中。

+0

如果您可以創建每個字符代碼的表以及與其對應的哪個Unicode點,則有人可以幫助您創建執行轉換的程序。在此之前,這是SO的主題。 – tripleee 2012-01-28 17:40:51

+0

看起來問題在於文本處於非標準字符編碼狀態,並且與UTF-8無關。添加標籤「字符編碼」,刪除標籤「utf-8」。 – 2012-01-30 02:35:47

回答

2

「bgah」看起來像一個基於Baamini系統,這是預先的Unicode。它在90年代在加拿大(以及普通的散居泰米爾羣島)很受歡迎。

正如其他人提到的,它看起來像一個自定義視覺編碼,它在保持ASCII編碼的同時模仿外部腳本的性能。

Google「Baamini to unicode convertor」。科倫坡大學似乎已經提出了一個:http://www.ucsc.cmb.ac.lk/ltrl/services/feconverter/?maps=t_b-u.xml

讓我知道這是否工作。如果不是,我可以問問周圍併爲你獲得一些東西。

+0

嘿,這是超級酷..工作完美..有問題,只有「我」,我手動糾正。 – emaillenin 2013-01-26 07:12:33

+0

我很高興這很有幫助! 是的,這可能是不明確的。當大多數人寫出來(即在紙上)時,它看起來像是一個'aravu'(ா,但沒有那個圓圈),在它上面有'pulli'(圓點,也沒有圓圈)。這看起來好像你在發佈的文章中寫了'peyar'(பெயர்)。 – 2013-01-27 02:46:40

+0

對於sinhala unicode是否有相同的工具? – 2016-04-02 14:08:39

0

您可以首先檢查編碼是否爲TSCII,因爲這聽起來很可能。它是一個8位編碼,您複製的字體可能基於該編碼。檢查SourceForge上的TSCII to UTF-8 converter是否合適。該項目被稱爲「任何泰米爾語編碼到Unicode」,但they say that only TSCII is supported for now

+0

我試過了 - 複製了「bgah;」並把它放在IN.txt中,並通過命令行運行「ascii2unicode.exe」。但程序意外關閉。我嘗試使用Windows XP兼容模式。它仍然崩潰。 – emaillenin 2012-01-28 14:43:47

+0

TSCII參考文件表明編碼與ASCII兼容;坦米爾字符都有第8位設置。因此,似乎字體使用另一種編碼。 – tripleee 2012-01-28 17:29:53

4

你發現的字體讓你陷入困境。實際的單元格文本是「bgah;」,因爲您找到了可以與8位非Unicode字符配合使用的字體,所以它被渲染爲「。因此,閱讀它或將其粘貼到Notepad ++將產生「bgah」;因爲那是真實的文字。它只能通過強制顯示字符串的程序使用相同的字體再次正確渲染。

溝的字體和輸入Unicode所以它看起來是這樣的:

enter image description here

+0

是的,你是對的。但是,如何將我的文本從舊字體轉換爲unicode? – emaillenin 2012-01-28 14:45:29

+0

您必須將舊文本*編碼*轉換爲文本。這看起來不像TSCII。 http://www.tamil.net/tscii/charset17.gif代碼頁57004是泰米爾語,但也不是一個匹配。不知道,請問誰生成的文字。 – 2012-01-28 14:59:19

+0

該文本是由一個10歲的VB應用程序生成的,我們現在不支持該軟件。 – emaillenin 2012-01-28 15:11:02

5

'JA-01' 是一個自定義的視覺編碼'的字體。

也就是說,字符序列確實是「bgah」並且它看上去像泰米爾語,因爲拉丁字符bg的字體形狀看起來像பெ

這總是要避免,因爲通過將內容存儲爲「bgah」您失去了將其作爲真正的泰米爾人進行搜索和處理的能力,但這種方法在Unicode統一前的日子裏很常見,特別是對於沒有成熟編碼標準的不太普及的腳本。這個應用程序可能早於TSCII的廣泛使用。

由於它是一種不被任何其他字體共享的自定義編碼,因此很難找到一種工具將此編碼中的內容轉換爲正確的Unicode字符。它看起來沒有任何標準的字符排序,因此您必須查看字體(例如,在charmap.exe中)並記下每個字符,找到Unicode中匹配的字符並在它們之間映射。

例如,以下是一個簡單的Python腳本的文件來替換字符:

mapping= { 
    u'a': u'\u0BAF', # Tamil letter Ya 
    u'b': u'\u0BAA', # Tamil letter Pa 
    u'g': u'\u0BC6', # Tamil vowel sign E (combining) 
    u'h': u'\u0BB0', # Tamil letter Ra 
    u';': u'\u0BCD', # Tamil sign virama (combining) 
    # fill in the rest of the mapping information here! 
} 

with open('ja01data.txt', 'rb') as fp: 
    data= fp.read().decode('utf-8') 
for char in mapping: 
    data= data.replace(char, mapping[char]) 
with open('utf8data.txt', 'wb') as fp: 
    fp.write(data.encode('utf-8'))