Set binary=1 in Text::CSV_XS which will allow it to accept "special" characters. Also, since you are going from a database to CSV, you might want to use DBD::CSV which provides a DBI interface to Text:::CSV_XS.
Comment on Re: Problem with special characters in a csv file