Lowercase oe ligaturePound sign
ASCII 156 is œ on Windows and £ in old DOS.
œ (Small OE Ligature) is byte 156 in Windows-1252, Unicode U+0153. French spells cœur and œuf with it. The traditional French AZERTY keyboard has no key for it, so French typists fall back on oe, and French content can end up with coeur and cœur side by side. Treat them as equal in search yourself, because neither Unicode normalization nor accent stripping turns one into the other. When UTF-8 (C5 93) is read as Windows-1252 it becomes Å“, with an opening curly quote stuck in the middle of the word: cÅ“ur. The capital Œ is byte 140. The HTML entity is œ.
£ (Pound Sign) is byte 156 in code page 437, the original IBM PC character set, and maps to Unicode U+00A3. Windows-1252 has the ligature œ at 156, so a DOS price list read as Windows-1252 shows œ25 instead of £25. Code page 850 kept £ at 156 too.
#include <stdio.h>int main(void) {/* On Windows (code page 1252) byte 156 is œ.Modern terminals expect UTF-8, so print the code point, not the byte. */printf("\u0153\n"); /* UTF-8: C5 93 */unsigned char b = 156; /* the raw Windows-1252 byte */printf("%d 0x%02X\n", b, b); /* 156 0x9C */return 0;}
#include <stdio.h>int main(void) {/* Byte 156 is £ only on a console using code page 437(chcp 437 on Windows, or DOSBox). On a UTF-8 terminal thelone byte 0x9C is invalid and prints as garbage, often �. */putchar(156);/* char is signed on x86, so a plain char holding 0x9C is -100.Use unsigned char when you compare or index by byte value. */char c = (char)156;unsigned char u = 156;printf("\n%d %d\n", c, u); /* -100 156 *//* Portable: print the Unicode character as UTF-8 instead. */printf("\u00A3\n"); /* C2 A3 */return 0;}
£ is also ASCII 163 on Windows, which has the full guide.
Use œ where the two letters make a single sound: cœur, sœur, œil, œuvre. Keep them separate where each is pronounced on its own, as in coexister and coefficient, and in words like moelle and poêle that never took the ligature. That's why a blanket replace of oe with œ does damage. Fix words from a list instead.
The zero switches Alt codes to Windows-1252, where 156 is œ and £ lives at 163, so the zero version of the pound sign is Alt+0163. Leave the zero off and Alt+156 gives £ on US and UK Windows alike.
DOS stored £ as byte 156, and Windows-1252 reads that byte as œ, so every price now starts with a French ligature. Convert the whole file from code page 850 instead of replacing œ by hand. Any other DOS characters in it broke too, and a hand replace would also hit a genuine œ if the file has one.
The zero switches Alt codes to Windows-1252, where 156 is œ and £ lives at 163, so the zero version of the pound sign is Alt+0163. Leave the zero off and Alt+156 gives £ on US and UK Windows alike.
DOS stored £ as byte 156, and Windows-1252 reads that byte as œ, so every price now starts with a French ligature. Convert the whole file from code page 850 instead of replacing œ by hand. Any other DOS characters in it broke too, and a hand replace would also hit a genuine œ if the file has one.