Uppercase Y with umlautFlorin sign
ASCII 159 is Ÿ on Windows and ƒ in old DOS.
Ÿ (Capital Y with Diaeresis) is byte 159 in Windows-1252, Unicode U+0178. French needs it for names with ÿ written in capitals, as in L'HAŸ-LES-ROSES. Its code point breaks a shortcut that works everywhere else in Latin-1. Small letters from à to þ sit exactly 32 above their capitals, but ÿ is U+00FF while Ÿ is U+0178, so subtracting 32 from ÿ gives you ß instead. The small ÿ is byte 255. In UTF-8, Ÿ is C5 B8, misread as Ÿ. The HTML entity is Ÿ.
ƒ (Florin Sign) is byte 159 in code page 437, the original IBM PC character set, and maps to Unicode U+0192. It closes the currency row at 155 to 159, next to ¢, £, ¥ and ₧, standing in for the Dutch guilder. Windows-1252 has the capital Ÿ at 159, so guilder amounts from a DOS file read as Windows-1252 show Ÿ before every figure. Code page 850 kept ƒ at 159 too.
#include <stdio.h>int main(void) {/* On Windows (code page 1252) byte 159 is Ÿ.Modern terminals expect UTF-8, so print the code point, not the byte. */printf("\u0178\n"); /* UTF-8: C5 B8 */unsigned char b = 159; /* the raw Windows-1252 byte */printf("%d 0x%02X\n", b, b); /* 159 0x9F */return 0;}
#include <stdio.h>int main(void) {/* Byte 159 is ƒ only on a console using code page 437(chcp 437 on Windows, or DOSBox). On a UTF-8 terminal thelone byte 0x9F is invalid and prints as garbage, often �. */putchar(159);/* char is signed on x86, so a plain char holding 0x9F is -97.Use unsigned char when you compare or index by byte value. */char c = (char)159;unsigned char u = 159;printf("\n%d %d\n", c, u); /* -97 159 *//* Portable: print the Unicode character as UTF-8 instead. */printf("\u0192\n"); /* C6 92 */return 0;}
ƒ is also ASCII 131 on Windows, which has the full guide.
Those were guilder signs. DOS code pages 437 and 850 both store ƒ at byte 159, and Windows-1252 has Ÿ there, so ƒ 25,00 turns into Ÿ 25,00. Windows-1252 keeps its own ƒ at 131, so decoding the file as DOS text and saving it again puts the florin back in every row.
Those were guilder signs. DOS code pages 437 and 850 both store ƒ at byte 159, and Windows-1252 has Ÿ there, so ƒ 25,00 turns into Ÿ 25,00. Windows-1252 keeps its own ƒ at 131, so decoding the file as DOS text and saving it again puts the florin back in every row.