Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

menyimpan CSV dengan pengkodean UTF-16BE di PHP

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

(Anda yakin ingin BE? Ini adalah pengkodean yang jarang digunakan. Windows “Unicode” adalah UTF-16LE.)

Saya akan menghindari menggunakan "auto" sebagai from_encoding. Ini adalah bodge yang tidak dapat diandalkan yang akan sering menghasilkan hasil yang salah terutama pada string pendek. Karena inputnya tampaknya UTF-8, Anda harus menyatakannya secara eksplisit.

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

Sayangnya fputcsv tidak dapat menulis ke file yang disandikan UTF-16. Ini menggunakan koma ASCII byte tunggal/kutipan/baris baru sehingga hanya berfungsi untuk penyandian yang merupakan superset ASCII. Jadi, jika Anda ingin menggunakannya, Anda harus menulis seluruh file sebagai UTF-8, lalu mentranskode seluruh file ke UTF-16.

Anda mungkin ingin mempertimbangkan penulis CSV yang berbeda (atau milik Anda sendiri); serta mengganggu untuk digunakan untuk penyandian non-ASCII, fputcsv juga tidak sesuai dengan standar RFC untuk file CSV, sehingga Anda dapat dengan mudah membuat file yang tidak dapat dimuat dengan benar oleh sebagian besar perangkat lunak yang menggunakan CSV.

Fungsi CSV bawaan PHP pada dasarnya membuang-buang waktu semua orang.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL vs. SQL Server vs. Oracle

  2. Konversikan objek yang berisi bidang berulang ke JSON

  3. Salin massal DataTable ke MySQL (mirip dengan System.Data.SqlClient.SqlBulkCopy)

  4. Spark JoinWithCassandraTable pada kunci partisi TimeStamp STUCK

  5. Mengisi kolom input berdasarkan pilihan menu dropdown dengan Javascript