I have solved the problem, which is not caused by the encode. In fact this caused by the default quotechar.
vmim_timestamp,Id,ais_imo,ais_rate_of_turn,ais_nav_status,ais_speed_over_ground,ptms_type,ais_course_over_ground,ais_cargo_ship_type,ais_destination,infolink_voyage_id,mmsi,ptms_destination_name,speed,course,heading,ais_longitude,ais_latitude,ais_true_heading,ais_eta,latitude,longitude,ais_timestamp,latitude_degrees,longitude_degrees,delta_course
2017-09-11 00:00:03,9574166392,7823475,0.0,8.0,0.0,TU,3.93921,33,“”“TTP”“”“F2"”“,54652,564887000,APTP1,0.0,0.0,48.999,62170202.0,755187.0,0.8552113334769998,1528682400,0.0219674998105,1.80845787897,2017-09-11 00:00:54.000,1.2586450256,103.61700389200001,0.0
2017-09-11 00:00:04,9574166392,7823475,0.0,8.0,0.0,TU,3.93921,33,”““TTP””““F2"””,54652,564887000,APTP1,0.0,0.0,48.999,62170202.0,755187.0,0.8552113334769998,1528682400,0.0219674998105,1.80845787897,2017-09-11 00:00:54.000,1.2586450256,103.61700389200001,0.0
There is one column, [“”“TTP”“”“F2"”"], which can cause problem.
I solved it by changing the quotechar which may not be used in the field value.