You shouldn't have a problem with using varchar and CHAR for the characters you are talking about... see the following...
Running this code...
DECLARE @i int
DECLARE @str varchar(222)
SET @i = 33 /*Start at 33 to skip SPACE and non-printable characters */
SET @str = ''
WHILE (SELECT @i) < 256
BEGIN
SET @str = @str + CHAR(@i)
SET @i = @i + 1
END
PRINT @str
Returns the following...
!"#$%&'()*+,-./0123456789:; ?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþ