2010-08-26 53 views
5

Tôi đã tìm thấy các địa điểm trên web chẳng hạn như http://www.chinesetopinyin.com/ chuyển đổi các ký tự tiếng Trung thành bính âm (tiếng La-tinh). Có ai biết làm thế nào để làm điều này, hoặc có một cơ sở dữ liệu có thể được phân tích cú pháp?Chuyển đổi tiếng Trung thành bính âm

EDIT: Tôi đang sử dụng C# nhưng thực sự sẽ thích cơ sở dữ liệu/tệp căn hộ.

Trả lời

6

có thể sử dụng giải pháp Python:

Tôi nghĩ rằng cơ sở dữ liệu Unicode chứa romanizations bính âm cho các ký tự Trung Quốc, nhưng chúng không được bao gồm trong unicodedata dữ liệu mô-đun.

Tuy nhiên, bạn có thể sử dụng một số thư viện bên ngoài, giống như cjklib, ví dụ:

# coding: UTF-8 
import cjklib 
from cjklib.characterlookup import CharacterLookup 

c = u'好' 

cjk = CharacterLookup('T') 
readings = cjk.getReadingForCharacter(c, 'Pinyin') 
for r in readings: 
    print r 

đầu ra:

hāo 
hǎo 
hào 

CẬP NHẬT

cjklib đi kèm với một cjknife tiện ích độc lập, mà trợ giúp micht. một số cách sử dụng được mô tả here

+1

.. và nếu bạn muốn đại diện ascii chỉ hoặc số, bạn có thể tìm cách thực hiện nó trong tài liệu hoặc bạn có thể chọn bính âm đầu tiên và xóa dấu trọng âm: http://stackoverflow.com/questions/517923/what-is-the-best- way-to-remove-accen ts-in-a-python-unicode-string – mykhal

+0

Unicode không có bảng để ánh xạ Ký tự thành Bính âm, nó được gọi là Unihan và có rất nhiều dữ liệu. :) – cburgmer

+0

'nâng cao ValueError, 'địa phương không xác định:% s'% localename ValueError: ngôn ngữ không xác định: UTF-8' bất kỳ ý tưởng nào? – jokoon

Các vấn đề liên quan