Bài toán: export dữ liệu tiếng Việt UTF-8 thành file CSV có thể hiển thị đúng khi mở bằng Excel. 3 điểm dẫn đến thành công: + Dùng TAB (\t) thay cho COMMA (,) để phân tách các cột + Convert Encoding của dữ liệu cần output bằng UTF-16LE + Gắn chr(255)chr(254) vào đầu của kết quả cuối cùng trước khi output /** * EXPORT ORDER LIST TO CSV FILE * @author khanhdn */ function exportCSV() { global $user; member_access(); $memberInfo = member_info(); $result = drupal_query("SELECT order_id ,order_code ,bill_firstname ,bill_lastname ,order_modify_date ,gand_total ,order_status FROM {order} WHERE shop_code = '".$memberInfo['shop_code']."' ORDER BY. | Export ra CSV file với Unicode Bài toán export dữ liệu tiếng Việt UTF-8 thành file CSV có thể hiển thị đúng khi mở bằng Excel. 3 điểm dẫn đến thành công Dùng TAB t thay cho COMMA để phân tách các cột Convert Encoding của dữ liệu cần output bằng UTF-16LE Gắn chr 255 chr 254 vào đầu của kết quả cuối cùng trước khi output EXPORT ORDER LIST TO CSV FILE @author khanhdn function exportCSV global user member_access memberInfo member_info result drupal_query SELECT order_id order_code bill_firstname bill_lastname order_modify_date gand_total order_status FROM order WHERE shop_code . memberInfo shop_code . ORDER BY order_creation_date DESC status_options array 1 Neu 2 In Bearbeitung 3 Auf der Post 4 Ausgefuhrt 5 Zuruck csv Order code tCustomer Name tModify Date tOrder Total tOrder Status r n if count result data foreach result data as row order_list array order_code row- order_code customer_name row- bill_firstname. . row- bill_lastname modify_date mysqlTimestamp strtotime row- order_modify_date order_total CHF . row- gand_total order_status status_options row- order_status csv . join t order_list . r n csv chr 255 .chr 254 .mb_convert_encoding csv UTF-16LE UTF-8 header Content-type application x-msdownload header Content-disposition csv filename- . date Y-m-d