The line breaks can be included in the literal strings, so you don't need to worry about which characters are used. You do have to put " ' + ' " in front of any GO however.
SELECT 'DROP PROCEDURE [' + SCHEMA_NAME([schema_id]) + '].[' + [name] + ']
' + 'GO
' + OBJECT_DEFINITION([object_id])+ '
' + 'GO'
FROM sys.objects
WHERE [name] = 'Test SP'