Uppercase U with umlautLower half block
ASCII 220 is Ü on Windows and ▄ in old DOS.
Ü (Capital U with Umlaut) is byte 220 in Windows-1252, Unicode U+00DC. German and Turkish capitals need it (ÜBER, ÜSKÜDAR), and Chinese pinyin uses the same letter for the vowel in the surname Lü. Pinyin is where it gets slippery. Chinese input methods type ü as v, and systems that can't store ü write something else, so one person's surname can appear as Lü, Lu, Lv or Lyu across different records. Matching those names takes a mapping between the spellings, not an exact comparison. Old DOS had Ü at 154. In UTF-8 it's C3 9C, which misreads as Ü. The HTML entity is Ü.
▄ (Lower Half Block) is byte 220 in code page 437, the original IBM PC character set, and maps to Unicode U+2584. It fills the bottom half of a character cell, and together with ▀ at 223 it doubles vertical resolution in text mode. Terminal image viewers still use the trick. Character cells are roughly twice as tall as they are wide, so one ▄ with a foreground color for the lower pixel and a background color for the upper one draws two square pixels per cell, and 24-bit color escape codes make real images out of it. If the picture shows thin horizontal stripes, the terminal's line spacing is above 1 and the halves no longer meet. In UTF-8 it's E2 96 84, and the HTML entity is ▄.
#include <stdio.h>int main(void) {/* On Windows (code page 1252) byte 220 is Ü.Modern terminals expect UTF-8, so print the code point, not the byte. */printf("\u00DC\n"); /* UTF-8: C3 9C */unsigned char b = 220; /* the raw Windows-1252 byte */printf("%d 0x%02X\n", b, b); /* 220 0xDC */return 0;}
#include <stdio.h>int main(void) {/* Byte 220 is ▄ only on a console using code page 437(chcp 437 on Windows, or DOSBox). On a UTF-8 terminal thelone byte 0xDC is invalid and prints as garbage, often �. */putchar(220);/* char is signed on x86, so a plain char holding 0xDC is -36.Use unsigned char when you compare or index by byte value. */char c = (char)220;unsigned char u = 220;printf("\n%d %d\n", c, u); /* -36 220 *//* Portable: print the Unicode character as UTF-8 instead. */printf("\u2584\n"); /* E2 96 84 */return 0;}
It depends on the language. German writes UE, so MÜLLER becomes MUELLER, which is also how German passports spell it in the machine-readable line. Turkish simply drops the dots, so ÜSKÜDAR becomes USKUDAR. A generic accent-stripping function gives MULLER, which reads as a different name to German speakers, so pick the rule per language.
Before Java 18, FileReader and InputStreamReader without a charset used the platform default, which on Western Windows is cp1252, so UTF-8's Ü turns into Ü. Name the charset: `new InputStreamReader(in, StandardCharsets.UTF_8)`. Files.newBufferedReader(path) already defaults to UTF-8, and from Java 18 on the platform default is UTF-8 as well.
Both, depending on the list. Dictionaries file Ü under U, so Müller sits beside Muller, while name lists like phone books treat it as UE and put Müller next to Mueller. ICU-based collators offer both: plain de gives the dictionary order, and `new Intl.Collator('de-u-co-phonebk')` gives the phone book one.
A file that came from a Mac's older HFS+ file system can store Ü decomposed, as a plain U followed by the combining diaeresis U+0308, so a script matching Übersicht.pdf byte for byte may not find it. Normalize both names to NFC before comparing.
Leave out the zero and Windows looks up 220 in the DOS code page, where that slot holds the lower half block used for drawing. Alt+0220 goes through Windows-1252 instead and gives Ü. The lowercase follows the same pattern: Alt+0252 is ü, while Alt+252 lands on a superscript n.
The art was drawn in code page 437 with half blocks, and your editor is showing it as Windows-1252, where the lower half ▄ becomes Ü and the upper half ▀ becomes ß. Convert it once in Python with `p.with_suffix('.txt').write_text(p.read_text(encoding='cp437'), encoding='utf-8')`, where p is a Path to the file, and view the result in a monospace font.
Leave out the zero and Windows looks up 220 in the DOS code page, where that slot holds the lower half block used for drawing. Alt+0220 goes through Windows-1252 instead and gives Ü. The lowercase follows the same pattern: Alt+0252 is ü, while Alt+252 lands on a superscript n.
The art was drawn in code page 437 with half blocks, and your editor is showing it as Windows-1252, where the lower half ▄ becomes Ü and the upper half ▀ becomes ß. Convert it once in Python with `p.with_suffix('.txt').write_text(p.read_text(encoding='cp437'), encoding='utf-8')`, where p is a Path to the file, and view the result in a monospace font.