Thanks for the article. I have actually used this technique myself and find it very useful. I do a little more filtering to get the unwanted characters. Here is something similar to what i use.
DECLARE @t TABLE(col VARCHAR(MAX));
INSERT INTO @t VALUES ('zzzzzzzzz' + CHAR(13));
INSERT INTO @t VALUES ('zzzzzzzzz' + CHAR(11) + CHAR(13));
INSERT INTO @t VALUES ('zzzz');
INSERT INTO @t VALUES ('zzzz-');
INSERT INTO @t VALUES ('zz.zz');
INSERT INTO @t VALUES ('zz?zz');
SELECT
col,
n AS Pos,
SUBSTRING(col,n,1) AS [ASCII_Char],
ASCII(SUBSTRING(col,n,1)) AS [ASCII_Cd]
FROM @t t
INNER JOIN dbo.[Numbers] n ON n.n <= LEN(col)
WHERE SUBSTRING(col,n,1) LIKE '[^A-Za-z0-9/-.?]' ESCAPE '/' --use escape to build your exception list