I've googled for a solution many times over years so now I've figured it out I thought I'd share.
When using a CSV file in Datamerge, all characters like ' & !£$%^&*) come out as weird text like "‚äô" so usually I reluctantly find and replace these odd characters with intended ones but one always slips to print and I don't like this unsolved hacky solution. Now I've found a way!
Here's what works for me:
Use excel (or what ever you prefer) to create your spread sheet of data - this is your master
When your done, save a new copy as a TAB seperated value file (TSV)
Open this in Text Edit (or what ever you prefer)
Set UTF-16 NOT 8, include UTF16 in the name you save it as, so you know which one to load into Indesign
Select source data in indesign use the UTF16 text doc you just made
To update, edit the master document and go through steps 2 - 6 again, you shouldn't need to re do placeholders in Indesign.
This works for me using Google Sheets, Text Edit (MAC) and Adobe Indesign CC 2015 on iMac El Capitan 10.11.6
what does the .csv file look like? are there empty values with commas after them. hidden merged cells will create extra spaces in the .csv file. using text wragler you can quickly clean up your .csv file.
a clean .csv file is important from my past experiences.