Uppercase N with tildeBox T-junction pointing down, double horizontal
ASCII 209 is Ñ on Windows and ╤ in old DOS.
Ñ (Capital N with Tilde) is byte 209 in Windows-1252, Unicode U+00D1. Spanish capitals need it (AÑO, ESPAÑA), and it sits in surnames like Ibáñez and Núñez. Email is where those names get stuck. An address like muñoz@example.com is valid under the internationalized email standard (RFC 6531), but every mail server along the route has to support it, and a signup form with an ASCII-only pattern rejects it before it gets that far. Old DOS had Ñ at 165. Its UTF-8 bytes C3 91 misread as Ñ. The HTML entity is Ñ.
╤ (Single Down, Double Horizontal) is byte 209 in code page 437, the original IBM PC character set, and maps to Unicode U+2564. It's a top-edge tee where a double line ═ (205) runs across and a single column line │ (179) drops down. Python's tabulate library uses it in its fancy_grid format, whose tables start with ╒═╤═╕. Printing one works in the Windows console, but redirect the output to a file (python report.py > out.txt) and Python can fall back to the ANSI code page, which has no ╤, and stop with UnicodeEncodeError. Run it with python -X utf8 or set PYTHONIOENCODING=utf-8. In UTF-8 it's E2 95 A4, and the HTML entity is ╤.
#include <stdio.h>int main(void) {/* On Windows (code page 1252) byte 209 is Ñ.Modern terminals expect UTF-8, so print the code point, not the byte. */printf("\u00D1\n"); /* UTF-8: C3 91 */unsigned char b = 209; /* the raw Windows-1252 byte */printf("%d 0x%02X\n", b, b); /* 209 0xD1 */return 0;}
#include <stdio.h>int main(void) {/* Byte 209 is ╤ only on a console using code page 437(chcp 437 on Windows, or DOSBox). On a UTF-8 terminal thelone byte 0xD1 is invalid and prints as garbage, often �. */putchar(209);/* char is signed on x86, so a plain char holding 0xD1 is -47.Use unsigned char when you compare or index by byte value. */char c = (char)209;unsigned char u = 209;printf("\n%d %d\n", c, u); /* -47 209 *//* Portable: print the Unicode character as UTF-8 instead. */printf("\u2564\n"); /* E2 95 A4 */return 0;}
Reverse the wrong decode: in Python, `s.encode('cp1252').decode('utf-8')` turns ESPAÑA back into ESPAÑA. Run it before anything that straightens curly quotes, since the ‘ in the garble is really the second byte of Ñ, and once it becomes a plain apostrophe that byte is lost. Try it on a few rows first, because clean strings with accents will raise an error instead of converting.
Check the database connection first: if it isn't set to UTF-8, text stored correctly comes back read as Windows-1252. With mysqli, call `mysqli_set_charset($link, 'utf8mb4')` right after connecting, and serve the page with charset=utf-8. If Ñ is already stored in the table, the connection fix only stops new damage, so repair the saved rows as well.
C's toupper() in the default C locale only changes ASCII letters, so a program that capitalizes names byte by byte turns Muñoz into MUñOZ. Use a Unicode-aware uppercase such as Python's str.upper() instead.
Alt+165, the old DOS code, which gives Ñ on both US and Western European PCs, and its lowercase ñ is Alt+164. Alt+0209 works too. Plain Alt+209 reads the DOS table, where 209 is the box piece ╤ on a US machine and Ð on a Western European one.
Use ╤ where a single column line drops from a double top border, the look of a double outer frame around single inner columns: ╔═╤═╗. ╦ is only for a double column line. That style also needs ╧ (207) on the bottom edge and ╪ (216) where rows cross, and code page 850 swapped all three for other characters, so it only draws right under 437.
Alt+165, the old DOS code, which gives Ñ on both US and Western European PCs, and its lowercase ñ is Alt+164. Alt+0209 works too. Plain Alt+209 reads the DOS table, where 209 is the box piece ╤ on a US machine and Ð on a Western European one.