Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

lưu CSV với mã hóa UTF-16BE trong PHP

$key = mb_convert_encoding($key, 'UTF-16BE', "auto");

(Bạn có chắc chắn muốn BE không? Đây là một kiểu mã hóa khá hiếm khi được sử dụng. Windows “Unicode” là UTF-16LE.)

Tôi sẽ tránh sử dụng "auto" như from_encoding. Đó là một lỗi không đáng tin cậy thường sẽ tạo ra kết quả sai, đặc biệt là trên các chuỗi ngắn. Vì đầu vào rõ ràng là UTF-8, thay vào đó, bạn nên nêu rõ điều đó.

fputcsv($f, array_merge($firstLineKeys, $lineEncoded));

Rất tiếc, fputcsv không thể ghi vào tệp được mã hóa UTF-16. Nó sử dụng dấu phẩy / dấu ngoặc kép / dòng mới ASCII byte đơn vì vậy nó chỉ hoạt động đối với các mã hóa là bộ siêu ASCII. Vì vậy, nếu bạn muốn sử dụng nó, bạn sẽ phải viết toàn bộ tệp dưới dạng UTF-8, sau đó chuyển mã toàn bộ tệp sang UTF-16.

Thay vào đó, bạn có thể muốn xem xét một người viết CSV khác (hoặc của riêng bạn); cũng như gây khó chịu khi sử dụng cho các mã hóa không phải ASCII, fputcsv cũng không tuân thủ tiêu chuẩn RFC cho tệp CSV, vì vậy bạn có thể dễ dàng tạo tệp mà hầu hết các phần mềm sử dụng CSV không thể tải đúng cách.

Các hàm CSV tích hợp sẵn của PHP về cơ bản hoàn toàn lãng phí thời gian của mọi người.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết quả tìm kiếm MYSQL

  2. JSON_VALUE () trong MySQL

  3. Tích hợp Hadoop và MySQL

  4. tạo url api còn lại để kết nối với cơ sở dữ liệu mysql

  5. Hàm thay thế mysql_list_tables () trong php 5 là gì