Unfortunately, there is no way to do this when importing (for now) with fread.
As long as you seem to already understand this, I will post a way to configure the encoding of all dt after import.
One way to do this is to loop over all columns of characters in the data table:
for (name in colnames(raw[,sapply(raw, is.character), with=F])){ Encoding(raw[[name]]) <- "UTF-8"}
colnames ... the bit first gets the columns, which are the characters ( with = F needed for dt, it seems), and then gets the names of the columns to be iterated over. In short: this gives users what you have already found works, but in all char columns.
Now ... since there is no guarantee that colnames are for your integers, floats, etc. does not require any massaging, it is necessary to solve the following:
for (name in colnames(raw)){ Encoding(colnames(raw)) <- "UTF-8" }
source share