Uppercase I with circumflexDouble box cross junction
ASCII 206 is Î on Windows and ╬ in old DOS.
Î (Capital I with Circumflex) is byte 206 in Windows-1252, Unicode U+00CE. Romanian needs it at the start of any sentence beginning with În (in) or Între (between), and French writes it in Île-de-France. UTF-8 stores it as C3 8E, and 8E is Ž in Windows-1252, so mangled text reads ÃŽle-de-France. The HTML entity is Î.
╬ (Double Cross) is byte 206 in code page 437, the original IBM PC character set, and maps to Unicode U+256C. It's the junction where two double lines cross, the inner intersections of a table ruled entirely in ║ (186) and ═ (205). Where a double line crosses a single one, ╬ is the wrong piece. You need ╪ (216) for a single vertical through a double horizontal, or ╫ (215) for the reverse. Those are mixed pieces, and code page 850 replaced both with letters, so all-double grids survive a code page switch better. In UTF-8, ╬ is E2 95 AC, and the HTML entity is ╬.
#include <stdio.h>int main(void) {/* On Windows (code page 1252) byte 206 is Î.Modern terminals expect UTF-8, so print the code point, not the byte. */printf("\u00CE\n"); /* UTF-8: C3 8E */unsigned char b = 206; /* the raw Windows-1252 byte */printf("%d 0x%02X\n", b, b); /* 206 0xCE */return 0;}
#include <stdio.h>int main(void) {/* Byte 206 is ╬ only on a console using code page 437(chcp 437 on Windows, or DOSBox). On a UTF-8 terminal thelone byte 0xCE is invalid and prints as garbage, often �. */putchar(206);/* char is signed on x86, so a plain char holding 0xCE is -50.Use unsigned char when you compare or index by byte value. */char c = (char)206;unsigned char u = 206;printf("\n%d %d\n", c, u); /* -50 206 *//* Portable: print the Unicode character as UTF-8 instead. */printf("\u256C\n"); /* E2 95 AC */return 0;}
No. The 1990 rectifications let the common noun île be written ile, but they don't touch proper nouns, which keep their official spelling. So it stays Île-de-France, Île de Ré and Îles de la Madeleine, with the Î in capitals as well, even in text that follows the new spelling everywhere else.
Give each wall cell a 4-bit mask from its neighbors (up 1, right 2, down 4, left 8) and use it as an index: `'═║═╚║║╔╠═╝═╩╗╣╦╬'[mask]`. A cell walled on all four sides has mask 15 and gets ╬, one with walls right and down gets ╔, and so on, so a grid of # cells turns into a joined double-line map in one pass.