我正在出口客户名称(和街道地址),构成了我的电子商务商店,我们有许多法国客户名称,这些客户名称引起了CSV导出的一些问题。我以为我已经通过使用UTF8_Decode()修复了它,如下所示:
echo utf8_decode($row['billing_name']) . ",";
$ row ['billing_name']来自MySQLI数据库查询的循环。
,例如StéphanePerry的导出为:ST√©CSV文件中的Phane Perry
我检查了数据库,并且在客户字段上的编码集为CP1252 West,我认为这是为法国口音考虑的,所以我不想在那里弄乱编码,我希望我可以解决问题。在导出期间使用。
不要使用任何编码/解码例程。他们可能只是使事情变得更糟。我认为这是这里发生的事情的一部分。
é
,当mojibaked时,变成 é
。但是,我找不到通往√©
的途径。您还有另一个例子(涉及另一个字母)吗?" CP1252 West"在哪里指定?(那不是mysql charset。)
如果可能的话,请提供
SELECT col, HEX(col) FROM ...
显示某些文本的内部编码。我们还需要弄清楚问题是在INSERT
期间还是在SELECT
期间发生(或两者都会发生)。并提供SHOW CREATE TABLE
,以便我们可以看到数据类型。