graham,
I've dealt with the non-breaking space in SQL Server; it is an ASCII 160.
I think your "hyphen" is an ASCII 151.
To see its position in SQL Server:
Select YourField, CharIndex(Char(151), YourField)
From YourTable
Where CharIndex(Char(151), YourField) > 0
To see its position in...