Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Converting Eastern Arabic numbers to Western Arabic numbers [closed]

Tags:

python

What would be the best way to accomplish that?

http://en.wikipedia.org/wiki/Eastern_Arabic_numerals

like image 203
azio Avatar asked Dec 12 '22 18:12

azio


2 Answers

use unicode.translate with ordinal mapping:

S.translate(table) -> unicode

Return a copy of the string S, where all characters have been mapped
through the given translation table, which must be a mapping of
Unicode ordinals to Unicode ordinals, Unicode strings or None.
Unmapped characters are left untouched. Characters mapped to None
are deleted.

Example:

table = {1776: 48,  # 0 
         1777: 49,  # 1
         1778: 50,  # 2
         1779: 51,  # 3
         1780: 52,  # 4
         1781: 53,  # 5
         1782: 54,  # 6
         1783: 55,  # 7
         1784: 56,  # 8
         1785: 57}  # 9


u'some ۰۱۲ of ۳۴۵ it ۶۷ is ۸۹ normal text'.translate(table)

output:

u'some 012 of 345 it 67 is 89 normal text'
like image 170
root Avatar answered Apr 27 '23 16:04

root


Like this:

eastern_to_western = {"٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9"}
int(''.join([eastern_to_western[c] for c in '٧٧٧٣']))

7773
like image 28
Fredrick Brennan Avatar answered Apr 27 '23 15:04

Fredrick Brennan