Ok, so python3 and unicode. I know that all python3 strings are actually unicode strings and all python3 code is stored as utf-8. But how does python3 reads text files? Does it assume that they are encoded in utf-8? Do I need to call decode('utf-8') when reading a text file? What about pandas read_csv() and to_csv()?
Do I need to call decode('utf-8') when reading a text file?

You need to try-read a text file to make sure it's utf-8 encoding in the file.
Reading UTF-8 Encoded Files and Text Files in Python3