سلام
چه طور میتونم یه عدد فارسی رو به معادلش در انگلیسی تبدیل کنم؟
چون تا وقتی انگلیسی نشه استرینگ تبدیل به اینتیجر نمیشه
ممنون
سلام
چه طور میتونم یه عدد فارسی رو به معادلش در انگلیسی تبدیل کنم؟
چون تا وقتی انگلیسی نشه استرینگ تبدیل به اینتیجر نمیشه
ممنون
سلام. روش های مختلفی برای این کار وجود داره. یک روش خیلی ساده اینه:
text = "abc ۰۱۲۳۴۵۶۷۸۹ q59"
new_text = ""
for c in text:
chr_code = ord(c)
new_text += chr(chr_code-1728) if (chr_code>= 1776 and chr_code<=1785) else c
print(new_text)
به لینک زیر بخش Deviations from the Arabic script مراجعه کنید کد یونکید هر عدد رو ذکر کرده
https://en.wikipedia.org/wiki/Persian_alphabet
بعنوان مثال عدد فارسی صفر کدش برابر با U+06F0 هست. این یک عدد در مبنای 16 هست که اگه تبدیلش کنیم به مبنای 10 میشه 1776. به همین حالت عدد 9 فارسی میشه 1785. کدی که من نوشتم گفتم ابتدا چک کنه که کارکتر در این بازه باشه (یعنی یک عدد فارسی داشته باشیم) بعد چنان چه عدد فارسی بود مقدار 1728 رو ازش کم کنه و تبدیلش کنه به کارکتر. در توضیح اینکه عدد 1728 از کجا اومده خدمت تون عرض شود که کد کارکتر عدد 0 انگلیسی برابر میشه با 48 و بعبارتی اگه کد هر عدد انگلیسی رو با 1728 جمع کنیم به معادل فارسی اون می رسیم