gpt4 book ai didi

php - 使用 PHP 将 UCS-2 文件转换为 UTF-8

转载 作者:可可西里 更新时间:2023-11-01 00:49:17 25 4
gpt4 key购买 nike

我有一个客户端提供的 CSV 文件,必须使用 PHP 对其进行解析并插入到数据库中。

在将数据插入数据库之前,我想将其转换为 UTF-8,但我似乎找不到方法。

这是我试图检测文件编码的结果:

$ enca -d -L zh ./artigos.txt 
./artigos.txt: Universal character set 2 bytes; UCS-2; BMP
CRLF line terminators
Byte order reversed in pairs (1,2 -> 2,1)

我尝试使用 iconv 函数,但它搞乱了转换并显示了与原始字符不同的结果。

文件第一行(base64编码):

IgAwADMAMQAxADkAIgAsACIANwAzADEAMwA0ADYAMgA2ADQAMAAwADEANQAiACwAIgBBAGcAcgBhAGYAYQBkAG8AcgAgAFIAYQBwAGkAZAAgADkAIABIAGUAYQB2AHkAIABEAHUAdAB5ACIALAAiAEEAZwByAGEAZgBvACAAOQAvADgALAAgADkALwAxADAALAAgADkALwAxADIALAAgADkALwAxADQAIgAsACIAMQAxADAAZgBsAHMAIgAsACIAIgAsACIAIgAsACIAIgAsACIAMAAzADEAMQA5AC4AagBwAGcAIgAsACIAIgAsACIAMQAsADIAMAAiACwAIgA1ADkALAA5ADAAIgAsACIAMgAiACwAIgAwACIALAAiADAAIgAsACIAMAAiACwAIgAwACIALAAiADAAIgAsACIAMAAiACwAIgAwACIALAAiADAAIgAsACIAMAAiACwAIgAwACIALAAiADAAIgAsACIAMAAiACwAIgAwACIALAAiADAAIgAsACIAMAAiACwAIgAwACIALAAiADAAIgAsACIAMAAiACwAIgAwACIALAAiADAAIgAsACIARgBhAGwAcwBlACIADQAK

最佳答案

Microsoft Excel CSV 通常采用 Little Endian 编码(我花了很长时间才发现)。如果您想将它们与 fgetcsv 或类似函数一起使用,您应该先将文件转换为 UTF-8。

我做了以下事情:

$str = file_get_contents($file);
$str = mb_convert_encoding($str, 'UTF-8', 'UCS-2LE');
file_put_contents("converted_".$file, $str);

关于php - 使用 PHP 将 UCS-2 文件转换为 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10942900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com