اگر دادÙâÛ Ø¯ÙØ¯ÙÛÛ Ù Ø§ Ø¯Ø±ÙØ§Ùع ÛÚ© رشت٠باشد ÚÙØ Ø¨Ø±Ø§Û ÙÙ ÙÙÙØ ٠ا ÛÚ© ÙØ§Û٠با دادÙâÛ Ù ØªÙÛ Ø¯Ø±ÛØ§Ùت Ù ÛâÚ©ÙÛÙ .
Ø´Û Ø±Ù Ø²Ú¯Ø´Ø§Û Ù ØªÙ(TextDecoder) درÙÙÛØ ب٠ÛÚ© ÙÙØ± اجاز٠٠ÛâØ¯ÙØ¯ ک٠با ØªÙØ¬Ù Ø¨Ù Ø¨Ø§ÙØ± Ù Ø±Ù Ø²Ú¯Ø°Ø§Ø±Û Ø¯Ø§Ø¯Ù Ø´Ø¯ÙØ Ù ÙØ¯Ø§Ø± را در ÛÚ© رشتÙâÛ ÙØ§ÙØ¹Û Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت Ø¨Ø®ÙØ§Ùد.
ابتدا ٠ا ÙÛØ§Ø² ب٠ساخت آ٠دارÛÙ :
let decoder = new TextDecoder([label], [options]);
- Ø´Û
labelâ Ø±Ù Ø²Ú¯Ø°Ø§Ø±ÛØ Ø¨Ù Ø·ÙØ± Ù¾ÛØ´ ÙØ±Ø¶utf-8است ا٠اbig5Ùwindows-1251Ù Ø¨Ø±Ø®Û Ø¯Ûگر از ر٠زگذاراÛâÙØ§ ÙÛØ² Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ù ÛâØ´ÙÙØ¯. - Ø´Û
optionsâ Ø´Û Ø§Ø®ØªÛØ§Ø±Û:- Ø´Û
fatalâ Ø§Ø² Ø¬ÙØ³ boolean. اگر Ù ÙØ¯Ø§Ø± Ø¢ÙtrueØ¨Ø§Ø´Ø¯Ø ÛÚ© Ø§Ø³ØªØ«ÙØ§(exception) Ø¨Ø±Ø§Û Ú©Ø§Ø±Ø§Ú©ØªØ± ØºÛØ±ÙØ§Ø¨Ù ÙØ¨ÙÙ (ØºÛØ±Ùاب٠ر٠زگشاÛÛ) پرتاب Ù ÛâØ´ÙØ¯. در ØºÛØ± اÛÙ ØµÙØ±Øª (Ú©Ù ØØ§Ùت Ù¾ÛØ´âÙØ±Ø¶ Ù ÛâØ¨Ø§Ø´Ø¯)Ø Ø¢ÙâÙØ§ را با کاراکتر\uFFFDجاÛÚ¯Ø°Ø§Ø±Û Ù ÛâÚ©ÙØ¯. - Ø´Û
ignoreBOMâ Ø§Ø² Ø¬ÙØ³ boolean. اگر Ù ÙØ¯Ø§Ø± Ø¢ÙtrueØ¨Ø§Ø´Ø¯Ø BOM(ÛÚ© Ø¹ÙØ§Ù ت unicode Ø§Ø®ØªÛØ§Ø±Û ٠رتب Ø´Ø¯Ù Ø¨Ø±ØØ³Ø¨ Ø¨Ø§ÛØª) Ú©Ù Ø¨Ù ÙØ¯Ø±Øª ب٠آ٠ÙÛØ§Ø² Ù¾ÛØ¯Ø§ Ù ÛâØ´ÙØ¯ را ÙØ§Ø¯Ûد٠٠ÛâÚ¯ÛØ±Ø¯.
- Ø´Û
â¦Ù سپس ر٠زگشاÛÛ Ú©ÙÛØ¯:
let str = decoder.decode([input], [options]);
- Ø´Û
inputâ Ø¨Ø±Ø§Û ر٠زگشاÛÛ (BufferSource)Ù ÙØ¨Ø¹ - Ø´Û
optionsâ Ø´Û Ø§Ø®ØªÛØ§Ø±Û:- Ø´Û
streamâ Ø¨Ø±Ø§Û ر٠زگشاÛÛ streamÙØ§Ø ÙÙÚ¯Ø§Ù Û Ú©Ù Ø±Ù Ø²Ú¯Ø´Ø§ Ø¨Ø±Ø§Û Ù ÙØ§Ø¯Ûر ÙØ§Ø¨Ù ØªÙØ¬Ù دادÙâÙØ§ ٠کررا ÙØ±Ø§Ø®ÙاÙÛ Ù ÛâØ´ÙØ¯Ø درست است. در اÛÙ Ù ÙØ±Ø¯Ø ٠٠ک٠است ÛÚ© کاراکتر ÚÙØ¯ Ø¨Ø§ÛØªÛØ Ø¨Ø±Ø®Û Ù ÙØ§Ùع بÛ٠بخشâÙØ§ÛÛ Ø§Ø² دادÙâÙØ§ ØªÙØ³ÛÙ Ø´ÙØ¯. اÛÙ Ø§Ù Ú©Ø§Ù Ø¨Ù Ø±Ù Ø²Ú¯Ø´Ø§Û Ù ØªÙ Ù ÛâÚ¯ÙÛØ¯ Ú©Ù Ú©Ø§Ø±Ø§Ú©ØªØ±ÙØ§Û âÙØ§ØªÙ Ø§Ù â Ø±Ø§ ب٠خاطر داشت٠باشد Ù ÙÙÚ¯Ø§Ù Û Ú©Ù Ø¨Ø®Ø´ Ø¨Ø¹Ø¯Û Ø¯Ø§Ø¯Ù ÙØ§Ø±Ø¯ Ø´Ø¯Ø Ø¢ÙâÙØ§ را ر٠زگشاÛÛ Ú©ÙØ¯.
- Ø´Û
Ø¨Ø±Ø§Û ÙÙ ÙÙÙ:
let uint8Array = new Uint8Array([72, 101, 108, 108, 111]);
alert( new TextDecoder().decode(uint8Array) ); // Hello
let uint8Array = new Uint8Array([228, 189, 160, 229, 165, 189]);
alert( new TextDecoder().decode(uint8Array) ); // ä½ å¥½
٠ا Ù ÛâØªÙØ§ÙÛÙ Ø¨Ø®Ø´Û Ø§Ø² ÛÚ© Ø¨Ø§ÙØ± را با ساخت ÛÚ© view Ø²ÛØ±Ø¢Ø±Ø§ÛÙ Ø¨Ø±Ø§Û Ø¢ÙØ ر٠زگشاÛÛ Ú©ÙÛÙ :
let uint8Array = new Uint8Array([0, 72, 101, 108, 108, 111, 0]);
// رشت٠در ÙØ³Ø· Ù
ÛâØ¨Ø§Ø´Ø¯
// Ø¬Ø¯ÛØ¯ رÙÛ Ø¢ÙØ بدÙÙ Ú©Ù¾Û Ú©Ø±Ø¯Ù ÚÛØ²Û view ساخت ÛÚ©
let binaryString = uint8Array.subarray(1, -1);
alert( new TextDecoder().decode(binaryString) ); // Hello
ر٠زگذار ٠تÙ
Ø´Û Ø±Ù Ø²Ú¯Ø°Ø§Ø± ٠تÙ(TextEncoder) برعکس کار را Ø§ÙØ¬Ø§Ù Ù ÛâØ¯ÙØ¯ â ÛÚ© رشت٠را Ø¨Ù Ø¨Ø§ÛØªâÙØ§ تبدÛÙ Ù ÛâÚ©ÙØ¯.
سÛÙØªÚ©Ø³ Ø¢Ù Ø¨Ù ØµÙØ±Øª Ø²ÛØ± است:
let encoder = new TextEncoder();
تÙÙØ§ ر٠زگذارÛâØ§Û Ú©Ù Ø±Ù Ø²Ú¯Ø°Ø§Ø± ٠ت٠از Ø¢Ù Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ù ÛâÚ©ÙØ¯ âutf-8â Ù ÛâØ¨Ø§Ø´Ø¯.
ر٠زگذار ٠ت٠د٠٠تد دارد:
- Ù
تد
encode(str)â Ø§Ø² ÛÚ© Ø±Ø´ØªÙØUint8Arrayرا بر٠ÛÚ¯Ø±Ø¯Ø§ÙØ¯. - Ù
تد
encodeInto(str, destination)â Ø±Ø´ØªÙâÛstrرا درÙÙdestinationÚ©Ù Ø¨Ø§ÛØ¯Uint8ArrayØ¨Ø§Ø´Ø¯Ø Ø±Ù Ø²Ú¯Ø°Ø§Ø±Û Ù ÛâÚ©ÙØ¯.
let encoder = new TextEncoder();
let uint8Array = encoder.encode("Hello");
alert(uint8Array); // 72,101,108,108,111
ÙØ¸Ø±Ø§Øª
<code>Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯Ø Ø¨Ø±Ø§Û ÚÙØ¯Û٠خط â کد را درÙ٠تگ<pre>ÙØ±Ø§Ø± دÙÛØ¯Ø Ø¨Ø±Ø§Û Ø¨ÛØ´ از د٠خط کد â Ø§Ø² ÛÚ© جعبÙÙ Ø´ÙÛ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯. (plnkrØ jsbinØ codepenâ¦)