我正在尝试上传我的英文库存到各种欧洲亚马逊网站。我遇到的问题是,当“库存文件”上传到亚马逊时,在某些不同语言中发现的口音不能正确显示。清单文件是制表符分隔的文本文件。
当前设置:
$type = 'text/tab-separated-values; charset=utf-8';
header('Content-Type:'.$type);
header('Content-Disposition: attachment; filename="inventory-'.$_GET['cc'].'.txt');
header('Content-Length: ' . strlen($data));
header('Content-Encoding: UTF-8');当输出并保存文本文件时,它看起来与在窗口中打开时的样子完全一样(所有字符都是正确的),但由于某种原因,亚马逊没有将其视为UTF8,并使用以下所有字符对其进行了重新编码:
http://www.i18nqa.com/debug/utf8-debug.html
我尝试将BOM添加到文件的顶部,但这只会导致amazon给出一个错误。还有没有人经历过这种情况?
发布于 2015-11-03 16:51:01
正如@fvu在他的评论中指出的那样,亚马逊期待的是ISO-8859-1格式,而不是UTF-8。这就是为什么在写入文件时应该使用PHP的utf8_decode方法。
发布于 2013-06-23 23:36:33
好的,经过大量的尝试,结果发现需要对字符进行解码。我在excel中打开文本文件,它们似乎将自己编码为奇怪的字符,比如使用php utf8_decode将它们转换回正确的字符,尽管文本文件显示它们是正确的字符……非常令人困惑。
对于任何使用UTF 8有困难的人,请先尝试解码。
谢谢你的帮忙
https://stackoverflow.com/questions/17245206
复制相似问题