我正在从我的电子商务商店中导出客户名称(和街道地址),并且我们有许多法国客户名称,这导致导出到CSV时出现了一些问题。我以为我已经通过使用utf8_decode()修复了它,如下所示:
echo utf8_decode($row['billing_name']) . ",";
$ row ['billing_name']来自mysqli数据库查询的一个while循环。
但是例如,StéphanePerry导出为:csv文件中的St√©phane Perry
我检查了数据库,并在客户字段上设置的编码是CP1252 West,我认为这是考虑法国口音的,所以我不希望自己搞乱那里的编码,我希望可以进行修复在导出过程中使用。
答案 0 :(得分:0)
不要使用任何编码/解码例程。他们可能只会使事情变得更糟。我认为这是这里发生的事情的一部分。
é
,在进行mojibaked后变成é
。但是,我找不到√©
的路径。您是否还有另一个示例(涉及不同的字母)?在哪里指定“ CP1252 West”? (这不是MySQL字符集。)
请提供
SELECT col, HEX(col) FROM ...
显示某些文本的内部编码。我们还需要确定问题是在INSERT
期间还是在SELECT
期间(或同时发生)发生。并提供SHOW CREATE TABLE
,以便我们可以看到数据类型。