Ogólne#

TextDecoder#

W tym miejscu umieszczam powtarzające się specyficzne pojęcia i algorytmy w interfejsie TextDecoder.

Pojęcia#

Obiekt implementujący interfejs TextDecoder jest skojarzony z kodowaniemTD # (kodowanie), dekoderemTD # (dekoder), strumieniemTD # (strumień), flagą ignorowania BOM # (początkowo nieustawioną), flagą widzianego BOM # (początkowo nieustawioną), trybem błędu TD # (tryb błędu) [początkowo "replacement"] oraz flagą braku wyczyszczenia # (początkowo nieustawioną).

Algorytmy#

serialize stream

Algorytm serializacji strumienia # (serialize stream) w dekoderze tekstowym textDecoder pobiera strumień stream i wykonuje następujące kroki:

  1. Niech output będzie pustym łańcuchem znakowym.
  2. Dopóki (while) prawda:

    1. Niech token będzie wynikiem odczytu ze stream.
    2. Jeśli kodowanieTD w textDecoder jest jednym z UTF-8, UTF-16BE i UTF-16LE oraz flaga ignorowania BOM i flaga widzianego BOM w textDecoder jest nieustawiona, to wykonaj poniższe podkroki:

      1. Jeśli token jest wartością U+FEFF, to ustaw flagę widzianego BOM w textDecoder.
      2. W przeciwnym razie, jeśli token nie jest końcem strumienia, to ustaw flagę widzianego BOM w textDecoder i niech token następuje po output.
      3. W przeciwnym razie zwróć output.
    3. W przeciwnym razie, jeśli token nie jest końcem strumienia, to niech token następuje po output.
    4. W przeciwnym razie zwróć output.

Powyższy algorytm celowo różni się w obszarze przechwytywania BOM względem algorytmu dekodowania stosowanego przez resztę platformy, aby dać użytkownikowi większą kontrolę (szczegóły).

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

Ogólne (H1) TextDecoder (H2) Pojęcia (H3) Algorytmy (H3) serialize stream (H4)