Uppercase OE ligatureLowercase i with circumflex
ASCII 140 is Œ on Windows and î in old DOS.
Œ (Capital OE Ligature) is byte 140 in Windows-1252, Unicode U+0152. French treats it as required spelling, not decoration: Œuvre, Œdipe, and ŒUF on an all-caps menu. The catch is that ISO-8859-1 has neither Œ nor its lowercase œ, even though Latin-1 was meant to cover French. Windows-1252 slotted both into the 128–159 range, so a system that really uses strict Latin-1 can't store them, and a converter targeting it has to substitute OE or a question mark. In UTF-8 it's C5 92, which misreads as Å’. The lowercase œ is byte 156. The HTML entity is Œ.
î (Small I with Circumflex) is byte 140 in code page 437, the original IBM PC character set, and maps to Unicode U+00EE. Windows-1252 has the ligature Œ at 140, so French DOS text read as Windows-1252 turns île into Œle and dîner into dŒner. Code page 850 kept î at 140 too.
#include <stdio.h>int main(void) {/* On Windows (code page 1252) byte 140 is Œ.Modern terminals expect UTF-8, so print the code point, not the byte. */printf("\u0152\n"); /* UTF-8: C5 92 */unsigned char b = 140; /* the raw Windows-1252 byte */printf("%d 0x%02X\n", b, b); /* 140 0x8C */return 0;}
#include <stdio.h>int main(void) {/* Byte 140 is î only on a console using code page 437(chcp 437 on Windows, or DOSBox). On a UTF-8 terminal thelone byte 0x8C is invalid and prints as garbage, often �. */putchar(140);/* char is signed on x86, so a plain char holding 0x8C is -116.Use unsigned char when you compare or index by byte value. */char c = (char)140;unsigned char u = 140;printf("\n%d %d\n", c, u); /* -116 140 *//* Portable: print the Unicode character as UTF-8 instead. */printf("\u00EE\n"); /* C3 AE */return 0;}
î is also ASCII 238 on Windows, which has the full guide.
Unicode treats œ as a letter of its own, not a ligature of o and e, so no normalization form splits it. When your code then drops everything outside ASCII, œ disappears whole. Replace it yourself before stripping accents, for example `s.replace('œ', 'oe').replace('Œ', 'OE')`, and give æ the same treatment.
No. Modern British spelling writes the two letters separately, as in manoeuvre and oesophagus, and American spelling usually drops the o altogether: maneuver, esophagus. The joined œ survives in English mainly in French phrases like hors d'œuvre, and even there oe is the everyday spelling.
The file is code page 437, where î is byte 140, and it's being shown as Windows-1252, where 140 is Œ. A capital ligature in the middle of maŒtre is hard to miss, so at least this mix-up is easy to spot. In PHP, `iconv('CP437', 'UTF-8', file_get_contents('old.txt'))` converts it.
The file is code page 437, where î is byte 140, and it's being shown as Windows-1252, where 140 is Œ. A capital ligature in the middle of maŒtre is hard to miss, so at least this mix-up is easy to spot. In PHP, `iconv('CP437', 'UTF-8', file_get_contents('old.txt'))` converts it.