c# convert pdf to image free library : Export pdf data to excel application SDK utility html winforms windows visual studio print96-part2153

A singlenewlinep961
may be placed immediately after thestart tagp953
ofprep190
andtextareap489
elements. This does not affect the processing
of the element. The otherwise optionalnewlinep961
mustbe included if the element's contents themselves start with anewlinep961
(because
otherwise the leading newline in the contents would be treated like the optional newline, and ignored).
12.1.2.6 Restrictions on the contents of raw text and escapable raw text elements
The text inraw textp952
andescapable raw text elementsp952
must not contain any occurrences of the string "</" (U+003C LESS-THAN SIGN,
U+002F SOLIDUS) followed by characters that case-insensitively match the tag name of the element followed by one of U+0009 CHARACTER
TABULATION (tab), U+000A LINE FEED (LF), U+000C FORM FEED (FF), U+000D CARRIAGE RETURN (CR), U+0020 SPACE, U+003E
GREATER-THAN SIGN (>), or U+002F SOLIDUS (/).
Textis allowed inside elements, attribute values, and comments. Extra constraints are placed on what is and what is not allowed in text based on
where the text is to be put, as described in the other sections.
12.1.3.1 Newlines
Newlinesin HTML may be represented either as U+000D CARRIAGE RETURN (CR) characters, U+000A LINE FEED (LF) characters, or pairs of
U+000D CARRIAGE RETURN (CR), U+000A LINE FEED (LF) characters in that order.
Wherecharacter referencesp961
are allowed, a character reference of a U+000A LINE FEED (LF) character (but not a U+000D CARRIAGE
RETURN (CR) character) also represents anewlinep961
.
In certain cases described in other sections,textp961
may be mixed withcharacter references. These can be used to escape characters that
couldn't otherwise legally be included intextp961
.
Character references must start with a U+0026 AMPERSAND character (&). Following this, there are three possible kinds of character references:
Named character references
The ampersand must be followed by one of the names given in thenamed character referencesp1053
section, using the same case. The name
must be one that is terminated by a U+003B SEMICOLON character (;).
Decimal numeric character reference
The ampersand must be followed by a U+0023 NUMBER SIGN character (#), followed by one or moreASCII digitsp64
, representing a base-
ten integer that corresponds to a Unicode code point that is allowed according to the definition below. The digits must then be followed by a
U+003B SEMICOLON character (;).
Hexadecimal numeric character reference
The ampersand must be followed by a U+0023 NUMBER SIGN character (#), which must be followed by either a U+0078 LATIN SMALL
LETTER X character (x) or a U+0058 LATIN CAPITAL LETTER X character (X), which must then be followed by one or moreASCII hex
digitsp64
, representing a hexadecimal integer that corresponds to a Unicode code point that is allowed according to the definition below. The
digits must then be followed by a U+003B SEMICOLON character (;).
The following twoprep190
blocks are equivalent:
<pre>Hello</pre>
<pre>
Hello</pre>
Example
12.1.3 Text
12.1.4 Character references
961
Export pdf data to excel - extract form data from PDF in C#.net, ASP.NET, MVC, Ajax, WPF
Help to Read and Extract Field Data from PDF with a Convenient C# Solution
how to save a pdf form in reader; pdf form data extraction
Export pdf data to excel - VB.NET PDF Form Data Read library: extract form data from PDF in vb.net, ASP.NET, MVC, Ajax, WPF
Convenient VB.NET Solution to Read and Extract Field Data from PDF
pdf data extraction open source; how to save filled out pdf form in reader
The numeric character reference forms described above are allowed to reference any Unicode code point other than U+0000, U+000D,
permanently undefined Unicode characters (noncharacters), surrogates (U+D800–U+DFFF), andcontrol charactersp64
other thanspace
charactersp64
.
Anambiguous ampersandis a U+0026 AMPERSAND character (&) that is followed by one or morealphanumeric ASCII charactersp64
, followed
by a U+003B SEMICOLON character (;), where these characters do not match any of the names given in thenamed character referencesp1053
section.
CDATA sectionsmust consist of the following components, in this order:
1. The string "<![CDATA[".
2. Optionally,textp961
, with the additional restriction that the text must not contain the string "]]>".
3. The string "]]>".
Commentsmust start with the four character sequence U+003C LESS-THAN SIGN, U+0021 EXCLAMATION MARK, U+002D HYPHEN-MINUS,
U+002D HYPHEN-MINUS (<!--). Following this sequence, the comment may havetextp961
, with the additional restriction that the text must not
start with a single U+003E GREATER-THAN SIGN character (>), nor start with a U+002D HYPHEN-MINUS character (-) followed by a U+003E
GREATER-THAN SIGN (>) character, nor contain two consecutive U+002D HYPHEN-MINUS characters (--), nor end with a U+002D HYPHEN-
MINUS character (-). Finally, the comment must be ended by the three character sequence U+002D HYPHEN-MINUS, U+002D HYPHEN-MINUS,
U+003E GREATER-THAN SIGN (-->).
12.2 Parsing HTML documents
This section only applies to user agents, data mining tools, and conformance checkers.
User agents must use the parsing rules described in this section to generate the DOM trees fromtext/htmlp1126
resources. Together, these rules
define what is referred to as theHTML parser.
CDATA sections can only be used in foreign content (MathML or SVG). In this example, a CDATA section is used to escape the
contents of aMathMLms
element:
<p>You can add a string to a number, but this stringifies the number:</p>
<math>
<ms><![CDATA[x<y]]></ms>
<mo>+</mo>
<mn>3</mn>
<mo>=</mo>
<ms><![CDATA[x<y3]]></ms>
</math>
Example
The rules for parsing XML documents into DOM trees are covered by the next section, entitled "The XHTML syntaxp1063
".
Note
While the HTML syntax described in this specification bears a close resemblance to SGML and XML, it is a separate language with its own
parsing rules.
Some earlier versions of HTML (in particular from HTML2 to HTML4) were based on SGML and used SGML parsing rules. However, few
(if any) web browsers ever implemented true SGML parsing for HTML documents; the only user agents to strictly handle HTML as an
SGML application have historically been validators. The resulting confusion — with validators claiming documents to have one
Note
12.1.5 CDATA sections
12.1.6 Comments
Spec bugs:24892
962
VB.NET Create PDF from Excel Library to convert xlsx, xls to PDF
Create PDF from Text. PDF Export. Convert PDF to Word (.docx Image to PDF. Image: Remove Image from PDF Page. Image Data: Read, Extract Field Data. Data: Auto Fill
how to make pdf editable form reader; extract data from pdf to excel
C# Create PDF from Excel Library to convert xlsx, xls to PDF in C#
Merge all Excel sheets to one PDF file. Export PDF from Excel with cell border or no border. Free online Excel to PDF converter without email.
sign pdf form reader; exporting data from pdf to excel
This specification defines the parsing rules for HTML documents, whether they are syntactically correct or not. Certain points in the parsing
algorithm are said to beparse errors. The error handling for parse errors is well-defined (that's the processing rules described throughout this
specification), but user agents, while parsing an HTML document, mayabort the parserp1042
at the firstparse errorp963
that they encounter for which
they do not wish to apply the rules described in this specification.
Conformance checkers must report at least one parse error condition to the user if one or more parse error conditions exist in the document and
must not report parse error conditions if none exist in the document. Conformance checkers may report more than one parse error condition if more
than one parse error condition exists in the document.
For the purposes of conformance checkers, if a resource is determined to be inthe HTML syntaxp951
, then it is anHTML document
.
representation while widely deployed Web browsers interoperably implemented a different representation — has wasted decades of
productivity. This version of HTML thus returns to a non-SGML basis.
Authors interested in using SGML tools in their authoring pipeline are encouraged to use XML tools and the XML serialisation of HTML.
Parse errors are only errors with thesyntaxof HTML. In addition to checking for parse errors, conformance checkers will also verify that
the document obeys all the other conformance requirements described in this specification.
Note
As statedin the terminology sectionp43
, references toelement typesp43
that do not explicitly specify a namespace always refer to elements
in theHTML namespacep97
. For example, if the spec talks about "amenuitemp551
element", then that is an element with the local name
"menuitem", the namespace "http://www.w3.org/1999/xhtml", and the interfaceHTMLMenuItemElementp551
. Where possible,
references to such elements are hyperlinked to their definition.
Note
963
C# WPF PDF Viewer SDK to convert and export PDF document to other
PDF from RTF. Create PDF from Text. PDF Export. Convert PDF Edit, Delete Metadata. Watermark: Add Watermark to PDF. Form Process. Data: Read, Extract Field Data.
how to save pdf form data in reader; extract data from pdf using java
VB.NET PDF - Convert PDF with VB.NET WPF PDF Viewer
Create PDF from Text. PDF Export. Convert PDF to Word (.docx Image to PDF. Image: Remove Image from PDF Page. Image Data: Read, Extract Field Data. Data: Auto Fill
extract data from pdf table; change font size pdf form reader
The input to the HTML parsing process consists of a stream ofUnicode
code pointsp45
, which is passed through atokenizationp975
stage followed
by atree constructionp1002
stage. The output is aDocumentp103
object.
In the common case, the data handled by the tokenization stage comes
from the network, butit can also come from scriptp856
running in the user
agent, e.g. using thedocument.write()p859
API.
There is only one set of states for the tokenizer stage and the tree
construction stage, but the tree construction stage is reentrant, meaning
that while the tree construction stage is handling one token, the tokenizer
might be resumed, causing further tokens to be emitted and processed
before the first token's processing is complete.
To handle these cases, parsers have ascript nesting level, which must
be initially set to zero, and aparser pause flag, which must be initially set
to false.
The stream of Unicode code points that comprises the input to the tokenization stage will be initially seen by the user agent as a stream of bytes
(typically coming over the network or from the local file system). The bytes encode the actual characters according to a particularcharacter
encoding, which the user agent uses to decode the bytes into characters.
Usually, theencoding sniffing algorithmp965
defined below is used to determine the character encoding.
Given a character encoding, the bytes in theinput byte streamp964
must be converted to characters for the tokenizer'sinput streamp970
, by passing
theinput byte streamp964
and character encoding todecode
.
Implementations thatdo not support scriptingp47
do not have to
actually create a DOMDocumentp103
object, but the DOM tree in
such cases is still used as the model for the rest of the
specification.
Note
In the following example, the tree construction stage will be
called upon to handle a "p" start tag token while handling the
"script" end tag token:
...
<script>
document.write('<p>');
</script>
...
Example
For XML documents, the algorithm user agents are required to use to determine the character encoding is given by the XML specification.
This section does not apply to XML documents.[XML]p1165
Note
A leading Byte Order Mark (BOM) causes the character encoding argument to be ignored and will itself be skipped.
Note
Bytes or sequences of bytes in the original byte stream that did not conform to the Encoding standard (e.g. invalid UTF-8 byte sequences
in a UTF-8 input byte stream) are errors that conformance checkers are expected to report.[ENCODING]p1160
Note
The decoder algorithms describe how to handle invalid input; for security reasons, it is imperative that those rules be
followed precisely. Differences in how invalid byte sequences are handled can result in, amongst other problems, script
injection vulnerabilities ("XSS").
⚠Warning!
Network
Byte Stream
Decoder
Input Stream
Preprocessor
Tokenizer
Tree
Construction
DOM
Script
Execution
document.write()
12.2.1 Overview of the parsing model
12.2.2 Theinput byte stream
964
C# PDF Converter Library SDK to convert PDF to other file formats
Able to export PDF document to HTML file. for C#.NET supports file conversion between PDF and various and images, like Microsoft Office (Word, Excel, and PPT
exporting pdf data to excel; export pdf form data to excel
VB.NET PDF Converter Library SDK to convert PDF to other file
PDF Export. |. Home ›› XDoc.PDF ›› VB.NET PDF: PDF Export. for converting MicroSoft Office Word, Excel and PowerPoint document to PDF file in VB
extracting data from pdf forms; how to save a filled out pdf form in reader
When the HTML parser is decoding an input byte stream, it uses a character encoding and aconfidence. The confidence is eithertentative,
certain, orirrelevant. The encoding used, and whether the confidence in that encoding istentativeorcertain, isused during the parsingp1012
to
determine whether tochange the encodingp970
. If no encoding is necessary, e.g. because the parser is operating on a Unicode stream and doesn't
have to use a character encoding at all, then theconfidencep965
isirrelevant.
12.2.2.1 Parsing with a known character encoding
When the HTML parser is to operate on an input byte stream that hasa known definite encoding, then the character encoding is that encoding
and theconfidencep965
iscertain.
12.2.2.2 Determining the character encoding
In some cases, it might be impractical to unambiguously determine the encoding before parsing the document. Because of this, this specification
provides for a two-pass mechanism with an optional pre-scan. Implementations are allowed, as described below, to apply a simplified parsing
algorithm to whatever bytes they have available before beginning to parse the document. Then, the real parser is started, using a tentative encoding
derived from this pre-parse and other out-of-band metadata. If, while the document is being loaded, the user agent discovers a character encoding
declaration that conflicts with this information, then the parser can get reinvoked to perform a parse of the document with the real encoding.
User agents must use the following algorithm, called theencoding sniffing algorithm, to determine the character encoding to use when decoding
a document in the first pass. This algorithm takes as input any out-of-band metadata available to the user agent (e.g. theContent-Type metadatap88
of the document) and all the bytes available so far, and returns a character encoding and aconfidencep965
that is eithertentativeorcertain.
1. If the user has explicitly instructed the user agent to override the document's character encoding with a specific encoding, optionally
return that encoding with theconfidencep965
certainand abort these steps.
2. The user agent may wait for more bytes of the resource to be available, either in this step or at any later step in this algorithm. For
instance, a user agent might wait 500ms or 1024 bytes, whichever came first. In general preparsing the source to find the encoding
improves performance, as it reduces the need to throw away the data structures used when parsing upon finding the encoding
information. However, if the user agent delays too long to obtain data to determine the encoding, then the cost of the delay could
outweigh any performance improvements from the preparse.
3. If the transport layer specifies a character encoding, and it is supported, return that encoding with theconfidencep965
certain, and abort
these steps.
4. Optionallyprescan the byte stream to determine its encodingp967
. Theend conditionis that the user agent decides that scanning further
bytes would not be efficient. User agents are encouraged to only prescan the first 1024 bytes. User agents may decide that scanning
anybytes is not efficient, in which case these substeps are entirely skipped.
The aforementioned algorithm either aborts unsuccessfully or returns a character encoding. If it returns a character encoding, then this
algorithm must be aborted, returning the same encoding, withconfidencep965
tentative.
5. If theHTML parserp962
for which this algorithm is being run is associated with aDocumentp103
that is itself in anested browsing
contextp749
, run these substeps:
1. Letnew documentbe theDocumentp103
with which theHTML parserp962
is associated.
2. Letparent documentbe theDocumentp103
through whichnew documentis nestedp749
(theactive documentp748
of theparent
browsing contextp749
ofnew document).
3. Ifparent document'soriginp767
is not thesame originp769
asnew document'soriginp767
, then abort these substeps.
Some algorithms feed the parser by directly adding characters to theinput streamp970
rather than adding bytes to theinput byte streamp964
.
Note
Typically, user agents remember such user requests across sessions, and in some cases apply them to documents in
iframep308
s as well.
Note
The authoring conformance requirements for character encoding declarations limit them to only appearingin the first 1024
bytesp152
. User agents are therefore encouraged to use the prescan algorithm below (as invoked by these steps) on the first
1024 bytes, but not to stall beyond that.
Note
965
C# WPF PDF Viewer SDK to view, annotate, convert and print PDF in
PDF from RTF. Create PDF from Text. PDF Export. Convert PDF Image to PDF. Image: Remove Image from PDF Page. Form Process. Data: Read, Extract Field Data. Data: Auto
extract table data from pdf to excel; export pdf form data to excel spreadsheet
VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to
Create PDF from Text. PDF Export. Convert PDF to Word (.docx Image to PDF. Image: Remove Image from PDF Page. Image Data: Read, Extract Field Data. Data: Auto Fill
edit pdf form in reader; filling out pdf forms with reader
4. Ifparent document'scharacter encoding
is not anASCII-compatible encodingp44
, then abort these substeps.
5. Returnparent document'scharacter encoding
, with theconfidencep965
tentative, and abort theencoding sniffing
algorithmp965
's steps.
6. Otherwise, if the user agent has information on the likely encoding for this page, e.g. based on the encoding of the page when it was last
visited, then return that encoding, with theconfidencep965
tentative, and abort these steps.
7. The user agent may attempt to autodetect the character encoding from applying frequency analysis or other algorithms to the data
stream. Such algorithms may use information about the resource other than the resource's contents, including the address of the
resource. If autodetection succeeds in determining a character encoding, and that encoding is a supported encoding, then return that
encoding, with theconfidencep965
tentative, and abort these steps.[UNIVCHARDET]p1164
8. Otherwise, return an implementation-defined or user-specified default character encoding, with theconfidencep965
tentative.
In controlled environments or in environments where the encoding of documents can be prescribed (for example, for user agents
intended for dedicated use in new networks), the comprehensiveUTF-8encoding is suggested.
In other environments, the default encoding is typically dependent on the user's locale (an approximation of the languages, and thus
often encodings, of the pages that the user is likely to frequent). The following table gives suggested defaults based on the user's locale,
for compatibility with legacy content. Locales are identified by BCP 47 language tags.[BCP47]p1158
[ENCODING]p1160
Locale language
Suggested default encoding
ar
Arabic
windows-1256
ba
Bashkir
windows-1251
be
Belarusian
windows-1251
bg
Bulgarian
windows-1251
cs
Czech
windows-1250
el
Greek
ISO-8859-7
et
Estonian
windows-1257
fa
Persian
windows-1256
he
Hebrew
windows-1255
hr
Croatian
windows-1250
hu
Hungarian
ISO-8859-2
ja
Japanese
Shift_JIS
kk
Kazakh
windows-1251
ko
Korean
EUC-KR
ku
Kurdish
windows-1254
ky
Kyrgyz
windows-1251
lt
Lithuanian
windows-1257
lv
Latvian
windows-1257
mk
Macedonian
windows-1251
pl
Polish
ISO-8859-2
ru
Russian
windows-1251
sah
Yakut
windows-1251
sk
Slovak
windows-1250
sl
Slovenian
ISO-8859-2
sr
Serbian
windows-1251
tg
Tajik
windows-1251
th
Thai
windows-874
User agents are generally discouraged from attempting to autodetect encodings for resources obtained over the network, since
doing so involves inherently non-interoperable heuristics. Attempting to detect encodings based on an HTML document's
preamble is especially tricky since HTML markup typically uses only ASCII characters, and HTML documents tend to begin with
a lot of markup rather than with text content.
Note
The UTF-8 encoding has a highly detectable bit pattern. Files from the local file system that contain bytes with values greater
than 0x7F which match the UTF-8 pattern are very likely to be UTF-8, while documents with byte sequences that do not match
it are very likely not. When a user agent can examine the whole file, rather than just the preamble, detecting for UTF-8
specifically can be especially effective.[PPUTF8]p1162
[UTF8DET]p1164
Note
966
VB.NET PDF- HTML5 PDF Viewer for VB.NET Project
Create PDF from Text. PDF Export. Convert PDF to Word (.docx Image to PDF. Image: Remove Image from PDF Page. Image Data: Read, Extract Field Data. Data: Auto Fill
extract data from pdf forms; how to save editable pdf form in reader
Locale language
Suggested default encoding
tr
Turkish
windows-1254
tt
Tatar
windows-1251
uk
Ukrainian
windows-1251
vi
Vietnamese
windows-1258
zh-CN Chinese (People's Republic of China) gb18030
zh-TW Chinese (Taiwan)
Big5
All other locales
windows-1252
The contents of this table are derived from the intersection of Windows, Chrome, and Firefox defaults.
Thedocument's character encoding
must immediately be set to the value returned from this algorithm, at the same time as the user agent uses the
returned value to select the decoder to use for the input byte stream.
When an algorithm requires a user agent toprescan a byte stream to determine its encoding, given some definedend condition, then it must
run the following steps. These steps either abort unsuccessfully or return a character encoding. If at any point during these steps (including during
instances of theget an attributep968
algorithm invoked by this one) the user agent either runs out of bytes (meaning thepositionpointer created in
the first step below goes beyond the end of the byte stream obtained so far) or reaches itsend condition, then abort theprescan a byte stream to
determine its encodingp967
algorithm unsuccessfully.
1. Letpositionbe a pointer to a byte in the input byte stream, initially pointing at the first byte.
2. Loop: Ifpositionpoints to:
A sequence of bytes starting with: 0x3C 0x21 0x2D 0x2D (ASCII '<!--')
Advance thepositionpointer so that it points at the first 0x3E byte which is preceded by two 0x2D bytes (i.e. at the end of an
ASCII '-->' sequence) and comes after the 0x3C byte that was found. (The two 0x2D bytes can be the same as those in the
'<!--' sequence.)
A sequence of bytes starting with: 0x3C, 0x4D or 0x6D, 0x45 or 0x65, 0x54 or 0x74, 0x41 or 0x61, and one of 0x09, 0x0A,
0x0C, 0x0D, 0x20, 0x2F (case-insensitive ASCII '<meta' followed by a space or slash)
1. Advance thepositionpointer so that it points at the next 0x09, 0x0A, 0x0C, 0x0D, 0x20, or 0x2F byte (the one in
sequence of characters matched above).
2. Letattribute listbe an empty list of strings.
3. Letgot pragmabe false.
4. Letneed pragmabe null.
5. Letcharsetbe the null value (which, for the purposes of this algorithm, is distinct from an unrecognised encoding
or the empty string).
6. Attributes:Get an attributep968
and its value. If no attribute was sniffed, then jump to theprocessingstep below.
7. If the attribute's name is already inattribute list, then return to the step labeledattributes.
8. Add the attribute's name toattribute list.
9. Run the appropriate step from the following list, if one applies:
If the attribute's name is "http-equiv"
If the attribute's value is "content-type", then setgot pragmato true.
If the attribute's name is "content"
Apply thealgorithm for extracting a character encoding from ametaelementp88
, giving the attribute's
value as the string to parse. If a character encoding is returned, and ifcharsetis still set to null, let
charsetbe the encoding returned, and setneed pragmato true.
If the attribute's name is "charset"
Letcharsetbe the result ofgetting an encoding
from the attribute's value, and setneed pragmato
false.
967
10. Return to the step labeledattributes.
11. Processing: Ifneed pragmais null, then jump to the step below labelednext byte.
12. Ifneed pragmais true butgot pragmais false, then jump to the step below labelednext byte.
13. Ifcharsetis failure, then jump to the step below labelednext byte.
14. Ifcharsetis aUTF-16 encodingp44
, then setcharsettoUTF-8
.
15. Ifcharsetisx-user-defined
, then setcharsettowindows-1252
.
16. Abort theprescan a byte stream to determine its encodingp967
algorithm, returning the encoding given bycharset.
A sequence of bytes starting with a 0x3C byte (ASCII <), optionally a 0x2F byte (ASCII /), and finally a byte in the range
0x41-0x5A or 0x61-0x7A (an ASCII letter)
1. Advance thepositionpointer so that it points at the next 0x09 (ASCII TAB), 0x0A (ASCII LF), 0x0C (ASCII FF),
0x0D (ASCII CR), 0x20 (ASCII space), or 0x3E (ASCII >) byte.
2. Repeatedlyget an attributep968
until no further attributes can be found, then jump to the step below labelednext
byte.
A sequence of bytes starting with: 0x3C 0x21 (ASCII '<!')
A sequence of bytes starting with: 0x3C 0x2F (ASCII '</')
A sequence of bytes starting with: 0x3C 0x3F (ASCII '<?')
Advance thepositionpointer so that it points at the first 0x3E byte (ASCII >) that comes after the 0x3C byte that was found.
Any other byte
Do nothing with that byte.
3. Next byte: Movepositionso it points at the next byte in the input byte stream, and return to the step above labeledloop.
When theprescan a byte stream to determine its encodingp967
algorithm says toget an attribute, it means doing this:
1. If the byte atpositionis one of 0x09 (ASCII TAB), 0x0A (ASCII LF), 0x0C (ASCII FF), 0x0D (ASCII CR), 0x20 (ASCII space), or 0x2F
(ASCII /) then advancepositionto the next byte and redo this step.
2. If the byte atpositionis 0x3E (ASCII >), then abort theget an attributep968
algorithm. There isn't one.
3. Otherwise, the byte atpositionis the start of the attribute name. Letattribute nameandattribute valuebe the empty string.
4. Process the byte atpositionas follows:
If it is 0x3D (ASCII =), and theattribute nameis longer than the empty string
Advancepositionto the next byte and jump to the step below labeledvalue.
If it is 0x09 (ASCII TAB), 0x0A (ASCII LF), 0x0C (ASCII FF), 0x0D (ASCII CR), or 0x20 (ASCII space)
Jump to the step below labeledspaces.
If it is 0x2F (ASCII /) or 0x3E (ASCII >)
Abort theget an attributep968
algorithm. The attribute's name is the value ofattribute name, its value is the empty string.
If it is in the range 0x41 (ASCII A) to 0x5A (ASCII Z)
Append the Unicode character with code pointb+0x20toattribute name(wherebis the value of the byte atposition). (This
converts the input to lowercase.)
Anything else
Append the Unicode character with the same code point as the value of the byte atpositiontoattribute name. (It doesn't
actually matter how bytes outside the ASCII range are handled here, since only ASCII characters can contribute to the
detection of a character encoding.)
5. Advancepositionto the next byte and return to the previous step.
6. Spaces: If the byte atpositionis one of 0x09 (ASCII TAB), 0x0A (ASCII LF), 0x0C (ASCII FF), 0x0D (ASCII CR), or 0x20 (ASCII space)
then advancepositionto the next byte, then, repeat this step.
968
7. If the byte atpositionisnot0x3D (ASCII =), abort theget an attributep968
algorithm. The attribute's name is the value ofattribute name,
its value is the empty string.
8. Advancepositionpast the 0x3D (ASCII =) byte.
9. Value: If the byte atpositionis one of 0x09 (ASCII TAB), 0x0A (ASCII LF), 0x0C (ASCII FF), 0x0D (ASCII CR), or 0x20 (ASCII space)
then advancepositionto the next byte, then, repeat this step.
10. Process the byte atpositionas follows:
If it is 0x22 (ASCII ") or 0x27 (ASCII ')
1. Letbbe the value of the byte atposition.
2. Quote loop: Advancepositionto the next byte.
3. If the value of the byte atpositionis the value ofb, then advancepositionto the next byte and abort the "get an
attribute" algorithm. The attribute's name is the value ofattribute name, and its value is the value ofattribute value.
4. Otherwise, if the value of the byte atpositionis in the range 0x41 (ASCII A) to 0x5A (ASCII Z), then append a
Unicode character toattribute valuewhose code point is 0x20 more than the value of the byte atposition.
5. Otherwise, append a Unicode character toattribute valuewhose code point is the same as the value of the byte at
position.
6. Return to the step above labeledquote loop.
If it is 0x3E (ASCII >)
Abort theget an attributep968
algorithm. The attribute's name is the value ofattribute name, its value is the empty string.
If it is in the range 0x41 (ASCII A) to 0x5A (ASCII Z)
Append the Unicode character with code pointb+0x20toattribute value(wherebis the value of the byte atposition).
Advancepositionto the next byte.
Anything else
Append the Unicode character with the same code point as the value of the byte atpositiontoattribute value. Advance
positionto the next byte.
11. Process the byte atpositionas follows:
If it is 0x09 (ASCII TAB), 0x0A (ASCII LF), 0x0C (ASCII FF), 0x0D (ASCII CR), 0x20 (ASCII space), or 0x3E (ASCII >)
Abort theget an attributep968
algorithm. The attribute's name is the value ofattribute nameand its value is the value of
attribute value.
If it is in the range 0x41 (ASCII A) to 0x5A (ASCII Z)
Append the Unicode character with code pointb+0x20toattribute value(wherebis the value of the byte atposition).
Anything else
Append the Unicode character with the same code point as the value of the byte atpositiontoattribute value.
12. Advancepositionto the next byte and return to the previous step.
For the sake of interoperability, user agents should not use a pre-scan algorithm that returns different results than the one described above. (But, if
you do, please at least let us know, so that we can improve this algorithm and benefit everyone...)
12.2.2.3 Character encodings
User agents must support the encodings defined in the WHATWG Encoding standard, including, but not limited to,UTF-8
,ISO-8859-2
,ISO-8859-8
,
windows-1250
,windows-1251
,windows-1252
,windows-1254
,windows-1256
,windows-1257
,gb18030
,Big5
,ISO-2022-JP
,Shift_JIS
,EUC-
KR
,UTF-16BE
,UTF-16LE
, andx-user-defined
. User agents must not support other encodings.
The above prohibits supporting, for example, CESU-8, UTF-7, BOCU-1, SCSU, EBCDIC, and UTF-32. This specification does not make
any attempt to support prohibited encodings in its algorithms; support and use of prohibited encodings would thus lead to unexpected
behaviour.[CESU8]p1158
[UTF7]p1164
[BOCU1]p1158
[SCSU]p1163
Note
969
12.2.2.4 Changing the encoding while parsing
When the parser requires the user agent tochange the encoding, it must run the following steps. This might happen if theencoding sniffing
algorithmp965
described above failed to find a character encoding, or if it found a character encoding that was not the actual encoding of the file.
1. If the encoding that is already being used to interpret the input stream is aUTF-16 encodingp44
, then set theconfidencep965
tocertain
and abort these steps. The new encoding is ignored; if it was anything but the same encoding, then it would be clearly incorrect.
2. If the new encoding is aUTF-16 encodingp44
, then change it toUTF-8
.
3. If the new encoding isx-user-defined
, then change it towindows-1252
.
4. If the new encoding is identical or equivalent to the encoding that is already being used to interpret the input stream, then set the
confidencep965
tocertainand abort these steps. This happens when the encoding information found in the file matches what the
encoding sniffing algorithmp965
determined to be the encoding, and in the second pass through the parser if the first pass found that the
encoding sniffing algorithm described in the earlier section failed to find the right encoding.
5. If all the bytes up to the last byte converted by the current decoder have the same Unicode interpretations in both the current encoding
and the new encoding, and if the user agent supports changing the converter on the fly, then the user agent may change to the new
converter for the encoding on the fly. Set thedocument's character encoding
and the encoding used to convert the input stream to the
new encoding, set theconfidencep965
tocertain, and abort these steps.
6. Otherwise,navigatep788
to the document again, withreplacement enabledp800
, and using the samesource browsing contextp788
, but this
time skip theencoding sniffing algorithmp965
and instead just set the encoding to the new encoding and theconfidencep965
tocertain.
Whenever possible, this should be done without actually contacting the network layer (the bytes should be re-parsed from memory),
even if, e.g., the document is marked as not being cacheable. If this is not possible and contacting the network layer would involve
repeating a request that uses a method other than `GET`), then instead set theconfidencep965
tocertainand ignore the new encoding.
The resource will be misinterpreted. User agents may notify the user of the situation, to aid in application development.
12.2.2.5 Preprocessing the input stream
Theinput streamconsists of the characters pushed into it as theinput byte streamp964
is decoded or from the various APIs that directly manipulate
the input stream.
Any occurrences of any characters in the ranges U+0001 to U+0008, U+000E to U+001F, U+007F to U+009F, U+FDD0 to U+FDEF, and
characters U+000B, U+FFFE, U+FFFF, U+1FFFE, U+1FFFF, U+2FFFE, U+2FFFF, U+3FFFE, U+3FFFF, U+4FFFE, U+4FFFF, U+5FFFE,
U+5FFFF, U+6FFFE, U+6FFFF, U+7FFFE, U+7FFFF, U+8FFFE, U+8FFFF, U+9FFFE, U+9FFFF, U+AFFFE, U+AFFFF, U+BFFFE, U+BFFFF,
U+CFFFE, U+CFFFF, U+DFFFE, U+DFFFF, U+EFFFE, U+EFFFF, U+FFFFE, U+FFFFF, U+10FFFE, and U+10FFFF areparse errorsp963
. These
are allcontrol charactersp64
or permanently undefined Unicode characters (noncharacters).
Anycharacterp45
that is a not aUnicode characterp45
, i.e. any isolated surrogate, is aparse errorp963
. (These can only find their way into the input
stream via script APIs such asdocument.write()p859
.)
U+000D CARRIAGE RETURN (CR) characters and U+000A LINE FEED (LF) characters are treated specially. Any LF character that immediately
follows a CR character must be ignored, and all CR characters must then be converted to LF characters. Thus, newlines in HTML DOMs are
represented by LF characters, and there are never any CR characters in the input to thetokenizationp975
stage.
Thenext input characteris the first character in theinput streamp970
that has not yet beenconsumedor explicitly ignored by the requirements in
this section. Initially, thenext input characterp970
is the first character in the input. Thecurrent input characteris the last character to have been
consumed.
Theinsertion pointis the position (just before a character or just before the end of the input stream) where content inserted using
document.write()p859
is actually inserted. The insertion point is relative to the position of the character immediately after it, it is not an absolute
offset into the input stream. Initially, the insertion point is undefined.
The "EOF" character in the tables below is a conceptual character representing the end of theinput streamp970
. If the parser is ascript-created
parserp858
, then the end of theinput streamp970
is reached when anexplicit "EOF" character(inserted by thedocument.close()p859
method) is
consumed. Otherwise, the "EOF" character is not a real character in the stream, but rather the lack of any further characters.
This algorithm is only invoked when a new encoding is found declared on ametap143
element.
Note
970
Documents you may be interested
Documents you may be interested