• What about something simpler:

    declare @q nvarchar(50), @sql nvarchar(100)

    set @q = '''o''''neil'''

    set @sql = 'print ' + @q + ''

    print @sql

    EXEC sp_executesql @sql

    ___________________________________

    print 'o''neil'

    o'neil