Circumflex accentLowercase e with circumflex
ASCII 136 is ˆ on Windows and ê in old DOS.
ˆ (Circumflex Accent) is byte 136 in Windows-1252, Unicode U+02C6. It's the accent by itself as a spacing character, and it's easy to mistake for the ASCII caret ^ (0x5E). Only the caret works as an operator, so 2ˆ3 in Excel or a ˆ in code is just an unknown character. It also won't sit on a letter: for a statistics hat like x̂ you need the combining circumflex U+0302 after the x. Its small tilde sibling ˜ is byte 152. In UTF-8 it's CB 86, garbled as ˆ. The HTML entity is ˆ.
ê (Small E with Circumflex) is byte 136 in code page 437, the original IBM PC character set, and maps to Unicode U+00EA. Windows-1252 has the circumflex accent ˆ on its own at 136, so French DOS text read as Windows-1252 turns fête into fˆte, as if the accent slid off its letter. Code page 850 kept ê at 136 too.
#include <stdio.h>int main(void) {/* On Windows (code page 1252) byte 136 is ˆ.Modern terminals expect UTF-8, so print the code point, not the byte. */printf("\u02C6\n"); /* UTF-8: CB 86 */unsigned char b = 136; /* the raw Windows-1252 byte */printf("%d 0x%02X\n", b, b); /* 136 0x88 */return 0;}
#include <stdio.h>int main(void) {/* Byte 136 is ê only on a console using code page 437(chcp 437 on Windows, or DOSBox). On a UTF-8 terminal thelone byte 0x88 is invalid and prints as garbage, often �. */putchar(136);/* char is signed on x86, so a plain char holding 0x88 is -120.Use unsigned char when you compare or index by byte value. */char c = (char)136;unsigned char u = 136;printf("\n%d %d\n", c, u); /* -120 136 *//* Portable: print the Unicode character as UTF-8 instead. */printf("\u00EA\n"); /* C3 AA */return 0;}
ê is also ASCII 234 on Windows, which has the full guide.
Some PDFs draw the caret with the font's circumflex accent, so copying gives ˆ (U+02C6) instead of ^ and the pasted code breaks. The tilde often suffers the same way and arrives as ˜. Swap both back before running anything, for example in Python with `code.replace('\u02c6', '^').replace('\u02dc', '~')`.
Every ê in it lost its letter and kept only the accent. In code page 437 ê is byte 136, and Windows-1252 reads that byte as a lone circumflex. The file itself is fine, it just needs decoding as DOS text. In Node, the iconv-lite package does it: `iconv.decode(fs.readFileSync('old.txt'), 'cp437')`.
Every ê in it lost its letter and kept only the accent. In code page 437 ê is byte 136, and Windows-1252 reads that byte as a lone circumflex. The file itself is fine, it just needs decoding as DOS text. In Node, the iconv-lite package does it: `iconv.decode(fs.readFileSync('old.txt'), 'cp437')`.