Non-breaking spaceLowercase a with acute accent
ASCII 160 is a non-breaking space on Windows and á in old DOS.
NBSP (Non-Breaking Space) is byte 160 in Windows-1252, Unicode U+00A0. It looks like a normal space but blocks a line break at that spot, so 10 km or Mr. Smith stay together, and French puts one (or its narrow cousin U+202F) before ? and !. Because it's invisible, the trouble it causes is hard to spot. If a web page shows  in front of spaces, UTF-8 wrote the NBSP as C2 A0 and a Windows-1252 reader turned the C2 into  while the A0 still renders as a space. Numbers copied from a web page into Excel can carry NBSP as the thousands separator or as padding, and Excel's TRIM won't remove it, because TRIM only strips the ordinary space (32). SUBSTITUTE with CHAR(160) will. Pasted into source code it fails differently: Python stops with invalid non-printable character U+00A0, and in a shell the command and its flag no longer split into two words. Old DOS had the non-breaking space too, at 255. The HTML entity is .
á (Small A with Acute) is byte 160 in code page 437, the original IBM PC character set, and maps to Unicode U+00E1. Windows-1252 has the non-breaking space at 160, so Spanish DOS text read as Windows-1252 turns está into est followed by what looks like a space, and the letter seems to vanish. Code page 850 kept á at 160 too.
#include <stdio.h>int main(void) {/* On Windows (code page 1252) byte 160 is non-breaking space.Modern terminals expect UTF-8, so print the code point, not the byte. */printf("\u00A0\n"); /* UTF-8: C2 A0 */unsigned char b = 160; /* the raw Windows-1252 byte */printf("%d 0x%02X\n", b, b); /* 160 0xA0 */return 0;}
#include <stdio.h>int main(void) {/* Byte 160 is á only on a console using code page 437(chcp 437 on Windows, or DOSBox). On a UTF-8 terminal thelone byte 0xA0 is invalid and prints as garbage, often �. */putchar(160);/* char is signed on x86, so a plain char holding 0xA0 is -96.Use unsigned char when you compare or index by byte value. */char c = (char)160;unsigned char u = 160;printf("\n%d %d\n", c, u); /* -96 160 *//* Portable: print the Unicode character as UTF-8 instead. */printf("\u00E1\n"); /* C3 A1 */return 0;}
á is also ASCII 225 on Windows, which has the full guide.
Print the code points, since the two look identical. In Python, `[hex(ord(c)) for c in s]` shows 0xa0 where a normal space shows 0x20. In a browser console, `[...s].map(c => c.charCodeAt(0))` gives 160 versus 32. Once you know which positions hold it, replace or strip it deliberately.
No. Use CSS margin, padding or gap for layout spacing, and keep for its real job of holding two words on the same line, as in 10 km. Runs of break awkwardly on narrow screens, can't be adjusted from a stylesheet, and come along as stray characters when someone copies the text.
That's a non-breaking space. With formatting marks switched on, Word draws it as a raised circle, while ordinary spaces show as dots. Word also inserts them by itself when the language is set to French, before punctuation like : and ?. Turning off Show/Hide hides the circles, but the spaces stay in the text.
trim() only strips characters with codes up to 32, and a non-breaking space is 160. strip() from Java 11 doesn't help either, because it relies on Character.isWhitespace, which deliberately excludes non-breaking spaces. Replace it first: `s.replace('\u00A0', ' ').strip()`. JavaScript's trim() and Python's strip() do remove it, so the same data can behave differently from one service to the next.
The zero picks the table. Alt+160 uses DOS, where 160 is á, and Alt+0160 uses Windows-1252, where 160 is the non-breaking space. What you get looks like a space but blocks line breaks and slips past searches for an ordinary one. If you type Spanish often, the US-International layout is quicker: press ' and then a for á.
DOS stores á at byte 160, and Windows-1252 has the non-breaking space there, so está turns into est followed by what looks like a blank. Nothing looks broken at first glance, only misspelled. Decode the file as code page 850 and every á comes back, including the ones at the ends of words like mamá.
The zero picks the table. Alt+160 uses DOS, where 160 is á, and Alt+0160 uses Windows-1252, where 160 is the non-breaking space. What you get looks like a space but blocks line breaks and slips past searches for an ordinary one. If you type Spanish often, the US-International layout is quicker: press ' and then a for á.
DOS stores á at byte 160, and Windows-1252 has the non-breaking space there, so está turns into est followed by what looks like a blank. Nothing looks broken at first glance, only misspelled. Decode the file as code page 850 and every á comes back, including the ones at the ends of words like mamá.