2012-11-26 241 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);