Low double quoteLowercase a with umlaut
ASCII 132 is „ on Windows and ä in old DOS.
„ (Double Low Quote) is byte 132 in Windows-1252, Unicode U+201E. It opens quotations in German, Polish, Czech and Romanian, sitting on the baseline instead of up high. The closing mark depends on the language: German and Czech close with “ (byte 147), while Polish and Romanian close with ” (byte 148). For developers, the trouble starts when a German Word document autocorrects a typed straight quote into „. Copy a JSON snippet or a shell command out of that document and it fails, because JSON and shells only accept the plain ASCII quote (0x22). Garbled UTF-8 shows it as „, from its bytes E2 80 9E. The HTML entity is „.
ä (Small A with Umlaut) is byte 132 in code page 437, the original IBM PC character set, and maps to Unicode U+00E4. Windows-1252 has the German low quote „ at 132, so German DOS text read as Windows-1252 grows quote marks inside words: Käse becomes K„se. Code page 850 kept ä at 132 too. Capital Ä sits at 142 in DOS.
#include <stdio.h>int main(void) {/* On Windows (code page 1252) byte 132 is „.Modern terminals expect UTF-8, so print the code point, not the byte. */printf("\u201E\n"); /* UTF-8: E2 80 9E */unsigned char b = 132; /* the raw Windows-1252 byte */printf("%d 0x%02X\n", b, b); /* 132 0x84 */return 0;}
#include <stdio.h>int main(void) {/* Byte 132 is ä only on a console using code page 437(chcp 437 on Windows, or DOSBox). On a UTF-8 terminal thelone byte 0x84 is invalid and prints as garbage, often �. */putchar(132);/* char is signed on x86, so a plain char holding 0x84 is -124.Use unsigned char when you compare or index by byte value. */char c = (char)132;unsigned char u = 132;printf("\n%d %d\n", c, u); /* -124 132 *//* Portable: print the Unicode character as UTF-8 instead. */printf("\u00E4\n"); /* C3 A4 */return 0;}
ä is also ASCII 228 on Windows, which has the full guide.
Both are correct German. „…“ is the everyday form in newspapers, handwriting and most web text, while »…« with the points facing inward shows up a lot in printed books. Switzerland uses «…» with the points facing out, like French. Whichever you choose, stick with it through the whole text.
Set the marks yourself in CSS and mark the text as German: `q:lang(de) { quotes: '„' '“' '‚' '‘'; }`, with lang="de" on the page or the element. The first pair wraps ordinary quotes and the second pair is used when one q sits inside another.
Each „ is an ä. The file is DOS text, and byte 132 means ä in code page 850 but „ in Windows-1252, which is what your editor assumed, so Mädchen shows as M„dchen. Convert it in PowerShell: `Get-Content old.txt -Encoding Oem | Set-Content new.txt -Encoding utf8`. Oem reads the file with the machine's DOS code page, which is 850 on German Windows.
Each „ is an ä. The file is DOS text, and byte 132 means ä in code page 850 but „ in Windows-1252, which is what your editor assumed, so Mädchen shows as M„dchen. Convert it in PowerShell: `Get-Content old.txt -Encoding Oem | Set-Content new.txt -Encoding utf8`. Oem reads the file with the machine's DOS code page, which is 850 on German Windows.