Php iconv()-Â;出现在£前面;来自用户输入的符号

Php iconv()-Â;出现在£前面;来自用户输入的符号,php,utf-8,iconv,iso-8859-1,Php,Utf 8,Iconv,Iso 8859 1,我有一个类,它根据来自web表单的一些用户输入发送html电子邮件,在某一点上它执行以下操作 $emailcontent=iconv("UTF-8", "ISO-8859-1//IGNORE//TRANSLIT",$emailcontent); 我希望这不会一直出现在我面前,结果证明我错了。似乎除了符号外,其他所有字符都很好 如果有人能给我指出正确的方向,我将不胜感激 对我有用。如果我将OSX终端窗口设置为ISO拉丁1编码,那么 $ php -r 'print( iconv( "UTF-8",

我有一个类,它根据来自web表单的一些用户输入发送html电子邮件,在某一点上它执行以下操作

$emailcontent=iconv("UTF-8", "ISO-8859-1//IGNORE//TRANSLIT",$emailcontent);
我希望这不会一直出现在我面前,结果证明我错了。似乎除了符号外,其他所有字符都很好


如果有人能给我指出正确的方向,我将不胜感激

对我有用。如果我将OSX终端窗口设置为ISO拉丁1编码,那么

$ php -r 'print( iconv( "UTF-8", "ISO-8859-1//IGNORE//TRANSLIT", "£\n" ) );'
£

根据,尽管
//IGNORE
//translatit
选项是矛盾的,您可能应该只选择一个。

您是说它从其他字符中删除了字符,还是什么都不做?其他字符看起来都很好,所以我认为它必须把它和其他的东西分开,没有理由去假设任何事情。它要么从字符(如
)中去除UTF-8前缀,要么不去除。如果没有,它会做任何事情吗?检查时,它不会剥离任何东西。
iconv
只是底层操作系统的一部分,那么您使用的是什么平台?如果是Linux,是否有一个
/usr/lib/libiconv.*
?似乎不工作,我运行的是PHP5.3.6,它可能不是标准的吗?我使用的是5.3.4。如果您使用上述示例进行检查,请确保您的控制台设置为ISO-8859-1编码。默认值可能是UTF-8。目前,我正在雪豹上开发,但实时服务器是linux(hardy heron)