Now, before I could post this question I stumbled upon the answer. Apparently, the act of me writing up the question gave me the idea of determining the ascii number of this "" character.
str = contacts[0][0].split(//)
p str[0].codepoints
gave me
[65279]
upon inquiring about ascii character 65279 I found this article:
https://mcmap.net/q/279677/-what-is-this-char-65279-39-39
According to SLaks:
It's a zero-width no-break space. It's more commonly used as a
byte-order mark (BOM).
This, in turn, led me to the solution here:
https://mcmap.net/q/206483/-how-to-avoid-tripping-over-utf-8-bom-when-reading-files
In this response, knut provided an elegant solution, which looked like this:
File.open('file.txt', "r:bom|utf-8"){|file|
text_without_bom = file.read
}
With , "r:bom|utf-8" being the key element I was looking for.
So I adapated it to my code, which became this:
CSV.foreach($csv_path + $csv_file, "r:bom|utf-8") do |row|
contacts << row
end
I spent hours on this stupid problem. Hopefully, this will save you some time!