Как можете да кодирате низ в Base64 в JavaScript?
Имам скрипт на PHP, който може да кодира изображение PNG в низ Base64.
Бих искал да направя същото нещо с помощта на JavaScript. Знам как да отварям файлове, но не съм сигурен как да извърша кодирането. Не съм свикнал да работя с двоични данни.
744
3
Можете да използвате
btoa()
иatob()
, за да конвертирате към и от кодиране base64.Изглежда в коментарите има известно объркване по отношение на това какво приемат/връщат тези функции, така че...
btoa()
приема "низ", в който всеки символ представлява 8-битов байт - ако подадете низ, съдържащ символи, които не могат да бъдат представени с 8 бита, вероятно ще се счупи. Това не е проблем, *ако всъщност третирате низа като масив от байтове, но ако се опитвате да направите нещо друго, ще трябва първо да го кодирате.atob()
връща "низ", в който всеки символ представлява 8-битов байт - т.е. стойността му ще бъде между0
и0xff
. Това не означава, че това е ASCII - вероятно, ако изобщо използвате тази функция, очаквате да работите с двоични данни, а не с текст.Вижте също:
[Оттук] [1]:
Кодът на Sunny е страхотен, но се чупи в IE7 заради препратките към "this". Поправено чрез заместване на тези препратки с "Base64":