How can I convert some string that has Arabic/Persian number to English ?
Like if I have :
str1 = \"١۲١۲\"
str2 = \"12١۲\"
str3 = \"some string that con
Since this is not encoding but translation and assuming your problem limits to only those numbers (0-9), you could write a simple 1-to-1 mapping from arabic to english, something like this:
arabic_to_english = {
'٩' => 9,
'٨' => 8,
'٧' => 7,
'٦' => 6,
'٥' => 5,
'٤' => 4,
'٣' => 3,
'٢' => 2,
'١' => 1,
'٠' => 0
}
And you just call the hash whenever needed:
arabic_to_english['٧']
Better if you extract this into a function of course.
For these one on one transformations the tr-method is very convenient and fast. It has a mutating counterpart in tr!
#encoding: utf-8
str1 = "١۲١۲"
str2 = "12١۲"
str3 = "some string that contains persian digits like ١۲"
[str1, str2, str3].each{|str| str.tr!('۰١۲۳۴۵۶۷۸۹','0123456789')}
p str1, str2, str3
#"1212"
#"1212"
#"some string that contains persian digits like 12"