title: String.maketrans for English and Persian numbers
body: <p>I have a function like this:</p>
  <pre><code>persian_numbers = '۱۲۳۴۵۶۷۸۹۰'
  english_numbers = '1234567890'
  arabic_numbers  = '١٢٣٤٥٦٧٨٩٠'
  
  english_trans   = string.maketrans(english_numbers, persian_numbers)
  arabic_trans    = string.maketrans(arabic_numbers, persian_numbers)
  
  text.translate(english_trans)
  text.translate(arabic_trans)
  </code></pre>
  <p>I want it to translate all Arabic and English numbers to Persian. But Python says:</p>
  <pre><code>english_translate = string.maketrans(english_numbers, persian_numbers)
  ValueError: maketrans arguments must have same length
  </code></pre>
  <p>I tried to encode strings with Unicode <code>utf-8</code> but I always got some errors! Sometimes the problem is Arabic string instead! Do you know a better solution for this job?</p>
  <h3>EDIT:</h3>
  <p>It seems the problem is Unicode characters length in ASCII. An Arabic number like '۱' is two character -- that I find out with <code>ord()</code>. And the length problem starts from here :-(</p>