• 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