2012-11-26 192 views
0

我使用soap api连接到第三方工具。 它只接受消息的utf8编码。php utf8编码

有的时候我有特殊字符如apostrophe。 哪个功能最好将其删除或用php中的等效替换。 我设置

ini_set('default_charset', 'UTF-8'); 

function mail_utf8($message) { 
    return $message; 
} 

我也通过urlencodeurldecode功能运行后弦用。

+0

我觉得这是更好地逃避他们,你可能需要这些报价,所以你仍然显示它们,但不会弄乱你的代码。但我没有使用肥皂的经验,也不知道你连接的是什么第三方工具(也许你应该指定)所以请等待,看看专家说什么 – aleation

+1

如果你的应用程序不使用UTF-8,它改为使用什么? (并且请停止使用随机编码功能,这不是什么编码)。 –

+0

然后确保你实际上发送了它的UTF-8编码数据:[每个程序员都绝对,积极需要知道编码和字符集以处理文本](http://kunststube.net/encoding/) – deceze

回答

-1

使用此

<?php 
$headers = array(); 
$headers[] = "MIME-Version: 1.0"; 
$headers[] = "Content-type: text/plain; charset=iso-8859-1"; 
$headers[] = "From: Sender Name <[email protected]>"; 
$headers[] = "Bcc: JJ Chong <[email protected]>"; 
$headers[] = "Reply-To: Recipient Name <[email protected]>"; 
$headers[] = "Subject: {$subject}"; 
$headers[] = "X-Mailer: PHP/".phpversion(); 

mail($to, $subject, $email, implode("\r\n", $headers)); 
?> 
+0

@ i想要删除或替换所有符合utf8编码的特殊字符......对此有何建议? – VYSHNAVI

+1

@VYSHNAVI - 好消息! UTF-8编码支持**全部**字符! –

+1

@rwebduos - 你认为完全忽略编码并将UTF-8视为ISO-8859-1会解决什么问题吗? –

-1

您可以用下面的代码删除无效UTF-8字符:

$text = iconv("UTF-8","UTF-8//IGNORE",$text);