- Sử dụng các module
fileinput
để lặp qua đầu vào tiêu chuẩn hoặc một danh sách các tập tin,
- giải mã các dòng bạn đọc từ UTF-8 để unicode đối tượng
- sau đó bản đồ bất kỳ ký tự unicode mà bạn mong muốn với phương pháp
translate
translit.py
sẽ trông như thế này:
#!/usr/bin/env python2.6
# -*- coding: utf-8 -*-
import fileinput
table = {
0xe4: u'ae',
ord(u'ö'): u'oe',
ord(u'ü'): u'ue',
ord(u'ß'): None,
}
for line in fileinput.input():
s = line.decode('utf8')
print s.translate(table),
Và bạn có thể sử dụng nó như thế này:
$ cat utf8.txt
sömé täßt
sömé täßt
sömé täßt
$ ./translit.py utf8.txt
soemé taet
soemé taet
soemé taet
Trong trường hợp bạn đang sử dụng python 3 chuỗi là bằng unicode mặc định và bạn không' cần phải mã hóa nó nếu nó chứa các ký tự không phải ASCII hoặc thậm chí là một ký tự không phải Latinh. Vì vậy, các giải pháp sẽ xem xét như sau:
line = 'Verhältnismäßigkeit, Möglichkeit'
table = {
ord('ä'): 'ae',
ord('ö'): 'oe',
ord('ü'): 'ue',
ord('ß'): 'ss',
}
line.translate(table)
>>> 'Verhaeltnismaessigkeit, Moeglichkeit'
tìm kiếm SO cho "phiên âm" để tìm câu hỏi liên quan. – hop
http://stackoverflow.com/questions/816285/where-is-pythons-best-ascii-for-this-unicode-database/816319#816319 – hop
Tập lệnh Perl nhất định sẽ thực sự chỉ thay thế lần xuất hiện đầu tiên trên mỗi dòng, nhưng đó chắc chắn là một tai nạn. – tripleee