3

我正在尝试将我的英语库存上传到各个欧洲亚马逊网站。我遇到的问题是,当“库存文件”上传到亚马逊时,某些不同语言的口音显示不正确。清单文件是一个制表符分隔的文本文件。

当前设置:

$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');

当文本文件被输出并保存时,它看起来与在 Windows 中打开时的样子完全相同(所有字符都是正确的),但由于某种原因,亚马逊不会将其视为 UTF8 并使用此处找到的所有字符对其进行重新编码:

http://www.i18nqa.com/debug/utf8-debug.html

我尝试将 BOM 添加到文件顶部,但这只会导致亚马逊出错。有没有其他人经历过这个?

4

2 回答 2

1

正如@fvu 在他的评论中指出的那样,亚马逊期待的是ISO-8859-1格式,而不是UTF-8. 这就是为什么在写入文件时应该使用 PHP 的utf8_decode方法。

于 2015-11-03T08:51:01.027 回答
0

好的,经过大量尝试,事实证明需要对字符进行解码。我在 excel 中打开了文本文件,它们似乎将自己编码为奇怪的字符,例如 ü 使用 php utf8_decode 将它们转回正确的字符,即使文本文件将它们显示为正确的字符......非常令人困惑。

对于那些对 UTF 8 有困难的人,请先尝试解码。

感谢您的帮助

于 2013-06-23T15:36:32.570 回答