Middle dotBox top-right corner, double vertical
ASCII 183 is · on Windows and ╖ in old DOS.
· (Middle Dot) is byte 183 in Windows-1252, Unicode U+00B7. Catalan needs it inside words, in the l·l of col·lecció and il·lusió, and it also works as a light separator in bylines (May 3 · 4 min read). Catalan typed in a hurry can show a period instead, col.lecció, which breaks search and spell checking. Unicode also has a precomposed ŀ (U+0140), but the recommended spelling is a plain l, the middle dot, then another l. Greek adds a twist. Its upper stop, the ano teleia (U+0387), is canonically equivalent to the middle dot, so NFC normalization quietly turns it into U+00B7. Old DOS had the middle dot at 250. In UTF-8 it's C2 B7, and the HTML entity is ·.
╖ (Double Down, Single Left) is byte 183 in code page 437, the original IBM PC character set, and maps to Unicode U+2556. It's the top-right corner of a box whose sides are double lines and whose top edge is single: ─ (196) comes in from the left and ║ (186) runs down. Pick the corner that matches both edges. Put the all-double ╗ (187) at the end of a single top line and the horizontal strokes won't line up. Code page 850 used this byte for À. In UTF-8 it's E2 95 96, and the HTML entity is ╖.
#include <stdio.h>int main(void) {/* On Windows (code page 1252) byte 183 is ·.Modern terminals expect UTF-8, so print the code point, not the byte. */printf("\u00B7\n"); /* UTF-8: C2 B7 */unsigned char b = 183; /* the raw Windows-1252 byte */printf("%d 0x%02X\n", b, b); /* 183 0xB7 */return 0;}
#include <stdio.h>int main(void) {/* Byte 183 is ╖ only on a console using code page 437(chcp 437 on Windows, or DOSBox). On a UTF-8 terminal thelone byte 0xB7 is invalid and prints as garbage, often �. */putchar(183);/* char is signed on x86, so a plain char holding 0xB7 is -73.Use unsigned char when you compare or index by byte value. */char c = (char)183;unsigned char u = 183;printf("\n%d %d\n", c, u); /* -73 183 *//* Portable: print the Unicode character as UTF-8 instead. */printf("\u2556\n"); /* E2 95 96 */return 0;}
N·m and N m are both correct SI, since a product of units takes either a centred dot or a space. Nm with nothing in between is the one to avoid, because only the order separates it from mN, the millinewton, and a quick reader can swap them.
Because · is allowed inside Python identifiers, so a·b is one variable name rather than a times b. Unicode lists the middle dot among the characters that can continue an identifier, and Python follows that list. JavaScript does the same and throws a ReferenceError. Replace it with *, and check formulas copied from PDFs, where · can stand for multiplication.
The page is UTF-8, but your HTTP library decoded it as Latin-1, so the dot's first byte C2 shows up as Â. Python's requests does this when the Content-Type header has no charset, falling back to ISO-8859-1 for text responses. Set `r.encoding = 'utf-8'` before reading r.text, or decode r.content yourself.
·. It sits small and centred at letter height, so Privacy · Terms reads as one line of text. • (byte 149) is bigger and heavier, made for list bullets, and inline it starts to look like a list that lost its line breaks. Put a regular space on each side either way.
Because · is punctuation, not a word character, so \w+ stops at it and returns paral and lel. Allow the dot only between letters: in JavaScript, `/\p{L}+(?:·\p{L}+)*/gu` keeps Catalan words whole while a dot standing alone between spaces still doesn't count as a word.
L·l, with the middle dot. Catalan uses it for a double l pronounced as two separate l sounds, as in col·legi, which is different from ll, a single palatal sound. Writing l.l with a period is a common workaround when the dot is hard to type, but it's a substitute, not the correct spelling.
With whitespace rendering on, VS Code and similar editors draw each space as a faint dot, so a · you see in the editor may not exist in the file at all. Copy the text somewhere else and it turns back into spaces.