aeioucsz áéíóúčšž

Unfortunately – as far as I can tell – the Unicode Consortium takes the stance that display issues are completely the renderer's problem, and makes no effort to include information about monospace character widths.

wcwidth

aeioucsz áéíóúčšž 台北1234 (leading characters should be 2 spaces each) abcdefgh ＱＲＳ12 (fullwidth latin; should be 2 spaces each) abcdefgh ｱｲｳ1234 (halfwidth kana; should be 1 space each) abcdefgh

IE Chrome Firefox Notepad VS 2015

the environment in which Windows is developed

Discussion

Even if you only have a fallback font that's not mono, you can coerce it into the right character positions if you know the character widths . The above examples could work correctly – although the renderings might be less than perfect – if software knew the intended character widths.

. The above examples could work correctly – although the renderings might be less than perfect – if software knew the intended character widths. Even if you do not have a fallback font, and are just displaying placeholder boxes – you still need to know character widths to render the rest of the text properly, and for Tab characters to work.

Update and additional information

EastAsianWidth.txt

East_Asian_Width

Hundreds of characters are categorized as ambiguous width (property value A ). These characters include anything from U+00A1 (inverted exclamation mark, ¡) to U+2010 (hyphen, ‐) to U+FFFD (replacement character, �). Many of these characters (but not all!) have different widths depending on system locale. For example, U+00F7 (division character, ÷) has a width of 1 on Windows under English (United States) , but a width of 2 under Chinese (Simplified, China) .

(property value ). These characters include anything from U+00A1 (inverted exclamation mark, ¡) to U+2010 (hyphen, ‐) to U+FFFD (replacement character, �). Many of these characters (but not all!) have different widths depending on system locale. For example, U+00F7 (division character, ÷) has a width of 1 on Windows under , but a width of 2 under . In some cases, width can differ even between different fonts under the same locale. For example, on Windows under Chinese (Simplified, China) , U+FFFD (replacement character) renders as narrow (1 position) with a raster font, and wide (2 positions) as TrueType.

, U+FFFD (replacement character) renders as narrow (1 position) with a raster font, and wide (2 positions) as TrueType. Some characters categorized as one width are still displayed as another width by certain systems. For example, U+20A9 (Won sign, ₩) has width property value H (half-width), but is displayed as wide (two positions) by Windows under locale Chinese (Simplified, China). It is displayed as narrow under locale English (United States).