42:
631:
files, for example, field collision can occur whenever an author attempts to include a comma as part of a field value (e.g., salary = "$ 30,000"), and record delimiter collision would occur whenever a field contained multiple lines. Both record and field delimiter collision occur frequently in text
1303:
is a programming and systems administration technique that also helps to avoid delimiter collision in some circumstances. This technique is contrasted from the other approaches described above because it is more complicated, and therefore not suitable for small applications and simple data storage
1040:
is a special type of delimiter that is specifically designed to resist delimiter collision. It works by allowing the author to specify a sequence of characters that is guaranteed to always indicate a boundary between parts in a multi-part message, with no other possible interpretation.
667:
Because delimiter collision is a very common problem, various methods for avoiding it have been invented. Some authors may attempt to avoid the problem by choosing a delimiter character (or sequence of characters) that is not likely to appear in the data stream itself. This
619:
is a problem that occurs when an author or programmer introduces delimiters into text without actually intending them to be interpreted as boundaries between separate regions. In the case of XML, for example, this can occur whenever an author attempts to specify an
910:
In contrast to escape sequences and escape characters, dual delimiters provide yet another way to avoid delimiter collision. Some languages, for example, allow the use of either a single quote (') or a double quote (") to specify a string literal. For example, in
1052:, or some other distinguishing mark. Alternatively, the content may be scanned to guarantee that a delimiter does not appear in the text. This may allow the delimiter to be shorter or simpler, and increase the human readability of the document. (
672:
approach may be suitable, but it necessarily depends on a correct guess of what will appear in the data stream, and offers no security against malicious collisions. Other, more formal conventions are therefore applied as well.
960:
produces the desired output without requiring escapes. Like regular escaping it can, however, become confusing when many quotes are used. The code to print the above source code would look more confusing:
177:, for example, is an alternate method (without the use of delimiters) that uses a length field at the start of a data stream to specify the number of characters that the data stream contains.
681:
The ASCII and
Unicode character sets were designed to solve this problem by the provision of non-printing characters that can be used as delimiters. These are the range from ASCII 28 to 31.
1044:
The delimiter is frequently generated from a random sequence of characters that is statistically improbable to occur in the content. This may be followed by an identifying mark such as a
1490:
This prevents delimiter collision and ensures that incompatible characters will not appear inside the HTML code, regardless of what characters appear in the original (decoded) text.
164:
1908:
1390:
1965:
128:
635:
In some contexts, a malicious user or attacker may seek to exploit this problem intentionally. Consequently, delimiter collision can be the source of security
414:
848:
Escape sequences are similar to escape characters, except they usually consist of some kind of mnemonic instead of just a single character. One use is in
2063:
1992:
1947:
233:
Bracket delimiters, also called block delimiters, region delimiters, or balanced delimiters, mark both the start and end of a region of text.
2191:
2165:
2047:
2021:
1979:
1891:
1865:
1831:
1797:
1771:
1606:
1254:. A here document starts by describing what the end sequence will be and continues until that sequence is seen at the start of a new line.
894:
One drawback of escape sequences, when used by people, is the need to memorize the codes that represent individual characters (see also:
403:
Historically, computing platforms have used certain delimiters by convention. The following tables depict a few examples for comparison.
1024:, which allow any convenient character to act as a delimiter. Although this method is more flexible, few languages support it. Perl and
2345:
1308:, to ensure that delimiter or other significant characters do not appear in transmitted data. The purpose is to prevent multilayered
2287:
2258:
2228:
2140:
2111:
2084:
1745:
1720:
1687:
1661:
1635:
1424:
Alternatively, any encoding could be used that doesn't include characters that have special meaning in the context, such as base64:
1288:
It's very hard to encode a string with "certain characters". Newlines, commas, and other characters can cause delimiter collisions.
1552:
1153:
The syntax is flexible enough to specify match operations with alternate delimiters, making it easy to avoid delimiter collision:
627:
In most file types there is both a field delimiter and a record delimiter, both of which are subject to collision. In the case of
943:
In contrast to escape sequences and escape characters, padding delimiters provide yet another way to avoid delimiter collision.
2340:
969:"print ""Nancy said """"Hello World!"""" to the crowd."""
372:
931:
produces the desired output without requiring escapes. This approach, however, only works when the string does not contain
2311:
1247:
1238:
allows the inclusion of arbitrary content by describing a special end sequence. Many languages support this including
1089:
1025:
899:
640:
262:
1509:
1342:
in which the VIEWSTATE value contains characters that are incompatible with the delimiters of the HTML tag itself:
895:
817:
2335:
2330:
636:
201:
66:
979:
In contrast to dual delimiters, multiple delimiters are even more flexible for avoiding delimiter collision.
591:
97:
85:. Another example of a delimiter is the time gap used to separate letters and words in the transmission of
628:
355:
197:
82:
46:
137:
816:
text can be rendered unreadable when littered with numerous escape characters, a problem referred to as
58:
1524:
1327:
web development technology, and is closely associated with the "VIEWSTATE" component of that system.
1021:
656:
2315:
1383:
222:
101:
1934:
1095:
824:
219:
215:
fname,lname,age,salary nancy,davolio,33,$ 30000 erin,borakova,28,$ 25250 tony,raphael,35,$ 28700
1909:"Jakarta Server Pages Specification, Version 4.0akarta Server Pages Specification, Version 4.0"
2283:
2254:
2224:
2187:
2161:
2136:
2107:
2080:
2043:
2017:
1959:
1887:
1861:
1827:
1793:
1767:
1741:
1716:
1683:
1657:
1631:
1602:
1504:
1243:
471:
338:
1778:
references C-style programming languages prominently featuring curly brackets and semicolons.
1456:
1309:
947:, for example, uses double quotes as delimiters. This is similar to escaping the delimiter.
833:
they require a mechanism to "escape the escapes" when not intended as escape characters; and
809:
797:
760:
2307:
1817:
1514:
1113:
For example, a simple match operation may be specified in Perl with the following syntax:
800:
solves the problem of both field and record delimiters that appear in a text data stream.
739:
578:
265:
programming language syntax is cited as recognizable primarily by its use of parentheses.
185:
Delimiters may be characterized as field and record delimiters, or as bracket delimiters.
2280:
Developing and
Implementing Web Applications with Visual C# . NET and Visual Studio . NET
107:
1544:
2247:
1854:
1839:
1519:
1313:
1300:
1073:
849:
793:
781:
718:
556:
321:
209:
174:
131:
35:
2324:
2101:
2011:
1573:
1416:"BookTitle:Nancy doesn't say "Hello World!" anymore."
1235:
1061:
652:
621:
1335:
The following simplified example demonstrates how this technique works in practice.
1291:
By using a special end sequence all manner of characters are allowed in the string.
193:
Field delimiters separate data fields. Record delimiters separate groups of fields.
1613:
describing the method in
Hollerith notation under the Fortran programming language.
1077:
944:
836:
although easy to type, they can be cryptic to someone unfamiliar with the language.
723:
End of file. Or between a concatenation of what might otherwise be separate files.
389:
31:
17:
812:. From a language design standpoint, these are adequate, but they have drawbacks:
1821:
643:. Malicious users can take advantage of delimiter collision in languages such as
1549:
Federal
Standard 1037C - Telecommunications: Glossary of Telecommunication Terms
1447:"Qm9va1RpdGxlOk5hbmN5IGRvZXNuJ3Qgc2F5ICJIZWxsbyBXb3JsZCEiIGFueW1vcmUu"
450:
205:
170:
93:
70:
30:
This article is about delimiters in computing. For delimiters in human use, see
1482:"BookTitle:Nancy%20doesn%27t%20say%20%22Hello%20World!%22%20anymore."
1164:'Nancy said "http://Hello/World.htm" is not a valid address.'
41:
1708:
86:
62:
2294:(describes the use of Base64 encoding and VIEWSTATE inside HTML source code)
1320:
1049:
560:
549:
511:
493:
1654:
Mastering
Regular Expressions: Powerful Techniques for Perl and Other Tools
1386:, and would therefore not work properly in a "real world" deployed system.
1299:
Although principally used as a mechanism for text encoding of binary data,
1274:
It's very hard to encode a string with "certain characters".
1339:
1080:
as a means of specifying boundaries between independent regions in text.
955:"Nancy said ""Hello World!"" to the crowd."
169:
Delimiters represent one of various means of specifying boundaries in a
49:(CSV) text file. The commas (shown in red) are used as field delimiters.
1393:
can be used. In this case """ stands in for the double-quote:
1324:
688:
573:
538:
521:
506:
501:
304:
279:
258:
2207:
1983:
1938:
1277:
Newlines, commas, and other characters can cause delimiter collisions.
2221:
Internet
Security: Cryptographic Principles, Algorithms and Protocols
1996:
1951:
1913:
1305:
564:
525:
61:
for specifying the boundary between separate, independent regions in
27:
Characters that specify the boundary between regions in a data stream
1098:, alternate delimiters may also be used to simplify the syntax for
1012:
qq(Nancy doesn't want to say "Hello World!" anymore.)
1003:
qq@Nancy doesn't want to say "Hello World!" anymore.@
994:
qq^Nancy doesn't want to say "Hello World!" anymore.^
1499:
1304:
formats. The technique employs a special encoding scheme, such as
568:
497:
467:
74:
40:
1251:
1107:
1057:
1045:
983:
912:
853:
821:
648:
543:
533:
529:
2265:(an example usage of ASCII armoring in encryption applications)
2235:(an example usage of ASCII armoring in encryption applications)
883:"Nancy said \"Hello World!\" to the crowd."
1239:
644:
2054:
describing solutions for embedded-delimiter problems p. 472.
2064:
Discussion on ASCII Delimited Text vs CSV and Tab
Delimited
1124:'Nancy said "Hello World!" to the crowd.'
923:'Nancy said "Hello World!" to the crowd.'
744:
Between sections of data. Not needed in simple data files.
830:
text becomes difficult to parse through regular expression
2158:
Computational
Linguistics and Intelligent Text Processing
1072:
Some programming and computer languages allow the use of
864:"Nancy said \x22Hello World!\x22 to the crowd."
852:
that include a doublequote (") character. For example in
96:, delimiters are often used to specify the scope of an
1812:
1810:
1628:
808:
One method for avoiding delimiter collision is to use
2160:. Oxford Oxfordshire: Oxford University Press. 2001.
1898:
Describes single-line and multi-line comments. p. 72.
140:
110:
45:
A stylistic depiction of values inside of a so-named
1188:# match using alternate regular expression delimiter
130:") and as a pair of opposing-looking symbols (e.g.,
2246:
1853:
158:
122:
1703:
1701:
1699:
786:Between fields of a record, or members of a row.
291:Brackets (commonly used to denote a subscript).
100:, and can occur both as isolated symbols (e.g.,
2186:. Oxford Oxfordshire: Oxford University Press.
2042:. Oxford Oxfordshire: Oxford University Press.
2016:. Oxford Oxfordshire: Oxford University Press.
1886:. Oxford Oxfordshire: Oxford University Press.
1860:. Oxford Oxfordshire: Oxford University Press.
1826:. Oxford Oxfordshire: Oxford University Press.
1792:. Oxford Oxfordshire: Oxford University Press.
1766:. Oxford Oxfordshire: Oxford University Press.
1601:. Oxford Oxfordshire: Oxford University Press.
236:Common examples of bracket delimiters include:
1389:To store arbitrary text in an HTML attribute,
1020:all produce the desired output through use of
839:they do not protect against injection attacks
1804:Describes syntax and delimiters used in HTML.
8:
2273:
2271:
2077:Automating InDesign with Regular Expressions
1872:Describes XML processing instruction. p. 21.
1365:"BookTitle:Nancy doesn't say "
1224:# same as previous, but different delimiter.
415:Comparison of programming languages (syntax)
153:
141:
1964:: CS1 maint: numeric names: authors list (
1206:# same as previous, but different delimiter
975:Configurable alternative quoting delimiters
1940:The set of control characters for ISO 646
1621:
1619:
139:
109:
2172:Describes whitespace delimiters. p. 258.
1319:This technique is used, for example, in
683:
476:
419:
238:
1536:
1338:The first code fragment shows a simple
827:, leading to sequences such as "\/\/");
2249:Open Source for Windows Administrators
1957:
200:uses a comma as the delimiter between
1980:American National Standards Institute
1856:Sams Teach Yourself Xml in 10 Minutes
1738:Computer-Aided Reasoning: An Approach
651:to deploy such well-known attacks as
7:
2028:Describes use of control-z. p. 156,
208:indicator as the delimiter between
159:{\displaystyle \langle a,b\rangle }
73:. An example of a delimiter is the
796:as a field separator and ASCII 30
25:
2135:. Javvin Technologies Inc. 2005.
2118:In Ruby, these are indicated as
1764:Explorations in Computer Science
1382:This first code fragment is not
820:(due to use of \ to escape / in
392:to specify language boundaries.
1680:Programming Language Pragmatics
1555:from the original on 2013-03-05
375:in some programming languages.
1652:Friedl, Jeffrey E. F. (2002).
1:
2208:Perl operators and precedence
2184:Mastering Regular Expressions
2040:Mastering Regular Expressions
875:produces the same output as:
57:is a sequence of one or more
2100:Yukihiro, Matsumoto (2001).
1715:(Third ed.). O'Reilly.
1626:de Moor, Georges J. (1993).
1257:Here is an example in perl:
736:INFORMATION SEPARATOR THREE
2312:The Art of Unix Programming
1985:ASCII graphic character set
1711:; Orwant, Jon (July 2000).
1678:Scott, Michael Lee (1999).
1090:Regular expression examples
900:numeric character reference
715:INFORMATION SEPARATOR FOUR
460:Field and Record delimiters
225:using the CSV file format.
189:Field and record delimiters
77:character, which acts as a
2362:
2133:Network Protocols Handbook
1510:Delimiter-separated values
1148:# match one or more vowels
1087:
939:Padding quoting delimiters
935:types of quotation marks.
896:character entity reference
818:leaning toothpick syndrome
778:INFORMATION SEPARATOR ONE
757:INFORMATION SEPARATOR TWO
29:
2346:String (computer science)
2245:Gross, Christian (2005).
2120:general delimited strings
1788:Dilligan, Robert (1998).
1597:Rohl, Jeffrey S. (1973).
1130:# specify a target string
1084:Regular expression syntax
1068:Whitespace or indentation
2182:Friedl, Jeffrey (2006).
2079:. O'Reilly. p. 11.
2038:Friedl, Jeffrey (2006).
2013:Posix Programmer's Guide
1882:Cabrera, Harold (2002).
1790:Computing in the Web Age
1461:
1426:
1395:
1344:
1259:
1155:
1115:
988:
963:
949:
917:
877:
858:
765:End of a record or row.
447:doublequote, singlequote
337:commonly used to denote
320:commonly used to denote
218:This specifies a simple
67:mathematical expressions
2253:. Charles River Media.
2223:. John Wiley and Sons.
2010:Lewine, Donald (1991).
1884:C# for Java Programmers
1736:Kaufmann, Matt (2000).
1545:"Definition: delimiter"
1476:"__VIEWSTATE"
1441:"__VIEWSTATE"
1410:"__VIEWSTATE"
1359:"__VIEWSTATE"
1285:This code would print:
906:Dual quoting delimiters
548:none (except in CP/M),
356:processing instructions
2341:Programming constructs
2075:Kahrel, Peter (2006).
1599:Programming in Fortran
1574:"What is a Delimiter?"
629:comma-separated values
160:
124:
83:comma-separated values
50:
47:comma-separated values
2308:Data File Metaformats
2278:Kalani, Amit (2004).
1852:Watt, Andrew (2003).
1074:whitespace delimiters
605:Position 28 (U+001C)
407:Programming languages
354:used to indicate XML
161:
125:
44:
1982:(December 1, 1975).
1937:(December 1, 1975).
1762:Meyer, Mark (2005).
1578:www.computerhope.com
1525:Tab-separated values
792:The use of ASCII 31
677:ASCII delimited text
657:cross-site scripting
600:Position 30 (U+001E)
595:Position 31 (U+001F)
278:Braces (also called
175:Declarative notation
138:
108:
2316:Eric Steven Raymond
1682:. Morgan Kaufmann.
889:### use escape char
825:regular expressions
617:Delimiter collision
612:Delimiter collision
123:{\displaystyle 1:4}
18:Delimiter collision
2219:Rhee, Man (2003).
2103:Ruby in a Nutshell
1470:"hidden"
1435:"hidden"
1404:"hidden"
1353:"hidden"
1096:regular expression
496:systems including
339:character literals
229:Bracket delimiters
220:flat-file database
156:
120:
51:
2193:978-0-596-52812-6
2167:978-3-540-41687-6
2049:978-0-596-52812-6
2023:978-0-937175-73-6
1893:978-1-931836-54-8
1867:978-0-672-32471-0
1833:978-0-596-10105-3
1799:978-0-306-45972-6
1773:978-0-7637-3832-7
1608:978-0-7190-0555-8
1505:Decimal separator
1028:are two that do.
810:escape characters
790:
789:
609:
608:
472:Control character
457:
456:
428:End of Statement
396:
395:
196:For example, the
81:in a sequence of
16:(Redirected from
2353:
2336:Pattern matching
2331:Markup languages
2295:
2293:
2275:
2266:
2264:
2252:
2242:
2236:
2234:
2216:
2210:
2205:
2199:
2197:
2179:
2173:
2171:
2154:
2148:
2146:
2129:
2123:
2117:
2097:
2091:
2090:
2072:
2066:
2061:
2055:
2053:
2035:
2029:
2027:
2007:
2001:
2000:
1990:
1976:
1970:
1969:
1963:
1955:
1945:
1931:
1925:
1924:
1922:
1921:
1905:
1899:
1897:
1879:
1873:
1871:
1859:
1849:
1843:
1837:
1818:Schwartz, Randal
1814:
1805:
1803:
1785:
1779:
1777:
1759:
1753:
1751:
1733:
1727:
1726:
1713:Programming Perl
1705:
1694:
1693:
1675:
1669:
1667:
1649:
1643:
1641:
1623:
1614:
1612:
1594:
1588:
1587:
1585:
1584:
1570:
1564:
1563:
1561:
1560:
1541:
1486:
1483:
1480:
1477:
1474:
1471:
1468:
1465:
1457:percent-encoding
1451:
1448:
1445:
1442:
1439:
1436:
1433:
1430:
1420:
1417:
1414:
1411:
1408:
1405:
1402:
1399:
1378:
1375:
1372:
1369:
1366:
1363:
1360:
1357:
1354:
1351:
1348:
1281:
1278:
1275:
1272:
1269:
1266:
1263:
1225:
1222:
1219:
1216:
1213:
1210:
1207:
1204:
1201:
1198:
1195:
1192:
1189:
1186:
1183:
1180:
1177:
1174:
1171:
1168:
1165:
1162:
1159:
1149:
1146:
1143:
1140:
1137:
1134:
1131:
1128:
1125:
1122:
1119:
1094:In specifying a
1038:content boundary
1032:Content boundary
1016:
1013:
1010:
1007:
1004:
1001:
998:
995:
992:
982:For example, in
970:
967:
956:
953:
927:
924:
921:
890:
887:
884:
881:
871:
868:
865:
862:
804:Escape character
798:Record separator
775:
761:record separator
754:
733:
712:
684:
659:, respectively.
598:RECORD SEPARATOR
477:
420:
385:
382:
368:
365:
351:
348:
334:
331:
317:
314:
301:
298:
288:
275:
272:
255:
252:
239:
165:
163:
162:
157:
129:
127:
126:
121:
21:
2361:
2360:
2356:
2355:
2354:
2352:
2351:
2350:
2321:
2320:
2304:
2299:
2298:
2290:
2277:
2276:
2269:
2261:
2244:
2243:
2239:
2231:
2218:
2217:
2213:
2206:
2202:
2194:
2181:
2180:
2176:
2168:
2156:
2155:
2151:
2143:
2131:
2130:
2126:
2114:
2099:
2098:
2094:
2087:
2074:
2073:
2069:
2062:
2058:
2050:
2037:
2036:
2032:
2024:
2009:
2008:
2004:
1988:
1978:
1977:
1973:
1956:
1943:
1933:
1932:
1928:
1919:
1917:
1907:
1906:
1902:
1894:
1881:
1880:
1876:
1868:
1851:
1850:
1846:
1840:string literals
1834:
1816:
1815:
1808:
1800:
1787:
1786:
1782:
1774:
1761:
1760:
1756:
1748:
1735:
1734:
1730:
1723:
1707:
1706:
1697:
1690:
1677:
1676:
1672:
1664:
1651:
1650:
1646:
1638:
1625:
1624:
1617:
1609:
1596:
1595:
1591:
1582:
1580:
1572:
1571:
1567:
1558:
1556:
1543:
1542:
1538:
1533:
1515:Escape sequence
1496:
1488:
1487:
1484:
1481:
1478:
1475:
1472:
1469:
1466:
1463:
1453:
1452:
1449:
1446:
1443:
1440:
1437:
1434:
1431:
1428:
1422:
1421:
1418:
1415:
1412:
1409:
1406:
1403:
1400:
1397:
1380:
1379:
1376:
1373:
1370:
1367:
1364:
1361:
1358:
1355:
1352:
1349:
1346:
1333:
1297:
1289:
1283:
1282:
1279:
1276:
1273:
1270:
1267:
1264:
1261:
1232:
1227:
1226:
1223:
1220:
1217:
1214:
1211:
1208:
1205:
1202:
1199:
1196:
1193:
1190:
1187:
1184:
1181:
1178:
1175:
1172:
1170:# target string
1169:
1166:
1163:
1160:
1157:
1151:
1150:
1147:
1144:
1141:
1138:
1135:
1132:
1129:
1126:
1123:
1120:
1117:
1092:
1086:
1070:
1034:
1022:quote operators
1018:
1017:
1014:
1011:
1008:
1005:
1002:
999:
996:
993:
990:
977:
972:
971:
968:
965:
958:
957:
954:
951:
941:
929:
928:
925:
922:
919:
908:
892:
891:
888:
885:
882:
879:
873:
872:
869:
866:
863:
860:
850:string literals
846:
844:Escape sequence
806:
773:
752:
740:group separator
731:
710:
679:
665:
637:vulnerabilities
614:
604:
599:
594:
401:
383:
380:
371:used to denote
366:
363:
349:
346:
332:
329:
322:string literals
315:
312:
299:
296:
287:
273:
270:
253:
250:
231:
216:
191:
183:
136:
135:
132:angled brackets
106:
105:
79:field delimiter
39:
28:
23:
22:
15:
12:
11:
5:
2359:
2357:
2349:
2348:
2343:
2338:
2333:
2323:
2322:
2319:
2318:
2303:
2302:External links
2300:
2297:
2296:
2288:
2267:
2259:
2237:
2229:
2211:
2200:
2192:
2174:
2166:
2149:
2141:
2124:
2112:
2092:
2085:
2067:
2056:
2048:
2030:
2022:
2002:
1971:
1935:ISO/TC 97/SC 2
1926:
1900:
1892:
1874:
1866:
1844:
1832:
1806:
1798:
1780:
1772:
1754:
1746:
1728:
1721:
1695:
1688:
1670:
1662:
1644:
1636:
1615:
1607:
1589:
1565:
1535:
1534:
1532:
1529:
1528:
1527:
1522:
1520:String literal
1517:
1512:
1507:
1502:
1495:
1492:
1462:
1427:
1396:
1374:anymore."
1345:
1332:
1329:
1301:ASCII armoring
1296:
1293:
1287:
1260:
1231:
1228:
1156:
1116:
1106:operations in
1085:
1082:
1069:
1066:
1062:Here documents
1033:
1030:
989:
976:
973:
964:
950:
940:
937:
918:
907:
904:
878:
859:
845:
842:
841:
840:
837:
834:
831:
828:
805:
802:
794:Unit separator
788:
787:
784:
782:unit separator
779:
776:
771:
767:
766:
763:
758:
755:
750:
746:
745:
742:
737:
734:
729:
725:
724:
721:
719:file separator
716:
713:
708:
704:
703:
700:
697:
694:
691:
678:
675:
664:
661:
613:
610:
607:
606:
603:FILE SEPARATOR
601:
596:
592:UNIT SEPARATOR
589:
588:ASCII/Unicode
585:
584:
581:
576:
571:
557:Classic Mac OS
553:
552:
546:
541:
536:
518:
517:
514:
509:
504:
490:
489:
486:
483:
480:
455:
454:
448:
445:
441:
440:
437:
434:
430:
429:
426:
425:String Literal
423:
400:
397:
394:
393:
386:
377:
376:
369:
360:
359:
352:
343:
342:
335:
326:
325:
318:
309:
308:
305:Angle brackets
302:
293:
292:
289:
284:
283:
280:curly brackets
276:
267:
266:
256:
247:
246:
243:
230:
227:
214:
190:
187:
182:
179:
155:
152:
149:
146:
143:
119:
116:
113:
36:digit grouping
26:
24:
14:
13:
10:
9:
6:
4:
3:
2:
2358:
2347:
2344:
2342:
2339:
2337:
2334:
2332:
2329:
2328:
2326:
2317:
2313:
2309:
2306:
2305:
2301:
2291:
2289:0-7897-2901-6
2285:
2281:
2274:
2272:
2268:
2262:
2260:1-58450-347-5
2256:
2251:
2250:
2241:
2238:
2232:
2230:0-470-85285-2
2226:
2222:
2215:
2212:
2209:
2204:
2201:
2195:
2189:
2185:
2178:
2175:
2169:
2163:
2159:
2153:
2150:
2144:
2142:0-9740945-2-8
2138:
2134:
2128:
2125:
2121:
2115:
2113:0-596-00214-9
2109:
2105:
2104:
2096:
2093:
2088:
2086:0-596-52937-6
2082:
2078:
2071:
2068:
2065:
2060:
2057:
2051:
2045:
2041:
2034:
2031:
2025:
2019:
2015:
2014:
2006:
2003:
1998:
1994:
1987:
1986:
1981:
1975:
1972:
1967:
1961:
1953:
1949:
1942:
1941:
1936:
1930:
1927:
1916:
1915:
1910:
1904:
1901:
1895:
1889:
1885:
1878:
1875:
1869:
1863:
1858:
1857:
1848:
1845:
1841:
1835:
1829:
1825:
1824:
1823:Learning Perl
1819:
1813:
1811:
1807:
1801:
1795:
1791:
1784:
1781:
1775:
1769:
1765:
1758:
1755:
1749:
1747:0-7923-7744-3
1743:
1739:
1732:
1729:
1724:
1722:0-596-00027-8
1718:
1714:
1710:
1704:
1702:
1700:
1696:
1691:
1689:1-55860-442-1
1685:
1681:
1674:
1671:
1665:
1663:0-596-00289-0
1659:
1655:
1648:
1645:
1639:
1637:90-5199-114-2
1633:
1630:. IOS Press.
1629:
1622:
1620:
1616:
1610:
1604:
1600:
1593:
1590:
1579:
1575:
1569:
1566:
1554:
1550:
1546:
1540:
1537:
1530:
1526:
1523:
1521:
1518:
1516:
1513:
1511:
1508:
1506:
1503:
1501:
1498:
1497:
1493:
1491:
1460:
1458:
1425:
1394:
1392:
1391:HTML entities
1387:
1385:
1343:
1341:
1336:
1330:
1328:
1326:
1322:
1317:
1315:
1311:
1307:
1302:
1294:
1292:
1286:
1258:
1255:
1253:
1249:
1245:
1241:
1237:
1236:Here document
1230:Here document
1229:
1154:
1114:
1111:
1109:
1105:
1101:
1097:
1091:
1083:
1081:
1079:
1075:
1067:
1065:
1063:
1059:
1055:
1051:
1047:
1042:
1039:
1031:
1029:
1027:
1023:
987:
985:
980:
974:
962:
948:
946:
938:
936:
934:
916:
914:
905:
903:
901:
897:
876:
857:
855:
851:
843:
838:
835:
832:
829:
826:
823:
819:
815:
814:
813:
811:
803:
801:
799:
795:
785:
783:
780:
777:
772:
769:
768:
764:
762:
759:
756:
751:
748:
747:
743:
741:
738:
735:
730:
727:
726:
722:
720:
717:
714:
709:
706:
705:
701:
698:
696:Unicode Name
695:
692:
690:
686:
685:
682:
676:
674:
671:
662:
660:
658:
654:
653:SQL injection
650:
646:
642:
638:
633:
630:
625:
623:
622:angle bracket
618:
611:
602:
597:
593:
590:
587:
586:
582:
580:
577:
575:
572:
570:
566:
562:
558:
555:
554:
551:
547:
545:
542:
540:
537:
535:
531:
527:
523:
520:
519:
515:
513:
510:
508:
505:
503:
499:
495:
492:
491:
487:
485:End of Record
484:
481:
479:
478:
475:
473:
469:
465:
461:
452:
449:
446:
443:
442:
438:
435:
432:
431:
427:
424:
422:
421:
418:
416:
412:
408:
404:
398:
391:
390:web templates
388:used in some
387:
379:
378:
374:
370:
362:
361:
357:
353:
345:
344:
340:
336:
328:
327:
323:
319:
311:
310:
306:
303:
295:
294:
290:
286:
285:
281:
277:
269:
268:
264:
260:
257:
249:
248:
244:
241:
240:
237:
234:
228:
226:
224:
221:
213:
211:
207:
203:
199:
194:
188:
186:
180:
178:
176:
172:
167:
150:
147:
144:
133:
117:
114:
111:
103:
99:
95:
90:
88:
84:
80:
76:
72:
68:
64:
60:
56:
48:
43:
37:
33:
19:
2279:
2248:
2240:
2220:
2214:
2203:
2183:
2177:
2157:
2152:
2132:
2127:
2119:
2106:. O'Reilly.
2102:
2095:
2076:
2070:
2059:
2039:
2033:
2012:
2005:
1984:
1974:
1939:
1929:
1918:. Retrieved
1912:
1903:
1883:
1877:
1855:
1847:
1822:
1789:
1783:
1763:
1757:
1740:. Springer.
1737:
1731:
1712:
1679:
1673:
1656:. O'Reilly.
1653:
1647:
1627:
1598:
1592:
1581:. Retrieved
1577:
1568:
1557:. Retrieved
1548:
1539:
1489:
1454:
1423:
1388:
1381:
1371:World!"
1337:
1334:
1318:
1314:doublequotes
1298:
1290:
1284:
1280:ENDOFHEREDOC
1268:ENDOFHEREDOC
1256:
1244:bash scripts
1233:
1152:
1112:
1104:substitution
1103:
1099:
1093:
1071:
1053:
1043:
1037:
1035:
1019:
981:
978:
959:
945:Visual Basic
942:
932:
930:
909:
893:
874:
870:### use \x22
856:, the code:
847:
807:
791:
699:Common Name
680:
669:
666:
634:
626:
624:character.
616:
615:
488:End of File
482:End of Field
463:
459:
458:
410:
406:
405:
402:
245:Description
235:
232:
217:
195:
192:
184:
168:
91:
78:
71:data streams
54:
52:
32:Word divider
1709:Wall, Larry
1384:well-formed
1312:, i.e. for
1295:ASCII armor
1078:indentation
451:end of line
436:singlequote
399:Conventions
259:Parentheses
242:Delimiters
206:end-of-line
171:data stream
94:mathematics
2325:Categories
1920:2023-02-10
1838:Describes
1583:2020-08-09
1559:2019-11-25
1531:References
1218:m!http://!
1200:m{http://}
1182:m@http://@
1088:See also:
439:semicolon
198:CSV format
87:Morse code
63:plain text
59:characters
2198:page 472.
1464:<input
1429:<input
1398:<input
1347:<input
1321:Microsoft
1212:$ string1
1194:$ string1
1176:$ string1
1158:$ string1
1136:$ string1
1118:$ string1
1050:timestamp
663:Solutions
561:Apple DOS
550:Control-Z
494:Unix-like
204:, and an
154:⟩
142:⟨
98:operation
69:or other
55:delimiter
1991:. ITSCJ/
1960:citation
1946:. ITSCJ/
1820:(2005).
1553:Archived
1494:See also
1340:HTML tag
1310:escaping
1265:<<
1054:See e.g.
641:exploits
464:See also
411:See also
373:comments
181:Overview
2282:. Que.
2122:. p. 11
1331:Example
1325:ASP.NET
693:Symbol
632:files.
522:Windows
502:AmigaOS
444:Python
433:Pascal
210:records
2286:
2257:
2227:
2190:
2164:
2139:
2110:
2083:
2046:
2020:
1997:ISO-IR
1952:ISO-IR
1914:GitHub
1890:
1864:
1830:
1796:
1770:
1744:
1719:
1686:
1668:p. 319
1660:
1642:p. 141
1634:
1605:
1479:value=
1444:value=
1413:value=
1362:value=
1306:base64
702:Usage
687:ASCII
670:ad hoc
565:ProDOS
526:MS-DOS
453:(EOL)
261:. The
202:fields
2310:from
2147:p. 26
1989:(PDF)
1944:(PDF)
1500:CDATA
1485:/>
1473:name=
1467:type=
1450:/>
1438:name=
1432:type=
1419:/>
1407:name=
1401:type=
1377:/>
1368:Hello
1356:name=
1350:type=
1262:print
1209:print
1191:print
1173:print
1133:print
1100:match
1009:print
1000:print
991:print
966:print
952:print
920:print
880:print
861:print
583:none
569:GS/OS
516:none
498:macOS
468:ASCII
384:%>
381:<%
350:?>
347:<?
223:table
102:colon
75:comma
2284:ISBN
2255:ISBN
2225:ISBN
2188:ISBN
2162:ISBN
2137:ISBN
2108:ISBN
2081:ISBN
2044:ISBN
2018:ISBN
1993:IPSJ
1966:link
1948:IPSJ
1888:ISBN
1862:ISBN
1828:ISBN
1794:ISBN
1768:ISBN
1752:p. 3
1742:ISBN
1717:ISBN
1684:ISBN
1658:ISBN
1632:ISBN
1603:ISBN
1252:perl
1250:and
1248:ruby
1142:m/+/
1108:Perl
1102:and
1058:MIME
1048:, a
1046:UUID
1026:Ruby
984:Perl
933:both
913:Perl
854:Perl
822:Perl
655:and
649:HTML
647:and
639:and
544:CRLF
534:CP/M
530:OS/2
300:>
297:<
263:Lisp
104:in "
34:and
2314:by
1999:-6.
1954:-1.
1455:Or
1323:'s
1240:PHP
1076:or
1064:).
902:).
770:31
749:30
728:29
707:28
689:Dec
645:SQL
574:Tab
539:Tab
507:Tab
474:).
417:).
282:).
166:).
134:in
92:In
2327::
2270:^
1995:.
1962:}}
1958:{{
1950:.
1911:.
1809:^
1698:^
1618:^
1576:.
1551:.
1547:.
1459::
1316:.
1246:,
1242:,
1234:A
1215:=~
1197:=~
1179:=~
1139:=~
1110:.
1060:,
1056:,
1036:A
986::
915::
898:,
579:CR
567:,
563:,
559:,
532:,
528:,
524:,
512:LF
500:,
470:,
466:,
413:,
367:*/
364:/*
358:.
341:.
324:.
307:.
212::
173:.
89:.
65:,
53:A
2292:.
2263:.
2233:.
2196:.
2170:.
2145:.
2116:.
2089:.
2052:.
2026:.
1968:)
1923:.
1896:.
1870:.
1842:.
1836:.
1802:.
1776:.
1750:.
1725:.
1692:.
1666:.
1640:.
1611:.
1586:.
1562:.
1271:;
1221:;
1203:;
1185:;
1167:;
1161:=
1145:;
1127:;
1121:=
1015:;
1006:;
997:;
926:;
886:;
867:;
774:␟
753:␞
732:␝
711:␜
462:(
409:(
333:'
330:'
316:"
313:"
274:}
271:{
254:)
251:(
151:b
148:,
145:a
118:4
115::
112:1
38:.
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.