混合数据的字符编码


character encoding for mixed data

我遇到了一个问题,无法为从多个源构建的POST ed数据获取正确的字符编码(我将数据作为单个POST变量获取)。我认为他们不是在同一个字符编码。。。

例如,以符号£为例。如果我对字符编码什么都不做,我会得到两个结果:

a=£和b=£

我尝试过使用iconv()的各种配置,就像这样;

$data = iconv('UTF-8', 'windows-1252//TRANSLIT', $_POST['data']);

上述结果导致a=£和b=�

我还尝试了utf8_encode/decodehtml_entity_decode,因为我认为有可能使用html_entities生成其中一个磅符号。

我尝试过在标题中设置字符编码,但没有成功。我就是不能让两个实例同时工作。

我不知道下一步该做什么,有什么想法吗?

当其他内容都在utf8中时,我通过使用utf8_encode()找到了导致问题的内容,从而解决了这个问题。

这似乎适用于£符号。到目前为止,我还没有发现任何其他角色会引起问题。

注意,我仍然将iconv()与此结合使用。