TextDecoder
åºçº¿
广æ³å¯ç¨
èª 2020å¹´1æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
TextDecoder æ¥å£è¡¨ç¤ºä¸ä¸ªææ¬è§£ç å¨ï¼ä¸ä¸ªè§£ç å¨åªæ¯æä¸ç§ç¹å®ææ¬ç¼ç ï¼ä¾å¦ UTF-8ãISO-8859-2ãKOI8-RãGBKï¼ççãè§£ç å¨å°åèæµä½ä¸ºè¾å
¥ï¼å¹¶æä¾ç 使µä½ä¸ºè¾åºã
夿³¨ï¼ æ¤ç¹æ§å¨ Web Worker ä¸å¯ç¨ã
æé 彿°
TextDecoder()-
è¿åä¸ä¸ªæ°æé ç
TextDecoderï¼å®ä½¿ç¨åæ°ä¸æå®çè§£ç æ¹æ³çæç 使µã
屿§
TextDecoder æ¥å£ä¸ç»§æ¿ä»»ä½å±æ§ã
TextDecoder.prototype.encodingåªè¯»-
ä¸ä¸ªå å«çè§£ç å¨åç§°çå符串ï¼å³æè¿°
TextDecoderå°ä½¿ç¨çæ¹æ³çå符串ã TextDecoder.prototype.fatalåªè¯»-
ä¸ä¸ªå¸å°å¼ï¼è¡¨ç¤ºéè¯¯æ¨¡å¼æ¯å¦è´å½ã
TextDecoder.prototype.ignoreBOMåªè¯»-
ä¸ä¸ªå¸å°å¼ï¼è¡¨ç¤ºæ¯å¦å¿½ç¥åèé¡ºåºæ è®°ï¼BOMï¼æ è®°ã
æ¹æ³
TextDecoder æ¥å£ä¸ç»§æ¿ä»»ä½æ¹æ³ã
TextDecoder.prototype.decode()-
è¿åä¸ä¸ªå符串ï¼å ¶ä¸å å«ä½¿ç¨ç¹å®
TextDecoderå¯¹è±¡çæ¹æ³è§£ç çææ¬ã
示ä¾
>ç¨ç±»ååæ°ç»è¡¨ç¤ºææ¬
æ¬ç¤ºä¾å±ç¤ºå¦ä½è§£ç 䏿/æ¥è¯å符
ï¼ç¨äºä¸ªä¸åçç±»ååæ°ç»è¡¨ç¤ºï¼Uint8ArrayãInt8ArrayãUint16ArrayãInt16Array å Int32Arrayã
let utf8decoder = new TextDecoder(); // default 'utf-8' or 'utf8'
let u8arr = new Uint8Array([240, 160, 174, 183]);
let i8arr = new Int8Array([-16, -96, -82, -73]);
let u16arr = new Uint16Array([41200, 47022]);
let i16arr = new Int16Array([-24336, -18514]);
let i32arr = new Int32Array([-1213292304]);
console.log(utf8decoder.decode(u8arr));
console.log(utf8decoder.decode(i8arr));
console.log(utf8decoder.decode(u16arr));
console.log(utf8decoder.decode(i16arr));
console.log(utf8decoder.decode(i32arr));
å¤çé UTF8 ææ¬
卿¤ç¤ºä¾ä¸ï¼æä»¬å¯¹ä¿è¯ææ¬âÐÑивеÑï¼Ð¼Ð¸Ñï¼âè¿è¡ç¼ç ï¼å®çæææ¯ï¼"Hello, world."ï¼ã卿们ç TextDecoder() æé 彿°ä¸ï¼æä»¬æå®éç¨äºè¥¿éå°åæ¯ç Windows-1251 å符ç¼ç ã
const win1251decoder = new TextDecoder("windows-1251");
const bytes = new Uint8Array([
207, 240, 232, 226, 229, 242, 44, 32, 236, 232, 240, 33,
]);
console.log(win1251decoder.decode(bytes)); // ÐÑивеÑ, миÑ!
è§è
| è§è |
|---|
| Encoding > # interface-textdecoder > |
æµè§å¨å ¼å®¹æ§
åè§
TextEncoderæ¥å£æè¿°äºéæä½ã- ä¸ä¸ªå«çï¼å 许å¨ä¸æ¯æå®çæµè§å¨ä½¿ç¨è¿ä¸ªæ¥å£ã
- Node.js ä» v11.0.0 å¼å§æ¯æå ¨å±å¯¼åº