“Ja-01”是一种具有自定义“视觉编码”的字体。
也就是说,字符序列真的是“bgah”;它对你来说只是泰米尔语,因为拉丁字符的字体形状bg
看起来像பெ
。
这总是要避免的,因为通过将内容存储为“bgah”;您失去了将其作为真正的泰米尔语进行搜索和处理的能力,但这种方法在 Unicode 之前的时代很常见,特别是对于没有成熟编码标准的不太广泛的脚本。此应用程序可能早于 TSCI 的广泛使用。
因为它是一种不被任何其他字体共享的自定义编码,所以您不太可能找到一种工具来将此编码中的内容转换为正确的 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'))