Why doesn the usual TeX code — produce a long dash when I use Unicode fonts in XeTeX?
The interpretation of — as an en-dash, — as em-dash, and a few other conventions (e.g., opening and closing quote marks) is a feature of the fonts typically used with TeX, not of the program itself or the macro packages. These characters are implemented as ligatures in the Computer Modern fonts, and this pattern has been followed by the typical setups for other fonts such as Times, etc., when used with TeX. However, standard Unicode-compliant fonts do not include ligatures for these sequences, as the normal expectation is that the actual Unicode characters will be used in the source text. For compatibility with input files that use the traditional TeX conventions, you can load such fonts in XeTeX with the “tex-text” font mapping, which simulates the behavior of typical TeX fonts by replacing sequences such as — with en-dash, etc.