2012-03-29 5 views
0

Ich habe eine Klasse, die eine HTML-E-Mail von einem Web-Formular auf einigen Benutzereingaben basiert aussendet, an einer Stelle geschieht Folgendesiconv() - Â erscheint infront von £ Zeichen von Benutzereingaben

$emailcontent=iconv("UTF-8", "ISO-8859-1//IGNORE//TRANSLIT",$emailcontent); 

Ich hatte gehofft, dass dies aufhören würde, vor £ die ganze Zeit zu erscheinen, stellt sich heraus, dass ich falsch lag. Scheint so, als ob jedes andere Zeichen gut erscheint, außer dem £ -Zeichen.

Ich würde sehr schätzen, wenn mir jemand in die richtige Richtung zeigen könnte.

+0

Sie sagen, dass es die von anderen Zeichen außer £ entfernt, oder es einfach nichts tut? – Potatoswatter

+0

Jedes andere Zeichen erscheint gut, also nehme ich an, dass es es von den anderen streichen muss. – cosmicsafari

+0

Es gibt keinen Grund, irgendetwas anzunehmen. Entweder werden UTF-8-Präfixe von Zeichen wie "¿" entfernt oder nicht. Wenn nicht, macht es überhaupt etwas? – Potatoswatter

Antwort

0

Funktioniert für mich. Wenn ich mein OS X Terminal-Fenster ISO Latin 1-Kodierung eingestellt, dann

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

Nach dem documentation, die //IGNORE und //TRANSLIT Optionen sind widersprüchlich, aber, und Sie sollten wahrscheinlich nur eine auswählen.

+0

Scheint nicht zu funktionieren, ich bin PHP 5.3.6 läuft es vielleicht nicht Standard? – cosmicsafari

+0

Ich bin am 5.3.4. Wenn Sie das obige Beispiel zum Überprüfen verwenden, stellen Sie sicher, dass Ihre Konsole auf ISO-8859-1-Codierung eingestellt ist. Der Standardwert ist wahrscheinlich UTF-8. – Potatoswatter

+0

Im Moment im Entwickeln auf Schneeleopard, aber der Live-Server ist Linux (Hardy Reiher) – cosmicsafari

Verwandte Themen