2011-05-09 23 views
1

我遇到了麻煩,我無法顯示商標符號? 我的代碼發生了什麼?如何在php中顯示商標符號?

我在下面測試了這2個代碼,但仍然失敗了?

$textmsg = htmlspecialchars($textmsg); 
file_put_contents($textpath, $textmsg); 


preg_replace("™", "â„¢Â", $textmsg); 
file_put_contents($textpath, $textmsg); 
+0

看起來不像您想要替換的正確序列。 – alex 2011-05-09 06:37:58

+0

看起來像一個字符集/編碼問題。 – Phliplip 2011-05-09 06:41:39

+0

你使用什麼內容編碼? – 2011-05-09 06:41:56

回答

8

嘗試使用HTML實體™其將顯示爲™。這同樣適用於HTML和PHP。它也解決了文本編碼的問題,這對你來說似乎是個問題,雖然沒有更多的信息,但很難準確地說出問題。

如果你想輸出到一個標準的文本文件,那麼你將不得不處理你的編碼問題。如果是這種情況,那麼您需要提供更多信息,因爲這些問題往往難以理清,甚至可能是您的文本編輯器而不是您的代碼。

如果您嘗試解決用戶輸入問題,另一個可能更好的解決方案是確保您的服務器發送正確的Content-Type HTTP標頭,其中包括文本編碼。這將使幾乎所有瀏覽器都使用該編碼發送數據,這意味着輸出時也會正確顯示。例如:

header("Content-Type: text/html; charset=utf-8"); 
+0

在php中顯示是沒有問題的,但是當我想在文本文件中讀回時出現問題?怎麼樣 ? – user723128 2011-05-09 07:39:44

+0

@ user723128這個文件來自哪裏?你需要注意文本編碼,據我所知,PHP只支持UTF-8。如果你的文件不是UTF-8,那麼這可能是你問題的根源 – 2011-05-09 09:04:22