HTMLEncode и URLEncode имеют дело с недопустимыми символами в HTML и URL, или более точно, символы, которые должны быть особенно записаны, чтобы быть интерпретированными правильно. Например, в HTML < и> символы используются для указания на теги. Таким образом, если Вы хотели записать математическую формулу, что-то как 1+1 < 2+2, '<'; обычно интерпретировался бы как начало тега. HTMLEncoding поворачивает этот символ в "& лейтенант"; который является закодированным представлением меньше знак. URLEncoding делает то же, но для URL, для которых специальные символы отличаются, хотя существует некоторое перекрытие.
As recently seen in this question, you can use configure_file to copy files to the build directory:
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/input.txt
${CMAKE_CURRENT_BINARY_DIR}/output.txt COPYONLY)
That does it once at build time and only when needed.