我想写一个字符编码从UTF-8编码的MySQL数据库设置为UTF-16BE CSV文件。
我的代码是:
$f = fopen('file.csv', 'w');
$firstLineKeys = false;
// UTF-16BE BOM
fwrite($f, chr(254) . chr(255));
foreach ($lines as $line)
{
$lineEncoded = [];
foreach ($line as $key => $value)
{
$key = mb_convert_encoding($key, 'UTF-16BE', "auto");
$value = mb_convert_encoding($value, 'UTF-16BE', "auto");
$lineEncoded[$key] = $value;
}
if (empty($firstLineKeys))
{
$firstLineKeys = array_keys($lineEncoded);
fputcsv($f, $firstLineKeys);
$firstLineKeys = array_flip($firstLineKeys);
}
fputcsv($f, array_merge($firstLineKeys, $lineEncoded));
}
fclose($f);
当我打开OpenOffice的文件也试图对一个字符集的Unicode的导入,但该领域是一个烂摊子...当我切换输入字符集设置为UTF-8,它看起来是正确的。
任何帮助将apprecated感谢