我正在尝试将我的英文广告资源上传到各种欧洲亚马逊网站。我遇到的问题是,当“库存文件”上传到亚马逊时,某些不同语言中的重音符号无法正确显示。清单文件是制表符分隔的文本文件。
当前设置:
$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添加到文件顶部,但这只会导致亚马逊出错。还有其他人经历过这个吗?
答案 0 :(得分:1)
正如@fvu在评论中指出的那样,亚马逊期待的是ISO-8859-1
格式,而不是UTF-8
。这就是为什么在写入文件时应该使用PHP的utf8_decode方法。
答案 1 :(得分:0)
好的,经过大量尝试后发现需要解码的角色。我在excel中打开了文本文件,他们似乎将自己编码为奇怪的字符,例如使用php utf8_decode将它们变回正确的字符即使文本文件显示为正确的字符......也非常令人困惑。
对于有UTF 8困难的人,请先尝试解码。
感谢您的帮助