Removing special ASCII character

It is a common challenge for T-SQL developers to remove special ASCII characters as REPLACE T-SQL function does not remove it. CHAR and ASCII functions can assist replacing special ASCII Characters. Let's jump to the solution.

T-SQL Script

-- Declare the variables

Declare @original_string varchar(100)
Declare @clean_string varchar(100)

-- Build input string combining ascii and special ascii characters
Set @original_string = 'TEST'
Set @original_string = CHAR(1) + @original_string -- add special ascii character 
Set @original_string = CHAR(2) + @original_string -- add special ascii character
Set @original_string = CHAR(3) + @original_string -- add special ascii character
Set @original_string = CHAR(4) + @original_string -- add special ascii character
Set @original_string = CHAR(10) + @original_string -- add special ascii character
Set @original_string = CHAR(13) + @original_string -- add special ascii character
Set @original_string = @original_string + '-done' -- add special ascii character

Set @clean_string = '' --

DECLARE @special_string VARCHAR(2);
DECLARE @counter INT= 1;
WHILE @counter <= Len(@original_string)
BEGIN
    IF(ASCII(SUBSTRING(@original_string, @counter, 1)) > 32)
    BEGIN
        Set @clean_string = @clean_string + CHAR(ASCII(SUBSTRING(@original_string, @counter, 1)))
    End
    SET @counter = @counter + 1
END

Select @clean_string
Select @original_string

Output

I frequently, use this script for special character cleansing. Hope it will also be helpful for you.

Happy T-SQLing!

Add comment