Small tildeLowercase y with umlaut
ASCII 152 is ˜ on Windows and ÿ in old DOS.
˜ (Small Tilde) is byte 152 in Windows-1252, Unicode U+02DC. It's a spacing accent, raised and smaller than the ASCII tilde ~ (0x7E). The trap is the HTML entity: ˜ produces this character, not ~. A page that writes ~/.bashrc or a /~user URL with ˜ looks fine, but the copied path or link fails, because shells and servers only recognize 0x7E. For a real tilde in HTML, type ~ directly. Its circumflex counterpart ˆ is byte 136. In UTF-8 it's CB 9C, garbled as Ëœ.
ÿ (Small Y with Diaeresis) is byte 152 in code page 437, the original IBM PC character set, and maps to Unicode U+00FF. Windows-1252 has the small tilde ˜ at 152, so DOS text read as Windows-1252 turns L'Haÿ-les-Roses into L'Ha˜-les-Roses. Code page 850 kept ÿ at 152 too. Neither DOS code page has a capital Ÿ.
#include <stdio.h>int main(void) {/* On Windows (code page 1252) byte 152 is ˜.Modern terminals expect UTF-8, so print the code point, not the byte. */printf("\u02DC\n"); /* UTF-8: CB 9C */unsigned char b = 152; /* the raw Windows-1252 byte */printf("%d 0x%02X\n", b, b); /* 152 0x98 */return 0;}
#include <stdio.h>int main(void) {/* Byte 152 is ÿ only on a console using code page 437(chcp 437 on Windows, or DOSBox). On a UTF-8 terminal thelone byte 0x98 is invalid and prints as garbage, often �. */putchar(152);/* char is signed on x86, so a plain char holding 0x98 is -104.Use unsigned char when you compare or index by byte value. */char c = (char)152;unsigned char u = 152;printf("\n%d %d\n", c, u); /* -104 152 *//* Portable: print the Unicode character as UTF-8 instead. */printf("\u00FF\n"); /* C3 BF */return 0;}
ÿ is also ASCII 255 on Windows, which has the full guide.
Use ~ (0x7E) or simply write about in everyday text, and ≈ in math for approximately equal. ˜ is an accent mark with no meaning of its own, so it's the one to avoid: a search for ~5 won't find ˜5, and a script parsing the value won't recognize it either.
The zero sends Windows to the Windows-1252 table, where 152 is the small tilde ˜, a spacing accent rather than a letter. Alt+152 without the zero reads the DOS table and gives ÿ, and on the Windows side ÿ sits at Alt+0255. The capital Ÿ has no DOS code at all, so Alt+0159 is the only Alt code for it.
The zero sends Windows to the Windows-1252 table, where 152 is the small tilde ˜, a spacing accent rather than a letter. Alt+152 without the zero reads the DOS table and gives ÿ, and on the Windows side ÿ sits at Alt+0255. The capital Ÿ has no DOS code at all, so Alt+0159 is the only Alt code for it.