In many versions of Windows, the tilde (~) is used for filename expansion and hidden, reserved things -- it's not usually available for general use unless the file was created somewhere else (like on a Mac).
During the early days of computers, file names couldn't have dots, spaces, or a lot of other characters, so long names were cut down using the tilde to save memory. So, if you had for instance, my-awesome-picture.jpeg
, the short name might be MY-AWE~1.JPE
Windows sees these filenames with tildes and wants to expand them. In your case, there's nothing to expand, and that can sometimes cause problems when the computer gets confused.
Chrome avoids the problem altogether by just replacing the tilde with an underscore (_). There's also the outside chance that this is caused by an encoding issue (caused by two computers from different countries, or with different languages -- say, Latin vs. Iberian Spanish), but this is rare nowadays.
It is possible to rename the files on a Mac or via the command line, but I wouldn't recommend that.
EDIT: According to a bug report filed against Chromium (Google Chrome's underlying engine), it is normal to see tildes replaced with underscores:
Status: WontFix
Unfortunately we decided to remove the tilde from the list of characters deemed safe for filenames due to its interaction with short filename support on Windows. We could be more conservative (for example test~test~test.txt
doesn't really count as dangerous). But for the moment we've opted to keep things simple.
As for a workaround, there isn't one for Chrome yet, but you can download the files with another browser.