رفع خطای Failed to execute ‘btoa’ on Window در جاوااسکریپت
اگر در حال کار با base64 در جاوااسکریپت هستید، ممکن است به جایی برخورد کنید که قصد داشته از کاراکترهای فارسی در base64 استفاده کنید. در اینصورت احتمالا با خطای زیر:
Failed to execute ‘btoa’ on ‘Window’: The string to be encoded contains characters outside of the Latin1 range.
روبرو خواهید شد. در این نوشته به روش حل این خطا میپردازیم.
رفع خطای Failed to execute ‘btoa’ on Window در جاوااسکریپت
برای رفع کد بالا از روش زیر استفاده کنید:
- به جای استفاده از:
btoa(str)
- از کد زیر استفاده کنید:
btoa(unescape(encodeURIComponent(str)))
- و به جای:
window.atob(str)
- از کد زیر استفاده کنید:
decodeURIComponent(escape(window.atob(str)))
اگر مشکل شما با پیشنهاد بالا حل نشد در بخش نظرات همین نوشته آن را برای ما بنویسید.
برای امتیاز به این نوشته کلیک کنید!
[کل: 2 میانگین: 5]



















این روش روی پروژههای بزرگ هم امن و سریع هست؟
با سلام، این روش برای پروژههای بزرگ هم کارآمد است، اما برای اطمینان از امنیت و سرعت، بهتر است در مقیاس پروژه خودتان تست و ارزیابی کنید.
اگر متن UTF-8 باشه، هنوز خطا میده؟
بله، اگر متن UTF-8 باشد هم ممکن است این خطا رخ دهد. راه حل ارائه شده در پست برای همین منظور است.
میشه بدون encodeURIComponent هم مشکل رو حل کرد؟
بله، روشهای دیگری هم برای حل این مشکل وجود دارد، اما استفاده از encodeURIComponent و decodeURIComponent معمولاً سادهترین و سازگارترین راه حل است.
با همه مرورگرها سازگاره؟
بله، این روش با اکثر مرورگرهای مدرن سازگار است، اما برای اطمینان بیشتر، بهتر است در مرورگرهای مختلف تست کنید. اگر باز هم مشکلی داشتید
این روش روی متن طولانی هم جواب میده؟
بله، این روش برای متنهای طولانی هم کار میکند