{"id":3604,"date":"2023-05-01T13:49:37","date_gmt":"2023-05-01T12:49:37","guid":{"rendered":"https:\/\/pmortensen.eu\/world2\/?p=3604"},"modified":"2025-10-21T13:36:14","modified_gmt":"2025-10-21T12:36:14","slug":"unicode-blues-in-c-and-similar-languages-after-copying-from-web-pages-skype-chat-etc","status":"publish","type":"post","link":"https:\/\/pmortensen.eu\/world2\/2023\/05\/01\/unicode-blues-in-c-and-similar-languages-after-copying-from-web-pages-skype-chat-etc\/","title":{"rendered":"Unicode blues in C++ and similar languages (after copying from web pages, Skype chat, etc.)\u2014&#8221;error: stray \\342&#8243;"},"content":{"rendered":"<p>The short version: Compiler errors of the type <em>&#8220;error: stray \\342&#8221;<\/em> are not mysterious at all. They can easily be analysed directly, without <strong><em>any<\/em><\/strong> guesswork required whatsoever. Triplets or doublets of errors, starting with 342 (<a href=\"https:\/\/en.wiktionary.org\/wiki\/octal#Adjective\">octal<\/a>) or 302 (also octal), are converted to hexadecimal, searched for in Unicode <a href=\"https:\/\/en.wikipedia.org\/wiki\/Code_point\">code point<\/a> tables, and a regular expression is developed for searching for (and replacing) them directly in any modern text editor, incl. for invisible ones, like <a href=\"https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8192&#038;number=128\">ZERO WIDTH SPACE<\/a>. Thus <strong><em>retyping code is not necessary<\/em><\/strong> nor is trying to guess by visual inspection (some are also not possible to visually distinguish or are literally invisible). It also scales: No matter how large the file is, the culprits are easily found en masse (the compiler also provides the information, but it may be overwhelming and it is much less direct as one has to interpret the doublets or triplets manually).<\/p>\n<p>Also, in this blog post, as a shortcut, the most common ones encountered in the wild have been mapped, so it is not necessary to analyse the error numbers and\/or use <a href=\"https:\/\/en.wikipedia.org\/wiki\/Hex_dump\">hex dumps<\/a> (a straightforward, but tedious process). They can be detected by using the following regular expression in any modern text editor or IDE:<\/p>\n<p><!-- Note: We have several places to update, including this\n           regular expression --><\/p>\n<p>\\x{00A0}|\\x{00A6}|\\x{00AB}|\\x{00AE}|\\x{00BB}|\\x{00CD}|\\x{00E4}|\\x{037E}|\\x{2003}|\\x{2009}|\\x{200B}|\\x{200C}|\\x{2013}|\\x{2014}|\\x{2018}|\\x{2019}|\\x{201C}|\\x{201D}|\\x{2028}|\\x{2029}|\\x{202A}|\\x{202B}|\\x{202C}|\\x{2060}|\\x{21B5}|\\x{2011}|\\x{2212}|\\x{2217}|\\x{2260}|\\x{FEFF}|\\x{FF1A}|\\x{FFFC}|\\x{FFFD}<\/p>\n<p>That is for NO-BREAK SPACE, BROKEN BAR, LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, REGISTERED SIGN, RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK, LATIN CAPITAL LETTER I WITH ACUTE, LATIN SMALL LETTER A WITH DIAERESIS, GREEK QUESTION MARK, EM SPACE, THIN SPACE, ZERO WIDTH SPACE, ZERO WIDTH NON-JOINER, EN DASH, EM DASH, LEFT SINGLE QUOTATION MARK, RIGHT SINGLE QUOTATION MARK, LEFT DOUBLE QUOTATION MARK, RIGHT DOUBLE QUOTATION MARK, LINE SEPARATOR, PARAGRAPH SEPARATOR, LEFT-TO-RIGHT EMBEDDING, RIGHT-TO-LEFT EMBEDDING, POP DIRECTIONAL FORMATTING, WORD JOINER, DOWNWARDS ARROW WITH CORNER LEFTWARDS, MINUS SIGN, ASTERISK OPERATOR, NOT EQUAL TO, ZERO WIDTH NO-BREAK SPACE, FULLWIDTH COLON, OBJECT REPLACEMENT CHARACTER, REPLACEMENT CHARACTER, respectively (32).<\/p>\n<p>Note: The regular expression notation is different in Visual Studio Code (and probably others): <\/p>\n<p>\\u00A0|\\u00A6|\\u00AB|\\u00AE|\\u00BB|\\u00CD|\\u00E4|\\u037E|\\u2003|\\u2009|\\u200B|\\u200C|\\u2013|\\u2014|\\u2018|\\u2019|\\u201C|\\u201D|\\u2028|\\u2029|\\u202A|\\u202B|\\u202C|\\u2060|\\u21B5|\\u2011|\\u2212|\\u2217|\\u2260|\\uFEFF|\\uFF1A|\\uFFFC|\\uFFFD<\/p>\n<p>This also works when the stray error numbers are not available or incomplete (though the full source should be available).<\/p>\n<p><!--\n    I most cases Recognise the signatures 342 and 302. (octal). Another signature is that there are three (three bytes in the <a href=\"https:\/\/en.wikipedia.org\/wiki\/UTF-8\">UTF-8<\/a> byte sequence) or divisible by 3 (6, 9, 12, etc.)\n--><\/p>\n<p><!-- A direct method. --><\/p>\n<p><!--\n<a href=\"https:\/\/en.wikipedia.org\/wiki\/Skype\">Skype<\/a>\n--><\/p>\n<h2>Introduction<\/h2>\n<p>Compilation of innocently looking C++ (or C) source code may result in errors like:<\/p>\n<pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\r\nsomeFile.c:42: error: stray \u2018\\302\u2019 in program\r\nsomeFile.c:42: error: stray \u2018\\244\u2019 in program\r\n<\/pre>\n<h2>Analysis<\/h2>\n<h3 id=\"Hexadecimal_dump_with_proper_hexadecimal_numbers\">Hex dump<\/h3>\n<p>Here, Linux&#8217; command-line tool &#8216;<a href=\"https:\/\/linux.die.net\/man\/1\/hexdump\">hexdump<\/a>&#8216; is used, but any <a href=\"https:\/\/en.wikipedia.org\/wiki\/Hex_dump\">hex dump<\/a> tool will do.<\/p>\n<p>&#8220;80&#8221; (option -n) is the number of characters to dump. <\/p>\n<p>0x60, decimal 96 (option -s) is the offset into the file (for example, if the offset is past the end of the file, the output will be empty&#8230;). Set it to 0x0 for the beginning of the file.<\/p>\n<pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\r\nclear ; hexdump -s 0x60 -n 80 -e '&quot;%08.8_ax  &quot; 8\/1 &quot;%02X &quot; &quot;  &quot; 8\/1 &quot;%02X &quot; &quot;  |&quot;'    -e '16\/1 &quot;%_p&quot;&quot;|\\n&quot;'  '\/home\/mortensen\/temp2\/2023-04-18\/Strange.txt'\r\n<\/pre>\n<h2>Positively identifying the strange characters in a text editor or IDE <\/h2>\n<p>This can be done by using regular expressions in any modern text editor or IDE (but not, for example, in the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Arduino_IDE\">Arduino IDE<\/a>).<\/p>\n<p><!--\nFor example, XXX\n--><\/p>\n<p>This is particularly important for longer documents and source code.<\/p>\n<p><!--\nXXXX\n--><\/p>\n<p>Note: in Visual Studio Code (and probably others) the notation is different: <em>\\u00A0<\/em> (instead of <em>\\x{00A0}<\/em>) <\/p>\n<h3>Combined regular expression<\/h3>\n<pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\r\n\\x{00A0}|\\x{00A6}|\\x{00AB}|\\x{00AE}|\\x{00BB}|\\x{00E4}|\\x{2003}|\\x{2009}|\\x{200B}|\\x{200C}|\\x{2013}|\\x{2014}|\\x{2018}|\\x{2019}|\\x{201C}|\\x{201D}|\\x{2028}|\\x{2029}|\\x{202A}|\\x{202B}|\\x{202C}|\\x{2060}|\\x{21B5}|\\x{2011}|\\x{2212}|\\x{2217}|\\x{2260}|\\x{FEFF}|\\x{FF1A}|\\x{FFFC}|\\x{FFFD}\r\n<\/pre>\n<h2>NO-BREAK SPACE<\/h2>\n<pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\r\n\\x{00A0}\r\n<\/pre>\n<h2>Table of common Unicode characters causing this problem (actually encountered in the wild)<\/h2>\n<p>This table can used to quickly identify the offending Unicode from the &#8220;error: Stray&#8221; compiler errors. The third number in a triplet is the most specific. For example, &#8220;230&#8221; for U+2018 (LEFT SINGLE QUOTATION MARK).<\/p>\n<p>Note that to search for hexadecimal UTF-8 sequences, each number should be preceded by &#8220;0x&#8221; to directly search in the content of the table. Example: A hexadecimal dump may have &#8220;E2 80 9C&#8221;. Use &#8220;0xE2 0x80 0x9C&#8221; to search in the table (with a single space separating the numbers).<\/p>\n<pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\r\nOct  Dec  Hex   Start of    Start of sequence,                   Comment fragment\r\n                seq, type   Unicode code point\r\n---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\r\n240  160  0xA0  CE\/CP-1250  U+00A0  NO-BREAK SPACE\r\n\r\n302  194  0xC2  UTF-8       U+00A0  NO-BREAK SPACE               194 160 (decimal) \u2192 0xC2 0xA0 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+00A0 ([NO-BREAK SPACE](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=156&amp;number=128)).\r\n240  160  0xA0                                                   302 240 (octal)   \u2192 0xC2 0xA0 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+00A0 ([NO-BREAK SPACE](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=156&amp;number=128)).\r\n\r\n                                               Alternative web site:\r\n                                                                 194 160 (decimal) \u2192 0xC2 0xA0 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+00A0 ([NO-BREAK SPACE](https:\/\/www.charset.org\/utf-8)).\r\n                                                                 302 240 (octal)   \u2192 0xC2 0xA0 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+00A0 ([NO-BREAK SPACE](https:\/\/www.charset.org\/utf-8)).\r\n\r\n302  194  0xC2  UTF-8       U+00A6  BROKEN BAR                   194 166 (decimal) \u2192 0xC2 0xA6 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+00A6 ([BROKEN BAR](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=128)).\r\n246  166  0xA6                                                   302 246 (octal)   \u2192 0xC2 0xA6 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+00A6 ([BROKEN BAR](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=128)).\r\n\r\n302  194  0xC2  UTF-8       U+00AB  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK  194 171 (decimal) \u2192 0xC2 0xAB (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+00AB ([LEFT-POINTING DOUBLE ANGLE QUOTATION MARK](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=128)).\r\n253  171  0xAB                                                                 302 246 (octal)   \u2192 0xC2 0xAB (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+00AB ([LEFT-POINTING DOUBLE ANGLE QUOTATION MARK](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=128)).\r\n\r\n302  194  0xC2  UTF-8       U+00BB  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK  194 187 (decimal) \u2192 0xC2 0xBB (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+00BB ([RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=128)).\r\n273  187  0xBB                                                                  302 273 (octal)   \u2192 0xC2 0xBB (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+00BB ([RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=128)).\r\n\r\n302  194  0xC2  UTF-8       U+00AE  REGISTERED SIGN                            194 174 (decimal) \u2192 0xC2 0xAE (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+00AE ([REGISTERED SIGN](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=128)).\r\n256  174  0xAE                                                                 302 256 (octal)   \u2192 0xC2 0xAE (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+00AE ([REGISTERED SIGN](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=128)).\r\n\r\n========================================================================================================\r\n\r\nStart of \\342 \\200 series:\r\n\r\n342  226  0xE2  UTF-8       U+2003  EM SPACE                     226 128 131 (decimal) \u2192 0xE2 0x80 0x83 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2003 ([EM SPACE](https:\/\/www.charset.org\/utf-8\/9)).\r\n200  128  0x80                                                   342 200 203 (octal)   \u2192 0xE2 0x80 0x83 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2003 ([EM SPACE](https:\/\/www.charset.org\/utf-8\/9)).\r\n203  131  0x83\r\n\r\n342  226  0xE2  UTF-8       U+2009  THIN SPACE                   226 128 137 (decimal) \u2192 0xE2 0x80 0x89 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2009 ([THIN SPACE](https:\/\/www.charset.org\/utf-8\/9)).\r\n200  128  0x80                                                   342 200 211 (octal)   \u2192 0xE2 0x80 0x89 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2009 ([THIN SPACE](https:\/\/www.charset.org\/utf-8\/9)).\r\n211  137  0x89\r\n\r\n342  226  0xE2  UTF-8       U+200B  ZERO WIDTH SPACE             226 128 139 (decimal) \u2192 0xE2 0x80 0x8B (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+200B ([ZERO WIDTH SPACE](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8192&amp;number=128)).\r\n200  128  0x80                                                   342 200 213 (octal)   \u2192 0xE2 0x80 0x8B (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+200B ([ZERO WIDTH SPACE](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8192&amp;number=128)).\r\n213  139  0x8B\r\n                                               Alternative web site:\r\n                                                                 226 128 139 (decimal) \u2192 0xE2 0x80 0x8B (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+200B ([ZERO WIDTH SPACE](https:\/\/www.charset.org\/utf-8\/9)).\r\n                                                                 342 200 213 (octal)   \u2192 0xE2 0x80 0x8B (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+200B ([ZERO WIDTH SPACE](https:\/\/www.charset.org\/utf-8\/9)).\r\n\r\n342  226  0xE2  UTF-8       U+200C  ZERO WIDTH NON-JOINER        226 128 140 (decimal) \u2192 0xE2 0x80 0x8C (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+200C ([ZERO WIDTH NON-JOINER](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8704&amp;number=128)).\r\n200  128  0x80                                                   342 200 214 (octal)   \u2192 0xE2 0x80 0x8C (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+200C ([ZERO WIDTH NON-JOINER](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8704&amp;number=128)).\r\n214  140  0x8C\r\n\r\n226  150  0x96  CE\/CP-1250  U+2013  EN DASH\r\n\r\n342  226  0xE2  UTF-8       U+2013  EN DASH                      226 128 147 (decimal) \u2192 0xE2 0x80 0x93 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2013 ([EN DASH](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8192&amp;number=128)).\r\n200  128  0x80                                                   342 200 223 (octal)   \u2192 0xE2 0x80 0x93 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2013 ([EN DASH](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8192&amp;number=128)).\r\n223  147  0x93\r\n\r\n  Note: 223 can also be the stand-alone CE\/CP-1250, corresponding to U+201C (LEFT DOUBLE QUOTATION MARK).\r\n\r\n342  226  0xE2  UTF-8       U+2014  EM DASH                      226 128 148 (decimal) \u2192 0xE2 0x80 0x94 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2014 ([EM DASH](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8192&amp;number=128)).\r\n200  128  0x80                                                   342 200 224 (octal)   \u2192 0xE2 0x80 0x94 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2014 ([EM DASH](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8192&amp;number=128)).\r\n224  148  0x94\r\n\r\n  Note: 224 can also be the stand-alone CE\/CP-1250, corresponding to U+201D (RIGHT DOUBLE QUOTATION MARK).\r\n\r\n221  145  0x91  CE\/CP-1250  U+2018  LEFT SINGLE QUOTATION MARK   [CE\/CP-1250 0x91](https:\/\/en.wikipedia.org\/wiki\/Windows-1250#Character_set) (145 (decimal), 221 (octal)), corresponding to Unicode code point U+2018 ([LEFT SINGLE QUOTATION MARK](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8212&amp;number=128)).\r\n\r\n342  226  0xE2  UTF-8       U+2018  LEFT SINGLE QUOTATION MARK   226 128 152 (decimal) \u2192 0xE2 0x80 0x98 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2018 ([LEFT SINGLE QUOTATION MARK](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8192&amp;number=128)).\r\n200  128  0x80                                                   342 200 230 (octal)   \u2192 0xE2 0x80 0x98 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2018 ([LEFT SINGLE QUOTATION MARK](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8704&amp;number=128)).\r\n230  152  0x98\r\n\r\n222  146  0x92  CE\/CP-1250  U+2019  RIGHT SINGLE QUOTATION MARK  [CE\/CP-1250 0x91](https:\/\/en.wikipedia.org\/wiki\/Windows-1250#Character_set) (145 (decimal), 221 (octal)), corresponding to Unicode code point U+2019 ([RIGHT SINGLE QUOTATION MARK](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8212&amp;number=128)).\r\n\r\n342  226  0xE2  UTF-8       U+2019  RIGHT SINGLE QUOTATION MARK  226 128 153 (decimal) \u2192 0xE2 0x80 0x98 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2019 ([RIGHT SINGLE QUOTATION MARK](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8212&amp;number=128)).\r\n200  128  0x80                                                   342 200 231 (octal)   \u2192 0xE2 0x80 0x98 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2019 ([RIGHT SINGLE QUOTATION MARK](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8212&amp;number=128)).\r\n231  153  0x99\r\n\r\n223  147  0x93  CE\/CP-1250  U+201C  LEFT DOUBLE QUOTATION MARK\r\n\r\n342  226  0xE2  UTF-8       U+201C  LEFT DOUBLE QUOTATION MARK   226 128 156 (decimal) \u2192 0xE2 0x80 0x9C (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+201C ([LEFT DOUBLE QUOTATION MARK](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8192&amp;number=128)).\r\n200  128  0x80                                                   342 200 234 (octal)   \u2192 0xE2 0x80 0x9C (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+201C ([LEFT DOUBLE QUOTATION MARK](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8192&amp;number=128)).\r\n234  156  0x9C\r\n                                               Alternative web site:\r\n                                                                 342 200 234 (octal)   \u2192 0xE2 0x80 0x9C (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+201C ([LEFT DOUBLE QUOTATION MARK](https:\/\/www.charset.org\/utf-8\/9)).\r\n\r\n224  148  0x94  CE\/CP-1250  U+201D  RIGHT DOUBLE QUOTATION MARK\r\n\r\n342  226  0xE2  UTF-8       U+201D  RIGHT DOUBLE QUOTATION MARK  226 128 157 (decimal) \u2192 0xE2 0x80 0x9D (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+201D ([RIGHT DOUBLE QUOTATION MARK](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8192&amp;number=128)).\r\n200  128  0x80                                                   342 200 235 (octal)   \u2192 0xE2 0x80 0x9D (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+201D ([RIGHT DOUBLE QUOTATION MARK](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8192&amp;number=128)).\r\n235  157  0x9D\r\n                                               Alternative web site:\r\n                                                                 226 128 157 (decimal) \u2192 0xE2 0x80 0x9D (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+201D ([RIGHT DOUBLE QUOTATION MARK](https:\/\/www.charset.org\/utf-8\/9)).\r\n                                                                 342 200 235 (octal)   \u2192 0xE2 0x80 0x9D (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+201D ([RIGHT DOUBLE QUOTATION MARK](https:\/\/www.charset.org\/utf-8\/9)).\r\n\r\n342  226  0xE2  UTF-8       U+2028  LINE SEPARATOR               226 128 168 (decimal) \u2192 0xE2 0x80 0xA8 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2028 ([LINE SEPARATOR](https:\/\/www.charset.org\/utf-8\/9)).\r\n200  128  0x80                                                   342 200 250 (octal)   \u2192 0xE2 0x80 0xA8 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2028 ([LINE SEPARATOR](https:\/\/www.charset.org\/utf-8\/9)).\r\n250  168  0xA8\r\n\r\n342  226  0xE2  UTF-8       U+2029  PARAGRAPH SEPARATOR          226 128 169 (decimal) \u2192 0xE2 0x80 0xA9 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2029 ([PARAGRAPH SEPARATOR](https:\/\/www.charset.org\/utf-8\/9)).\r\n200  128  0x80                                                   342 200 251 (octal)   \u2192 0xE2 0x80 0xA9 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2029 ([PARAGRAPH SEPARATOR](https:\/\/www.charset.org\/utf-8\/9)).\r\n251  169  0xA9\r\n\r\n342  226  0xE2  UTF-8       U+202A  LEFT-TO-RIGHT EMBEDDING      226 128 170 (decimal) \u2192 0xE2 0x80 0xAA (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+202A ([LEFT-TO-RIGHT EMBEDDING](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8230&amp;number=128)).\r\n200  128  0x80                                                   342 200 252 (octal)   \u2192 0xE2 0x80 0xAA (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+202A ([LEFT-TO-RIGHT EMBEDDING](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8230&amp;number=128)).\r\n252  170  0xAA\r\n\r\n342  226  0xE2  UTF-8       U+202B  RIGHT-TO-LEFT EMBEDDING      226 128 171 (decimal) \u2192 0xE2 0x80 0xAB (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+202B ([RIGHT-TO-LEFT EMBEDDING](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8230&amp;number=128)).\r\n200  128  0x80                                                   342 200 253 (octal)   \u2192 0xE2 0x80 0xAB (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+202B ([RIGHT-TO-LEFT EMBEDDING](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8230&amp;number=128)).\r\n253  171  0xAB\r\n\r\n342  226  0xE2  UTF-8       U+202C  POP DIRECTIONAL FORMATTING   226 128 172 (decimal) \u2192 0xE2 0x80 0xAC (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+202C ([POP DIRECTIONAL FORMATTING](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8230&amp;number=128)).\r\n200  128  0x80                                                   342 200 254 (octal)   \u2192 0xE2 0x80 0xAC (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+202C ([POP DIRECTIONAL FORMATTING](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8230&amp;number=128)).\r\n254  172  0xAC\r\n\r\n========================================================================================================\r\n\r\nStart of \\342 \\20x series:\r\n\r\n342  226  0xE2  UTF-8       U+2060  WORD JOINER                  226 129 160 (decimal) \u2192 0xE2 0x81 0xA0 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2060 ([WORD JOINER](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8064)).\r\n201  129  0x81                                                   342 201 240 (octal)   \u2192 0xE2 0x81 0xA0 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2060 ([WORD JOINER](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8064)).\r\n240  160  0xA0\r\n\r\n342  226  0xE2  UTF-8       U+21B5  DOWNWARDS ARROW WITH CORNER LEFTWARDS  226 134 181 (decimal) \u2192 0xE2 0x86 0xB5 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+21B5 ([DOWNWARDS ARROW WITH CORNER LEFTWARDS](https:\/\/www.charset.org\/utf-8\/9)).\r\n206  134  0x86                                                             342 206 265 (octal)   \u2192 0xE2 0x86 0xB5 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+21B5 ([DOWNWARDS ARROW WITH CORNER LEFTWARDS](https:\/\/www.charset.org\/utf-8\/9)).\r\n265  181  0xB5\r\n\r\n342  226  0xE2  UTF-8       U+2011  NON-BREAKING HYPHEN          226 128 145 (decimal) \u2192 0xE2 0x80 0x91 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2011 ([NON-BREAKING HYPHEN](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8205&amp;number=128)).\r\n200  128  0x80                                                   342 200 221 (octal)   \u2192 0xE2 0x80 0x91 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2011 ([NON-BREAKING HYPHEN](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8205&amp;number=128)).\r\n221  145  0x91\r\n\r\n342  226  0xE2  UTF-8       U+2212  MINUS SIGN                   226 136 146 (decimal) \u2192 0xE2 0x88 0x92 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2212 ([MINUS SIGN](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8704&amp;number=128)).\r\n210  136  0x88                                                   342 210 222 (octal)   \u2192 0xE2 0x88 0x92 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2212 ([MINUS SIGN](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8704&amp;number=128)).\r\n222  146  0x92\r\n\r\n  Note: 222 can also be the stand-alone CE\/CP-1250, corresponding to U+2019 (RIGHT SINGLE QUOTATION MARK).\r\n\r\n                                               Alternative web site:\r\n                                                                 226 136 146 (decimal) \u2192 0xE2 0x88 0x92 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2212 ([MINUS SIGN](https:\/\/www.charset.org\/utf-8\/9)).\r\n                                                                 342 210 222 (octal)   \u2192 0xE2 0x88 0x92 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2212 ([MINUS SIGN](https:\/\/www.charset.org\/utf-8\/9)).\r\n\r\n342  226  0xE2  UTF-8       U+2217  ASTERISK OPERATOR            226 136 151 (decimal) \u2192 0xE2 0x88 0x97 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2217 ([ASTERISK OPERATOR](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8704&amp;number=128)).\r\n210  136  0x88                                                   342 210 227 (octal)   \u2192 0xE2 0x88 0x97 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2217 ([ASTERISK OPERATOR](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8704&amp;number=128)).\r\n227  151  0x97\r\n\r\n342  226  0xE2  UTF-8       U+2260  NOT EQUAL TO                 226 137 160 (decimal) \u2192 0xE2 0x89 0xA0 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2260 ([NOT EQUAL TO](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8704&amp;number=128)).\r\n211  137  0x89                                                   342 211 240 (octal)   \u2192 0xE2 0x89 0xA0 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+2260 ([NOT EQUAL TO](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8704&amp;number=128)).\r\n240  160  0xA0\r\n\r\n========================================================================================================\r\n\r\n357  239  0xEF  UTF-8       U+FEFF  ZERO WIDTH NO-BREAK SPACE    239 187 191 (decimal) \u2192 0xEF 0xBB 0xBF (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+FEFF ([ZERO WIDTH NO-BREAK SPACE](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=65272&amp;number=128)).\r\n273  187  0xBB                                                   357 273 277 (octal)   \u2192 0xEF 0xBB 0xBF (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+FEFF ([ZERO WIDTH NO-BREAK SPACE](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=65272&amp;number=128)).\r\n277  191  0xBF\r\n                                               Alternative web site:\r\n                                                                 239 187 191 (decimal) \u2192 0xEF 0xBB 0xBF (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+FEFF ([ZERO WIDTH NO-BREAK SPACE](https:\/\/www.charset.org\/utf-8\/66)).\r\n\r\n344  228  0xE4  CE\/CP-1250  U+00E4  LATIN SMALL LETTER A WITH DIAERESIS     https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=224\r\n\r\n303  195  0xC3  UTF-8       U+00E4  LATIN SMALL LETTER A WITH DIAERESIS     195 164 (decimal) \u2192 0xC3 0xA4 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+00E4 ([LATIN SMALL LETTER A WITH DIAERESIS](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=224)).\r\n244  164  0xA4                                                              303 244 (octal)   \u2192 0xC3 0xA4 (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+00E4 ([LATIN SMALL LETTER A WITH DIAERESIS](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=224)).\r\n\r\n357  239  0xEF  UTF-8       U+FF1A  FULLWIDTH COLON              239 188 154 (decimal) \u2192 0xEF 0xBC 0x9A (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+FF1A ([FULLWIDTH COLON](https:\/\/www.charset.org\/utf-8\/66)).\r\n274  188  0xBC                                                   357 274 232 (octal)   \u2192 0xEF 0xBC 0x9A (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+FF1A ([FULLWIDTH COLON](https:\/\/www.charset.org\/utf-8\/66)).\r\n232  154  0x9A\r\n\r\n357  239  0xEF  UTF-8       U+FFFC  OBJECT REPLACEMENT CHARACTER  239 191 188 (decimal) \u2192 0xEF 0xBF 0xBC (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+FFFC ([OBJECT REPLACEMENT CHARACTER](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=65526)).\r\n277  191  0xBF                                                    357 277 274 (octal)   \u2192 0xEF 0xBF 0xBC (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+FFFC ([OBJECT REPLACEMENT CHARACTER](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=65526)).\r\n274  188  0xBC\r\n\r\n357  239  0xEF  UTF-8       U+FFFD  REPLACEMENT CHARACTER         239 191 189 (decimal) \u2192 0xEF 0xBF 0xBD (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+FFFD ([REPLACEMENT CHARACTER](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=65526)).\r\n277  191  0xBF                                                    357 277 275 (octal)   \u2192 0xEF 0xBF 0xBD (hexadecimal) \u2192 UTF-8 sequence for Unicode code point U+FFFD ([REPLACEMENT CHARACTER](https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=65526)).\r\n275  189  0xBD\r\n<\/pre>\n<h2>Signatures<\/h2>\n<p>The UTF-8 sequences often start with:<\/p>\n<p>0xC2 (octal 302). Corresponding part of an error message: <em>&#8220;error: stray \u2018\\302\u2019 in program&#8221;<\/em>. <a href=\"https:\/\/stackoverflow.com\/search?tab=newest&#038;q=error%20stray%20302%20in%20program&#038;searchOn=3\">Stack Overflow search<\/a>. This covers the canonical question (mentioned above).<\/p>\n<p>0xE2 (octal 342). Corresponding part of an error message: <em>&#8220;error: stray \u2018\\342\u2019 in program&#8221;<\/em>. <a href=\"https:\/\/stackoverflow.com\/search?tab=newest&#038;q=error%20stray%20342%20in%20program&#038;searchOn=3\">Stack Overflow search<\/a>.<\/p>\n<p><a href=\"https:\/\/stackoverflow.com\/search?tab=newest&#038;q=error%20stray%20in%20program&#038;searchOn=3\">A less specific search<\/a> (for &#8220;error stray in program&#8221;).<\/p>\n<h2>Other languages than C or C++<\/h2>\n<h3>PowerShell<\/h3>\n<p>Real-world example: copying code through <a href=\"https:\/\/en.wikipedia.org\/wiki\/Skype\">Skype<\/a> chat may introduce <a href=\"https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?utf8=0x\">U+00A0<\/a> (NO-BREAK SPACE).<\/p>\n<p>This will result in a confusing error message. Something like:<\/p>\n<p><em>&#8220;\u00c2 : The term &#8216;\u00c2&#8217; is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.<br \/>\nAt C:\\UserData\\PowerShell\\BuildScripts\\TempTest.ps1:14&#8221;<\/em><\/p>\n<h2>Non UTF-8 sequences<\/h2>\n<h3>CE\/CP-1250<\/h3>\n<p>From the table, these are the character byte values in octal (and can thus be used as signatures in &#8220;stray&#8221; compiler error output), with their corresponding Unicode characters:<\/p>\n<p>221 (LEFT SINGLE QUOTATION MARK), 222 (RIGHT SINGLE QUOTATION MARK), 223 (LEFT DOUBLE QUOTATION MARK), 224 (RIGHT DOUBLE QUOTATION MARK), 226 (EN DASH), 240 (NO-BREAK SPACE), and 344 (LATIN SMALL LETTER A WITH DIAERESIS)<\/p>\n<h3>Binary<\/h3>\n<p>Common: \\177. It is not known if this is specific to a certain type of system or environment, e.g., binary files on Linux (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Executable_and_Linkable_Format\">ELF<\/a>). <\/p>\n<p>Indeed, the very first byte of an ELF file is 0x7F (octal 177, decimal 127), followed by the three (in ASCII) characters E, F, and F.<\/p>\n<p><!--\nSample\nXXXX\n--><\/p>\n<h2>Error messages<\/h2>\n<p>They vary depending on the programming language.<\/p>\n<h3>C\/C++<\/h3>\n<p><em>&#8220;someFile.c:42: error: stray \u2018\\302\u2019 in program&#8221;<\/em><\/p>\n<p>Note that the number is usually in <a href=\"https:\/\/en.wiktionary.org\/wiki\/octal#Adjective\">octal<\/a>, but they have also been observed in decimal (this may vary depending on the compiler or its configuration).<\/p>\n<h3>PowerShell<\/h3>\n<p><em>&#8220;\u00c2 : The term &#8216;\u00c2&#8217; is not recognized as the name of a cmdlet, function, script file, or operable program.&#8221;<\/em><\/p>\n<h2>Automation<\/h2>\n<p>In order to demystify it (and save time), these checks can added to build scripts and IDEs\/projects. Then an understandable and much better error message can be issued.<\/p>\n<p>For example, it might be included in Edit Overflow&#8217;s build script.<\/p>\n<h2>Stack Overflow<\/h2>\n<h3>Canonical question<\/h3>\n<p>For the origin of the offending characters by copying code from web pages, PDF documents, and chat (e.g. Skype Chat or Facebook Messenger), etc.:<\/p>\n<p><em><a href=\"https:\/\/stackoverflow.com\/questions\/19198332\/\">Compilation error: stray \u2018\\302\u2019 in program, etc.<\/a><\/em><\/p>\n<p>Canned comments:<\/p>\n<pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\r\nRelated: *[Compilation error: stray \u2018\\302\u2019 in program, etc.](https:\/\/stackoverflow.com\/questions\/19198332\/)*\r\n<\/pre>\n<pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\r\nThis is a ***very*** common error when copying code from web pages, [PDF](https:\/\/en.wikipedia.org\/wiki\/Portable_Document_Format) documents, through chat (e.g. [Skype Chat](https:\/\/en.wikipedia.org\/wiki\/Features_of_Skype#Skype_chat) or [Facebook Messenger](https:\/\/en.wikipedia.org\/wiki\/Facebook_Messenger)), etc. The canonical question is *[Compilation error: stray \u2018\\302\u2019 in program, etc.](https:\/\/stackoverflow.com\/questions\/19198332)*.\r\n<\/pre>\n<pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\r\nThe most common ones can ***positively*** (guesswork isn't required) ***be searched*** for (and replaced) using the regular expression \\x{00A0}|\\x{00A6}|\\x{00AB}|\\x{00AE}|\\x{00BB}|\\x{00E4}|\\x{2003}|\\x{2009}|\\x{200B}|\\x{200C}|\\x{2013}|\\x{2014}|\\x{2018}|\\x{2019}|\\x{201C}|\\x{201D}|\\x{2028}|\\x{2029}|\\x{202A}|\\x{202B}|\\x{202C}|\\x{2060}|\\x{21B5}|\\x{2011}|\\x{2212}|\\x{2217}|\\x{2260}|\\x{FEFF}|\\x{FF1A}|\\x{FFFC}|\\x{FFFD} (NO-BREAK SPACE, BROKEN BAR, LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, REGISTERED SIGN, RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK, LATIN SMALL LETTER A WITH DIAERESIS, EM SPACE, THIN SPACE, ZERO WIDTH SPACE, ZERO WIDTH NON-JOINER, EN DASH, EM DASH, LEFT SINGLE QUOTATION MARK, RIGHT SINGLE QUOTATION MARK, LEFT DOUBLE QUOTATION MARK, RIGHT DOUBLE QUOTATION MARK, LINE SEPARATOR, PARAGRAPH SEPARATOR, LEFT-TO-RIGHT EMBEDDING, RIGHT-TO-LEFT EMBEDDING, POP DIRECTIONAL FORMATTING, WORD JOINER, DOWNWARDS ARROW WITH CORNER LEFTWARDS, MINUS SIGN, ASTERISK OPERATOR, NOT EQUAL TO, ZERO WIDTH NO-BREAK SPACE, FULLWIDTH COLON, OBJECT REPLACEMENT CHARACTER, REPLACEMENT CHARACTER, etc.).\r\n<\/pre>\n<p>Rendered:<\/p>\n<ul>\n<li>Related: <em><a href=\"https:\/\/stackoverflow.com\/questions\/19198332\">Compilation error: stray \u2018\\302\u2019 in program, etc.<\/a><\/em><\/li>\n<li>This is a very common error when copying code from web pages, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Portable_Document_Format\">PDF<\/a> documents, through chat (e.g. <a href=\"https:\/\/en.wikipedia.org\/wiki\/Features_of_Skype#Skype_chat\">Skype Chat<\/a> or <a href=\"https:\/\/en.wikipedia.org\/wiki\/Facebook_Messenger\">Facebook Messenger<\/a>), etc. The canonical question is <em><a href=\"https:\/\/stackoverflow.com\/questions\/19198332\">Compilation error: stray \u2018\\302\u2019 in program, etc.<\/a><\/em>.<\/li>\n<li>The most common ones can <strong><em>positively<\/em><\/strong> (guesswork isn&#8217;t required) <strong><em>be searched<\/em><\/strong> for (and replaced) using the regular expression <strong><em>\\x{00A0}|\\x{00A6}|\\x{00AB}|\\x{00AE}|\\x{00BB}|\\x{00E4}|\\x{2003}|\\x{2009}|\\x{200B}|\\x{200C}|\\x{2013}|\\x{2014}|\\x{2018}|\\x{2019}|\\x{201C}|\\x{201D}|\\x{2028}|\\x{2029}|\\x{202A}|\\x{202B}|\\x{202C}|\\x{2060}|\\x{21B5}|\\x{2011}|\\x{2212}|\\x{2217}|\\x{2260}|\\x{FEFF}|\\x{FF1A}|\\x{FFFC}|\\x{FFFD}<\/em><\/strong> (NO-BREAK SPACE, BROKEN BAR, LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, REGISTERED SIGN, RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK, LATIN SMALL LETTER A WITH DIAERESIS, EM SPACE, THIN SPACE, ZERO WIDTH SPACE, ZERO WIDTH NON-JOINER, EN DASH, EM DASH, LEFT SINGLE QUOTATION MARK, RIGHT SINGLE QUOTATION MARK, LEFT DOUBLE QUOTATION MARK, RIGHT DOUBLE QUOTATION MARK, LINE SEPARATOR, PARAGRAPH SEPARATOR, LEFT-TO-RIGHT EMBEDDING, RIGHT-TO-LEFT EMBEDDING, POP DIRECTIONAL FORMATTING, WORD JOINER, DOWNWARDS ARROW WITH CORNER LEFTWARDS, MINUS SIGN, ASTERISK OPERATOR, NOT EQUAL TO, ZERO WIDTH NO-BREAK SPACE, FULLWIDTH COLON, OBJECT REPLACEMENT CHARACTER, REPLACEMENT CHARACTER, etc.).<\/li>\n<\/ul>\n<h3>Detection of new Stack Overflow questions<\/h3>\n<p>A relative efficient method is on-site search with &#8220;error stray in program&#8221;:<\/p>\n<p><a href=\"https:\/\/stackoverflow.com\/search?tab=newest&#038;q=error%20stray%20in%20program&#038;searchOn=3\">https:\/\/stackoverflow.com\/search?tab=newest&#038;q=error%20stray%20in%20program&#038;searchOn=3<\/a><\/p>\n<h2>Web site blues<\/h2>\n<p>On 2023-04-25, https:\/\/www.utf8-chartable.de\/ timed out. But it came back.<\/p>\n<h2>Resources<\/h2>\n<h3>Unicode lookup sites<\/h3>\n<p>https:\/\/www.utf8-chartable.de\/. Example: <a href=\"https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8192&#038;number=128\">https:\/\/www.utf8-chartable.de\/unicode-utf8-table.pl?start=8192&#038;number=128<\/a><\/p>\n<p>https:\/\/codepoints.net\/. Example: <a href=\"https:\/\/codepoints.net\/U+3F38\">https:\/\/codepoints.net\/U+3F38<\/a><\/p>\n<p>https:\/\/www.charset.org\/. Example: <a href=\"https:\/\/www.charset.org\/utf-8\/66\">https:\/\/www.charset.org\/utf-8\/66<\/a><\/p>\n<p>https:\/\/www.fileformat.info\/. Example: <a href=\"https:\/\/www.fileformat.info\/info\/unicode\/char\/2217\/index.htm\">https:\/\/www.fileformat.info\/info\/unicode\/char\/2217\/index.htm<\/a>. U+FEFF: <a href=\"https:\/\/www.fileformat.info\/info\/charset\/UTF-16\/list.htm?start=44205\">https:\/\/www.fileformat.info\/info\/charset\/UTF-16\/list.htm?start=44205<\/a>. U+FEFF may result in the signature doublet &#8220;stray \\377 &#8230; stray \\376&#8221;, possible only if UTF-16 is used (FF for <a href=\"https:\/\/en.wikipedia.org\/wiki\/Byte_order_mark\">BOM<\/a>, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Byte_order_mark#UTF-16\">UTF-16LE<\/a> (little-endian), octal 377, decimal 255, hexadecimal 0xFF). <a href=\"https:\/\/en.wikipedia.org\/wiki\/Byte_order_mark#UTF-8\">For UTF-8<\/a>, the signature is octal 357 (followed by 273 and 277), hexadecimal 0xEF 0xBB 0xBF, decimal 239 187 191.<\/p>\n<p><!-- Internal refs: \n\n    ID 10641 \n\n    \/home\/embo\/UserProf\/At_XP64\/Blog\/English1\/1004\/Outline_1004.txt\n    \n--><\/p>\n<p><!-- The end. END.  --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The short version: Compiler errors of the type &#8220;error: stray \\342&#8221; are not mysterious at all. They can easily be analysed directly, without any guesswork required whatsoever. Triplets or doublets of errors, starting with 342 (octal) or 302 (also octal), &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"more-link\" href=\"https:\/\/pmortensen.eu\/world2\/2023\/05\/01\/unicode-blues-in-c-and-similar-languages-after-copying-from-web-pages-skype-chat-etc\/\"> <span class=\"screen-reader-text\">Unicode blues in C++ and similar languages (after copying from web pages, Skype chat, etc.)\u2014&#8221;error: stray \\342&#8243;<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[16,18],"tags":[],"_links":{"self":[{"href":"https:\/\/pmortensen.eu\/world2\/wp-json\/wp\/v2\/posts\/3604"}],"collection":[{"href":"https:\/\/pmortensen.eu\/world2\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pmortensen.eu\/world2\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pmortensen.eu\/world2\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pmortensen.eu\/world2\/wp-json\/wp\/v2\/comments?post=3604"}],"version-history":[{"count":117,"href":"https:\/\/pmortensen.eu\/world2\/wp-json\/wp\/v2\/posts\/3604\/revisions"}],"predecessor-version":[{"id":6011,"href":"https:\/\/pmortensen.eu\/world2\/wp-json\/wp\/v2\/posts\/3604\/revisions\/6011"}],"wp:attachment":[{"href":"https:\/\/pmortensen.eu\/world2\/wp-json\/wp\/v2\/media?parent=3604"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pmortensen.eu\/world2\/wp-json\/wp\/v2\/categories?post=3604"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pmortensen.eu\/world2\/wp-json\/wp\/v2\/tags?post=3604"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}