জাভাস্ক্রিপ্ট-অটোব () `এবং` বিটোয়া () `এর নাম কেন দেওয়া হয়েছিল?


266

জাভাস্ক্রিপ্টে, window.atob()পদ্ধতি decodes করুন Base64- STRING এবং window.btoa()পদ্ধতি এনকোড stringমধ্যে করুন Base64-

তাহলে কেন তাদের নামকরণ করা হয়নি base64Decode()এবং base64Encode()? atob()এবং btoa()অর্থবোধ করবেন না কারণ তারা মোটেও শব্দার্থক নয়।

আমি কারণ জানতে চাই।


153
এটি "এ টু বি" বুঝতে পেরে আমাকে কয়েক বছর সময় নিয়েছে। আমি সমস্ত সময় তাদের "এ-টব" এবং "বি-টোয়া" উচ্চারণ করতাম।
রায়ান

5
@ রায়ান আমি আনন্দিত যে এটি কেবল আমার ছিল না!
টিএমএইচ

1
আমাকে গণনা করুন I আমি একই ভেবেছিলাম :-)
সুপার কোডার

3
আমার নামকরণ বন্ধ করুন আপনার অহং।
এজেবি

1
খারাপ name, সাধারণত তারা ব্যবহার স্পষ্ট দীর্ঘ নামের মত getElementById,addEventListener
cieunteung

উত্তর:


164

atob()এবং btoa()পদ্ধতি লেখকের এবং করুন Base64- এনকোডিং থেকে বিষয়বস্তু রুপান্তর করার অনুমতি দেয়।

এই এপিআইগুলিতে, স্মৃতিভিত্তিক উদ্দেশ্যে, "বি" "বাইনারি" এবং "এএসসিআইআই" এর জন্য "এ" হিসাবে বিবেচিত হতে পারে। বাস্তবে, যদিও, প্রাথমিকভাবে historicalতিহাসিক কারণে, এই ফাংশনগুলির ইনপুট এবং আউটপুট উভয়ই ইউনিকোড স্ট্রিং।

থেকে: http://www.w3.org/TR/html/webappapis.html#atob


82
তবে এটি পিছিয়ে। atob()বাইনারিকে btoa()ASCII তে রূপান্তর করে এবং ASCII কে বাইনারি রূপান্তর করে।
2540625

52
ascii বেস 64 এবং atobএটি বাইনারি থেকে ascii হয়। তারা উভয় উত্তর বাদ দিয়ে একধরণের। সুতরাং এটি বিপরীত হয় না
AKnox

13
তাই Stringতো Binary?! এবং আমি সব সময় ভেবেছিলাম, বাইনারি 0 এবং 1 এর মতো কিছু ছিল This এটি এতটা বিবেচনা!
স্টিফান রেইন

6
@ স্টেফানরেইন আমি আপনার মতামতের সাথে একমত বাইনারি ডেটাwindow.btoa হিসাবে এর যুক্তিটি পড়ুন এবং এটিকে এনকোড করার জন্য এটিকে 6 টি বিটের অংশে বিভক্ত করুন; এটি সত্য, সুতরাং নামকরণ একটি দৃষ্টিকোণে অর্থবোধ করে। যাইহোক, এছাড়াও, শুধুমাত্র তার যুক্তি হিসাবে একটি স্ট্রিং লাগে ! :(window.btoa
Ван Ван

5
@ কে ._> "তবে এটি window.btoaকেবল যুক্তি হিসাবে একটি স্ট্রিং নেয় !" <এটি সত্য তবে এখানে স্ট্রিংটি কেবলমাত্র ডেটার উপস্থাপনা। আপনি যদি কোনও নোটপ্যাডে কোনও চিত্র খোলার চেষ্টা করেন তবে এটি স্ট্রিং হিসাবে প্রদর্শিত হবে তবে এটি এখনও বাইনারি ডেটা। btoaএর প্রধান সুবিধাটি হ'ল স্ট্রিংটি কোন ফর্ম্যাটটিতে রয়েছে সে বিষয়টি যত্নশীল নয়, এটি কেবল বাইনারি হিসাবে বিবেচনা করে। এটি কেবল ঘটনাগত যে বেশিরভাগ ক্ষেত্রে স্ট্রিংটি নিয়মিত স্ট্রিং হিসাবে ঘটে।
laggingreflex

106

ইতিমধ্যে প্রদত্ত উত্তরগুলি সংক্ষিপ্ত করতে:

  • atob জন্য দাঁড়িয়েছে ASCII to binary
    • উদাহরণ: atob("ZXhhbXBsZSELCg==") == "example!^K"
  • btoa জন্য দাঁড়িয়েছে binary to ASCII
    • উদাহরণ: btoa("\x01\x02\xfe\xff") == "AQL+/w=="

কেন একজন SCII এবং inary:

  • ASCII(the a) base64এনকোডিং এর ফলাফল । একটি নিরাপদ শুধুমাত্র পাঠ্য ASCII অক্ষর একটি উপসেট (*) যে সঠিকভাবে প্রতিনিধিত্ব করা যেতে পারে এবং পরিবাহিত গঠিত (যেমন ইমেল লাশ),
  • binary(দ্য b) 01 এর যে কোনও স্ট্রিম (জাভাস্ক্রিপ্টে এটি স্ট্রিং টাইপের সাথে প্রতিনিধিত্ব করতে হবে)।

(*) মধ্যে base64: এই সীমাবদ্ধ A-Z, a-z, 0-9, +, /এবং =(প্যাডিং, শুধুমাত্র শেষে) https://en.wikipedia.org/wiki/Base64

পিএস আমাকে অবশ্যই স্বীকার করতে হবে যে আমি নিজেই প্রথমে নামকরণের কারণে বিভ্রান্ত হয়েছিলাম এবং ভেবেছিলাম নামগুলি অদলবদল হয়েছে। আমি যে চিন্তা bজন্য স্ট্যান্ড " এনকোডেড স্ট্রিং ase64" এবং aজন্য " একটি NY STRING" ডি।


7
আমি মনে করি আপনি মূলত সকলের বক্তব্য প্রমাণ করেছেন: বেস 64 এটি ASCII এর একটি উপসেট , সুতরাং আপনি যখন যুক্তি দিতে পারেন যে আউটপুটটি btoaএখনও প্রযুক্তিগতভাবে ASCII রয়েছে তবে নামের কোনও যৌক্তিকতা নেইatob যা কেবল বেসড 64 কে ইনপুট হিসাবে গ্রহণ করে।
ডিভাইস 1

1
এটি বেস a64 আউটপুট হিসাবে 'a' (ascii) এবং 0 এবং 1 এর স্ট্রিম হিসাবে 'b' (বাইনারি) হিসাবে মনে করতে এবং মনে রাখতে সহায়তা করে।
টেলসপিন_কিট

86

আমি জানি এটি পুরানো, তবে এটি সম্প্রতি টুইটারে প্রকাশিত হয়েছিল এবং আমি ভেবেছিলাম এটি অনুমোদিত হিসাবে এটি এটিকে ভাগ করব।

আমাকে:

আপনি কি এই নামগুলি বেছে নিয়েছেন?

তাকে:

পুরানো ইউনিক্সের নাম, ম্যান পেজ আরএন খুঁজে পাওয়া শক্ত কিন্তু https://www.unix.com/man-page/minix/1/btoa/… দেখুন । নামগুলি ইউনিক্স থেকে নেটস্কেপ কোডবেসে চালিত হয়েছিল। আমি 1995 সালে একটি বড় তাড়াহুড়া করে তাদের জেএসে প্রতিবিম্বিত করেছি (মে মাসে দশ দিনের পরে তবে শীঘ্রই)।

মিনিক্স লিঙ্কটি ভাঙার ক্ষেত্রে ম্যান পেজ সামগ্রীটি এখানে:

BTOA(1)                                           BTOA(1)

NAME
       btoa - binary to ascii conversion

SYNOPSIS
       btoa [-adhor] [infile] [outfile]

OPTIONS
       -a     Decode, rather than encode, the file

       -d     Extracts repair file from diagnosis file

       -h     Help menu is displayed giving the options

       -o     The obsolete algorithm is used for backward compatibility

       -r     Repair a damaged file

EXAMPLES
       btoa <a.out >a.btoa # Convert a.out to ASCII

       btoa -a <a.btoa >a.out
               # Reverse the above

DESCRIPTION
       Btoa  is  a  filter that converts a binary file to ascii for transmission over a telephone
       line.  If two file names are provided, the first in used for input and the second for out-
       put.   If  only one is provided, it is used as the input file.  The program is a function-
       ally similar alternative to uue/uud, but the encoding is completely different.  Since both
       of  these are widely used, both have been provided with MINIX.  The file is expanded about
       25 percent in the process.

SEE ALSO
       uue(1), uud(1).

সূত্র: জাভাস্ক্রিপ্টের নির্মাতা ব্রেন্ডন আইচ। https://twitter.com/BrendanEich/status/998618208725684224


5
ঠিক আছে, এটি ওপি-র প্রশ্নের আসল উত্তর।
ইভান ফিলোহো

6

আমি এই মুহুর্তে কোনও উত্স সনাক্ত করতে পারি না, তবে এটি সাধারণ জ্ঞান যে এই ক্ষেত্রে, খ 'বাইনারি' এবং 'এসকিআইআই'র জন্য একটি।

সুতরাং, ফাংশনগুলি আসলে নামকরণ করা হয়েছে:

জন্য বাইনারি হওয়া ASCII atob()জন্য হওয়া ASCII, এবং বাইনারি btoa()

নোট করুন এটি ব্রাউজার বাস্তবায়ন, এবং উত্তরাধিকার / পিছনে-সামঞ্জস্যের উদ্দেশ্যে রেখে দেওয়া হয়েছিল। উদাহরণস্বরূপ নোড.জেজে এগুলির অস্তিত্ব নেই।


Buffer.from("Hello World").toString('base64')Buffer.from("SGVsbG8gV29ybGQ=", 'base64').toString('ascii')
নোডে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.